LeadtoCashCore - com escopo

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 37 min. de leitura
  • A inclusão de script LeadtoCashCore fornece métodos para orquestrar um fluxo de trabalho lead-to-cash no ciclo de vida Lead-to-Cash Core.

    O plug-in Lead-to-Cash Core (com.snd.l2c.core) deve ser ativado para que as inclusões de script LeadtoCashCore estejam disponíveis em uma instância. Esta inclusão de script pertence ao namespace sn_l2c_core e requer a função de administrador.

    Em um fluxo de trabalho de lead para dinheiro, você mapeia uma entidade de origem para uma entidade de destino. Uma entidade é definida como uma coleção de tabelas. O mapeamento de origem para destino permite transformar a estrutura ou o conteúdo da entidade de origem para ajustar a estrutura ou o conteúdo necessário na entidade de destino. A funcionalidade fornecida por esta inclusão de script representa o recurso de mapeamento de entidade disponível no recurso Lead-to-Cash. Para obter mais informações, consulte Lead to Cash.

    Para concluir um fluxo de trabalho usando a inclusão de script LeadtoCash, você passa parâmetros de retorno de um método para o próximo. Normalmente, você chama esses métodos na seguinte ordem:

    1. LeadtoCashCore - createInstance(Cadeia de caracteres headerSysIDs, Cadeia de caracteres lineSysIDs, Booliano isTarget, Object additionalParams) - Busca os dados de uma determinada entidade. Por exemplo, informações relacionadas ao pedido do cliente, incluindo itens de linha e seus dados relacionados.

      Use o parâmetro context para declarar um ou mais IDs de cabeçalho ou linha no script. Para esses casos de uso de seleção múltipla, o JSON de saída contém uma matriz de itens-chave em que cada entrada representa uma única entidade.

    2. LeadtoCashCore - delta (Objeto sourceJSON, Objeto sujoJSON, Objeto adicionalParams) - Compara duas entradas JSON e identifica quaisquer mudanças ocorridas entre elas. Por exemplo, quando algo é adicionado, excluído ou modificado em uma entidade.
    3. LeadtoCashCore - efeito (Objeto de origemJSON, Objeto de destinoJSON, Objeto adicionalParams) - Transforma o destino JSON de origem em um objeto de destino.
    4. LeadtoCashCore - confirmInstance(Object targetJSON, Object additionalParams) - Confirma a transformação feita na inclusão de script efeito () no banco de dados.
    Nota:
    Se necessário, delta() pode ser ignorado neste fluxo de trabalho. No entanto, chamar esses métodos fora de ordem resulta em um fluxo de trabalho malsucedido (por exemplo, ao chamar confirmInstance() e, em seguida, efeito()).

    Pré-requisitos

    Cada um desses métodos é agrupado com um ponto de extensão, sn_l2c_core.LeadToCashServiceEP. PrimitiveUtil() é um utilitário que fornece métodos para obter o serviço de ponto de extensão e invoca as inclusões de script de acordo com os parâmetros disponíveis. Primeiro, você deve fornecer PrimitiveUtil() com o método getPrimitivesEPService(), que especifica a tabela da qual obter informações de origem e destino. Para obter mais informações, consulte LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto). Depois que PrimitiveUtil() e getPrimitivesEPService() forem fornecidos no script, você poderá chamar qualquer uma das inclusões de script createInstance(), delta(), efetua()ou confirmInstance() conforme necessário para o seu caso de uso.

    Exemplo de script de fluxo de trabalho de lead para dinheiro

    Embora cada uma das inclusões de script principais de lead para dinheiro disponíveis esteja documentada individualmente, você pode consultar o exemplo a seguir para ver como usar esses métodos juntos para produzir um fluxo de trabalho de lead para dinheiro.

    var util = new sn_l2c_core.PrimitiveUtil(); 
     
    var context = {"isMultiSelect": false}; // Set the context.isMultiSelect parameter as true to enable multi-select use cases
    
    //Flow: Creation of Order from a sold product 
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order', context);  
      
    //CREATE INSTANCE to get the data of sold product with sys_id '06670ba3c3adbd501caee74bb0013166' 
    var SPInstance = service.createInstance(null, '06670ba3c3adbd501caee74bb0013166');  
    gs.info("SPInstance: "+JSON.stringify(SPInstance));  
      
    // DELTA  
    // construct the dirtyJSON as required  
    var deltaOutput = service.delta(SPInstance, dirtyJSON);/  
    gs.info("deltaOutput: "+JSON.stringify(deltaOutput));  
      
    // EFFECT  
    var effectOutput = service.effect(deltaOutput);  
    gs.info("effectOutput: " + JSON.stringify(effectOutput));  
      
    // COMMIT INSTANCE 
    var commitOutput = service.commitInstance(effectOutput);  
    gs.info("commitOutput: " + JSON.stringify(commitOutput));
    Em nosso exemplo, um cliente comprou um produto vendido, mas agora solicita uma modificação no produto vendido existente. As modificações necessárias são fornecidas na forma de um DirtyJSON. Para aplicar essas modificações, os métodos principais Lead to cash são chamados na seguinte ordem:
    1. A primeira chamada obtém as informações do produto vendido existente usando o método createInstance().
    2. Em seguida, comparamos este JSON de origem com o JSON sujo usando o método delta(), que retorna um JSON delta.
    3. O delta() JSON é transformado em um JSON do tipo ordem usando o método efeito ().
    4. O pedido JSON é confirmado no banco de dados usando o método confirmInstance().

    LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto)

    Aciona o método utilitário PrimitiveUtil().

    Para usar qualquer um dos métodos disponíveis na inclusão de script LeadtoCashCore, primeiro você deve sempre chamar o ponto de extensão com script PrimitiveUtil() em seu script com o método de utilitário getPrimitivesEPService() para acionar a implementação.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    contexto Objeto Opcional. Opções de parâmetro adicionais para exibir valores de atributo e para invocar mais de uma instância por vez.
    "context": {
      "isMultiSelect": "Boolean"
      "loadDisplayValue": "Boolean"
    }
    context.isMultiSelect Booliano Opcional. Sinalizador que indica se várias entidades devem ser aprovadas como entrada para criar a instância.
    Valores válidos:
    • verdadeiro: habilita a passagem de várias entidades como entrada. Quando verdadeiro, você pode passar vários itens de linha em uma lista separada por vírgulas.
    • falso: não habilita a passagem de várias entidades como entrada. Somente uma entrada pode ser passada no script da API.

    Padrão: falso

    context.loadDisplayValue Booliano Opcional. Sinalizador que indica se o valor de exibição de cada atributo deve ser carregado.
    Valores válidos:
    • verdadeiro: habilita o carregamento do valor de exibição de um atributo.
    • falso: não habilita o carregamento do valor de exibição de um atributo.

    Padrão: falso

    sourceToTargetConfigID Cadeia de caracteres ID de configuração de mapeamento para o mapeamento da origem para o destino.

    Tabela: lead para mapeamento de entidade de dinheiro [sn_l2c_core_entity_mapping]

    Tabela 2. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir invoca PrimitiveUtil() e escolhe uma implementação com base em sn_l2c_cust_flows_sp_to_order, que é um ID de configuração de mapeamento na tabela Mapeamento de entidade de lead para dinheiro [sn_l2c_core_entity_mapping].

    //Utility to invoke createInstance API  
    var util = new sn_l2c_core.PrimitiveUtil(); 
    var context = {"isMultiSelect": true}; // Set the context.isMultiSelect parameter as true to enable multi-select use cases
    
    //Invokes the extension point and specifies an implementation based on sourceToTargetConfigID of a L2C flow.  
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order’, context)

    LeadtoCashCore - createInstance(Cadeia de caracteres headerSysIDs, Cadeia de caracteres lineSysIDs, Booliano isTarget, Object additionalParams)

    Retorna os dados de uma ou mais entidades fornecidas com um objeto JSON que contém vários detalhes, como cabeçalho, linhas, linhas secundárias, características e seus atributos.

    Use o JSON de saída do método createInstance() em métodos subsequentes do fluxo de trabalho Lead-to-Cash Core, como delta(), efeito()e confirmInstance().

    Nota:
    A inclusão de script LeadtoCashCore requer que você primeiro chame o método de utilitário de script PrimitiveUtil() com o método de utilitário LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto) para acionar a implementação antes de chamar createInstance() em seu script. Para cada fluxo, obtenha o serviço apenas uma vez e use o mesmo serviço para todos os métodos LeadtoCashCore.

    Defina o parâmetro booliano getPrimitivesEPService()context.isMultiSelect como verdadeiro para permitir que createInstance() passe vários headerIDs ou lineIDs separados por vírgula de uma só vez. Caso contrário, você só poderá passar um ID de cada vez. Consulte LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto) para obter mais detalhes. O caso de uso de headerID único com vários lineIDs é compatível sem definir context.isMultiSelect como verdadeiro.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    additionalParams Objeto Opcional. Parâmetros adicionais a serem usados.
    adicionaisParams.skipLines Booliano Opcional. Sinalizador que indica se os itens de linha devem ser buscados para a entidade especificada.
    Valores válidos:
    • verdadeiro: ignora o retorno de informações de itens de linha para a entidade.
    • falso: retorna informações de itens de linha para a entidade.

    Padrão: falso

    headerSysIDs Cadeia de caracteres sys_id(s) de cabeçalho de uma entidade da qual os dados serão recuperados. Obrigatório se você não fornecer o parâmetro lineSysIDs. Passe nulo se você não estiver passando nenhum sys_ids de cabeçalho.

    Para designar um ou mais sys_ids de cabeçalho no script, defina context.isMultiSelect = true no método utilitário getPrimitivesEPService(). Para obter mais detalhes, consulte a tabela Parâmetros em LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto).

    Nota:
    É necessário pelo menos um parâmetro headerSysID ou lineSysIDs.
    é meta Booliano Opcional. Sinalizador que determina se os dados da entidade de destino devem ser buscados.
    Valores válidos:
    • verdadeiro: busque dados da entidade de destino.
    • falso: não busca dados da entidade de destino.

    Padrão: falso

    lineSysIDs Cadeia de caracteres sys_id(s) de item de linha de uma entidade da qual os dados da entidade serão recuperados. Obrigatório se você não fornecer headerSysIDs e se a estrutura da entidade começar com itens de linha, como produto vendido.

    Para designar um ou mais sys_ids de item de linha em seu script, defina context.isMultiSelect = true no método utilitário getPrimitivesEPService(). Para obter mais detalhes, consulte a tabela Parâmetros em LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto).

    Nota:
    É necessário pelo menos um parâmetro headerSysID ou lineSysIDs. Se passar vários lineSysIDs, todos os registros deverão pertencer ao mesmo headerSysID.
    Tabela 4. Retornos
    Tipo Descrição
    Objeto JSON Um JSON que contém detalhes do registro da entidade.

    Tipo de dados: matriz de objetos

    {
    "items": [
      {
      "attributes": {Object},
      "sys_id": {Object},
      "table": "String",
      "lineItems": [
        {
         "attributes": {Object},
         "sys_id": {Object},
         "table": "String",
         "characteristics": [Array],
         "lineItems": [Array]
         }
        ],
      "characteristics": [Array],
      "_state": "String"
      }
     ]
    }
    _estado Estado de atividade da entidade.

    Valores possíveis:

    • ativo: a entidade está ativa.
    • inativo: a entidade está inativa.

    Padrão: ativo

    Tipo de dados: cadeia de caracteres

    características Lista de características da entidade. As características podem variar entre entidades.

    Tipo de dados: matriz de objetos

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    características.atributos Um ou mais objetos que contêm informações sobre atributos associados ao registro de característica. O<attribute type> podem ter valores diferentes com base nos registros/funcionalidade associados à característica. Por exemplo, este objeto pode conter referências ao sys_id do registro de atributos, registros de característica associados, registros de opção de característica ou informações do produto vendido.

    Tipo de dados: objeto

    "attributes": {
      "<attribute_type>": {Object}
    }
    características.atributos.<attribute_type> Informações sobre o nome da chave do atributo do item.
    "<key_name>": { 
      "value": "String" 
    }

    Tipo de dados: objeto

    características.atributos.<attribute_type> .valor Normalmente, o sys_id do registro de atributo associado, mas pode ser qualquer cadeia de caracteres de texto significativa que descreva o tipo de atributo associado.

    Tipo de dados: cadeia de caracteres

    características.sys_id Objeto que contém o sys_id do registro de característica associado.

    Tipo de dados: objeto

    "sys_id": { 
      "value": "String" 
     }
    características.sys_id.value Sys_id do registro de característica associado.

    Tipo de dados: cadeia de caracteres

    características.tabela Nome da tabela que contém o registro de característica do lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    itens Contém uma matriz de objetos selecionados quando context.isMultiSelect está definido como verdadeiro.

    Tipo de dados: matriz de objetos

    "items": [
    { 
      "attributes": {Object}, 
      "sys_id": {Object}, 
      "table": "String",
      "lineItems": [Array]
     }, 
    ]
    itens.atributos Atributos do registro do item. Os atributos podem variar entre entidades.
    "attributes": {
      "account": {Object},
      "name": {Object}
    }

    Tipo de dados: objeto

    itens.atributos.conta Informações sobre a conta associada ao atributo do item.
    "account": { 
      "value": "String" 
    }
    itens.atributos.conta.valor Atributos do item. Os atributos podem variar entre entidades.
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    Tipo de dados: objeto

    itens.atributos.<key_name> Informações sobre o nome da chave do atributo do item.
    "<key_name>": { 
      "value": "String" 
    }

    Tipo de dados: objeto

    itens.atributos.<key_name> .valor Valor do atributo de nome da chave.

    Tipo de dados: cadeia de caracteres

    itens.sys_id Objeto que contém informações de sys_id sobre o item da entidade. Os valores variam entre as entidades.

    Tipo de dados: objeto

    "sys_id": {
      "value": "String"
    }
    itens.sys_id.value Sys_id de um item associado.

    Tipo de dados: cadeia de caracteres

    itens.tabela Nome da tabela que contém o registro de item de linha associado ao lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    itens.itensDelinha Objeto JSON que contém os detalhes do item de linha do registro da entidade.

    Tipo de dados: matriz de objetos

    "lineItems": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": "String",
        "sys_id": {Object},
        "table": "String"
      }
    ]
    itens.ItemsDelinha._estado Estado de atividade da entidade de item de linha.

    Valores possíveis:

    • ativo: a entidade está ativa.
    • inativo: a entidade está inativa.

    Padrão: ativo

    Tipo de dados: cadeia de caracteres

    itens.ItensDelinha.atributos Atributos do registro do item de linha. Os atributos podem variar entre entidades.
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    Tipo de dados: objeto

    itens.Items.atributos.<key_name> Informações sobre o nome da chave do atributo do item de linha.
    "<key_name>": { 
      "value": "String" 
    }

    Tipo de dados: objeto

    itens.Items.atributos.<key_name> .valor Valor do atributo de nome da chave.

    Tipo de dados: cadeia de caracteres

    itens.itens.linha.atributos.conta Informações sobre a conta associada ao atributo do item de linha.
    "account": { 
      "value": "String" 
    }
    itens.lineItems.atributos.conta.valor Sys_id da conta associada ao atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    itens.ItensDelinha.características Lista de características associadas ao item de linha. As características podem variar entre entidades.

    Tipo de dados: matriz de objetos

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    itens.lineItems.características.atributos Um ou mais objetos que contêm informações sobre atributos associados ao registro de característica. O<attribute type> podem ter valores diferentes com base nos registros/funcionalidade associados à característica. Por exemplo, este objeto pode conter referências ao sys_id do registro de atributos, registros de característica associados, registros de opção de característica ou informações do produto vendido.

    Tipo de dados: objeto

    "attributes": {
      "<attribute_type>": {Object}
    }
    itens.Items.características.atributos.<attribute_type> .valor Normalmente, o sys_id do registro de atributo associado, mas pode ser qualquer cadeia de caracteres de texto significativa que descreva o tipo de atributo associado.

    Tipo de dados: cadeia de caracteres

    itens.lineItems.características.sys_id Objeto que contém o sys_id do registro de característica associado.

    Tipo de dados: objeto

    "sys_id": { 
      "value": "String" 
     }
    itens.lineItems.características.sys_id.value Sys_id do registro de característica associado.

    Tipo de dados: cadeia de caracteres

    itens.lineItems.características.tabela Nome da tabela que contém o registro de característica do lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    itens.lineItems.lineItems Itens de linha secundários de um item de linha primário. Este objeto tem o mesmo formato que o parâmetro lineItems.

    Tipo de dados: objeto

    "lineItems": [
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": {Object},
        "sys_id": {Object},
        "table": "String"
      }
    ] 
    itens.lineItems.sys_id Objeto que contém informações de sys_id sobre o registro do item de linha associado.

    Tipo de dados: objeto

    "sys_id": {
      "value": "String"
    }
    itens.lineItems.sys_id.value Sys_id de um registro de item de linha associado.

    Tipo de dados: cadeia de caracteres

    itens.itens.linha.tabela Nome da tabela que contém o registro do item de linha associado ao lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    O script de exemplo abaixo invoca o método createInstance() para carregar os dados de um produto vendido, toda a sua hierarquia e suas características.

    //Utility to invoke createInstance API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in "sn_l2c_core_entity_mapping" table. 
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order'); 
     
    //Invoke createInstance API with required params 
    var SPInstance = service.createInstance(null, '4e03cda2ec873110f87727ef5883a2cf'); 
     
    //Print the returned JSON 
    gs.info("SPInstance: "+JSON.stringify(SPInstance));  
     
    //The returned JSON can be used for subsequent methods of the flow such as delta(), effect() and commitInstance()

    Saída:

    { 
      "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "9e0301e2ec873110f87727ef5883a23a" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Internet and OTT Bundle" 
                }, 
              "_state": "active",
              "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "8d669b6665ebf110f877d71ec56bf75c" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "8d669b6665ebf110f87d71ec56bf75c" 
                },
              "_state": "active", 
              "characteristic_value": { 
                  "value": "" 
                }, 
              "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
              "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
              "sold_product": { 
                  "value": "4e03cda2ec873110f87727ef5883a2cf" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    }

    Seleção múltipla

    O script a seguir demonstra como usar isMultiSelect para invocar o método createInstance() e carregar os dados de dois produtos vendidos com toda a hierarquia e características.

    //Utility to invoke createInstance API  
    var util = new sn_l2c_core.PrimitiveUtil();   
    
    //Set context variable isMultiSelect true to enable multi-select 
    var context = {"isMultiSelect": true}; 
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table.  
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order’, context);  
      
    //Multiple sold products selected  
    var selectedLineitems = '4e03cda2ec873110f87727ef5883a2cf,036a2349284d0210f877b68370fb2e93'; 
    
    //Invoke createInstance API with required params  
    var SPInstance = service.createInstance(null, selectedLineitems);  
      
    //Print the returned JSON  
    gs.info("SPInstance: "+JSON.stringify(SPInstance));   
      
    //The returned JSON can be used for subsequent APIs of the flow such as Delta, Effect and Commit Instance 

    Resposta:

    {  
      "items": [ 
        { 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "4e03cda2ec873110f87727ef5883a2cf" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "9e0301e2ec873110f87727ef5883a23a" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ] 
            } 
          ] 
        }, 
        { 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "036a2349284d0210f877b68370fb2e93" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "4b6a2349284d0210f877b68370fb2e9c" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ], 
              "characteristics": [],
              "_state": "active" 
            } 
          ] 
        } 
      ] 
    }

    LeadtoCashCore - delta (Objeto sourceJSON, Objeto sujoJSON, Objeto adicionalParams)

    Compara os objetos JSON de origem e de origem modificados de um lead com a entidade de dinheiro e retorna um objeto JSON que descreve todas as mudanças feitas no JSON de origem, como adições, exclusões ou modificações.

    Nota:
    A inclusão de script LeadtoCashCore requer que você primeiro chame o ponto de extensão com script PrimitiveUtil() com o método do utilitário LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto) para acionar a implementação antes de chamar delta() em seu script. Para cada fluxo, obtenha o serviço apenas uma vez e use o mesmo serviço para todos os métodos LeadtoCashCore.
    Tabela 5. Parâmetros
    Nome Tipo Descrição
    origemJSON Objeto Objeto JSON do lead de origem para entidade de dinheiro.
    sujoJSON Objeto JSON de origem modificado do lead para entidade de dinheiro.
    additionalParams Objeto Opcional. Parâmetros adicionais a serem usados.
    Paramsadicionais.delta_ignore_attributes Objeto Atributos de tabela a serem ignorados durante a comparação entre a origem e o DirtyJSON. Habilita o suporte a casos de uso de reconfiguração.
    {  
    “<table_name>”: [<attribute_name1>, attribute_name2>] 
    }
    additionalParams.delta_ignore_attributes.<table_name> Cadeia de caracteres O nome da tabela e seus atributos associados a serem ignorados.

    Por exemplo:

    {  
    “sn_install_base_sold_product”: [“state”,”unit_price”]  
    }
    Paramsadicionais.loadDisplayValue Booliano Opcional. Sinalizador que indica se o valor de exibição de cada atributo deve ser carregado.
    Valores válidos:
    • verdadeiro: habilita o carregamento do valor de exibição de um atributo.
    • falso: não habilita o carregamento do valor de exibição de um atributo.

    Padrão: falso

    Tabela 6. Retornos
    Tipo Descrição
    Objeto JSON Um objeto que contém detalhes do registro da entidade com todas as mudanças ocorridas entre o sourceJSON e o DirtyJSON.

    Tipo de dados: objeto

    {
    "lineItems": [Array] 
    }
    itens de linha Objeto JSON que contém os detalhes do item de linha do registro da entidade. Por exemplo, itens de linha de pedido ou itens de linha de cotação.

    Tipo de dados: matriz de objetos

    "lineItems": [ 
     {
      "_action": "String",
      "attributes": {Object}
      "characteristics": [Array]
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    ItensDeLinha._ação Ação de mudança aplicada ao item de linha do JSON de origem.
    Valores possíveis:
    • add: as informações foram adicionadas ao JSON de origem.
    • mudança: as informações foram atualizadas no JSON de origem.
    • desconexão: as informações foram desconectadas do JSON de origem.
    • nochange: não ocorreu nenhuma mudança no JSON de origem.

    Tipo de dados: cadeia de caracteres

    itensDelinha.atributos Atributos do item de linha. Por exemplo, o nome e o valor do atributo. Pode conter campos variados com base na entidade.

    Tipo de dados: objeto

    "attributes": { 
      "<attribute_name>": {Object}
    }
    itensdelinha.atributos.<attribute_name> Nome do atributo do item de linha. Por exemplo, o nome de uma conta ou contato. Pode conter campos variados da entidade.

    Tipo de dados: objeto

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    itensdelinha.atributos.<attribute_name> .valor Valor do atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    itensDelinha.atributos.conta Informações sobre a conta associada ao atributo do item.

    Tipo de dados: objeto

    "account": { 
      "value": "String" 
    }
    itensDelinha.atributos.conta.valor Sys_id da conta associada ao atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    itens.linha.características Características do item de linha. Pode conter campos variados com base na entidade.

    Tipo de dados: matriz de objetos

    "characteristics": [  
     {  
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
      }  
    ]
    itensDeLinha.características.atributos Atributos das características do registro de cabeçalho. Por exemplo, o nome e o valor do atributo. Pode conter campos variados com base na entidade.

    Tipo de dados: objeto

    "attributes": { 
     "<field_name>": { 
     "value": "String"
    }
    itensdelinha.características.atributos.<field_name> Nome do atributo do registro de característica associado ao item de linha.

    Tipo de dados: objeto

    "<field_name>": { 
      "value": "String" 
    }
    itensdelinha.características.atributos.<field_name> .valor Valor do atributo pertencente ao registro de característica de uma entidade.

    Tipo de dados: cadeia de caracteres

    itensDelinha.características.sys_id Objeto Sys_id do registro da característica.

    Tipo de dados: objeto

    "sys_id": { 
      "value": "String" 
    }
    itensDelinha.características.sys_id.valor Sys_id do registro de característica associado. A tabela atualizada pode variar entre entidades. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    itensDelinha.características.tabela Nome da tabela que contém o registro da característica.

    Tipo de dados: cadeia de caracteres

    ItensDeLinha.ItemsDeLinha Itens de linha secundários de um item de linha primário. Este objeto tem o mesmo formato que o parâmetro lineItems.

    Tipo de dados: matriz de objetos

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    itens_linha.sys_id Sys_id do registro do item associado.

    Tipo de dados: objeto

    "sys_id": {
      "value": "String"
    }
    itens_de_linha.sys_id.value Sys_id de um registro de item associado. A tabela atualizada pode variar entre entidades, como Pedido ou Especificação. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    itenslinha.tabela Nome da tabela que contém o registro do item associado ao lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir demonstra como chamar o método delta() chamando primeiro o método do utilitário PrimitiveUtil e getPrimitiesEPService()e, em seguida, fornecendo os objetos JSON de origem e destino.

    //Utility to invoke Delta API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sp_order_macd'); 
     
    //Invoke delta API with required params 
    // sourceJSON can be the output of createInstance or null 
    //dirtyJSON is the modified sourceJSON 
    var deltaOutput= service.delta(sourceJSON, dirtyJSON);  
     
    //Print the returned JSON 
    gs.info(" deltaOutput: "+JSON.stringify(deltaOutput));  
     
    //The returned JSON can be used for subsequent APIs of the flow such as Effect and Commit Instance

    O JSON de saída mostra que vários itens de linha foram adicionados ao produto base vendido:

    { 
      "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "-1" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "-1" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Internet and OTT Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "-1" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Solana Sports streaming channel" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "add" 
                } 
              ], 
              "characteristics": [], 
              "_action": "add" 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "-1" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "sold_product": { 
                  "value": "4e03cda2ec873110f87727ef5883a2cf" 
                }, 
                "action": { 
                  "value": "add" 
                } 
              }, 
              "_action": "add" 
            } 
          ], 
          "_action": "add" 
        } 
      ] 
    } 

    Seleção múltipla

    O exemplo a seguir mostra como formar o método delta() de seleção múltipla chamando PrimitiveUtil e getPrimitivesEPService e, em seguida, fornecendo os objetos JSON de origem e de destino para vários IDs de linha ou cabeçalho. Para cada fluxo, obtenha o serviço apenas uma vez e use o mesmo serviço para todos os métodos LeadtoCashCore.

    /Utility to invoke Delta API  
    var util = new sn_l2c_core.PrimitiveUtil();   
    
    //Set context variable isMultiSelect true to enable multi-select 
    var context = {"isMultiSelect": true}; 
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table.  
    var service = util.getPrimitivesEPService(‘sn_l2c_cust_flows_sp_to_order’, context);  
      
    //Invoke delta API with required params  
    // sourceJSON can be the output of createInstance for multiple lineIDs or headerIDs or null  
    //dirtyJSON is the modified sourceJSON  
    var deltaOutput= service.delta(sourceJSON, dirtyJSON);   
      
    //Print the returned JSON  
    gs.info(" deltaOutput: "+JSON.stringify(deltaOutput));   
      
    //The returned JSON can be used for subsequent APIs of the flow such as Effect and Commit Instance

    O JSON de saída mostra que vários itens de linha foram adicionados ao produto base vendido:

    { 
      "items": [ 
        { 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "4e03cda2ec873110f87727ef5883a2cf" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "9e0301e2ec873110f87727ef5883a23a" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "disconnect" 
                } 
              ], 
              "characteristics": [], 
              "_action": "disconnect" 
            } 
          ] 
        }, 
        { 
          "lineItems": [
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "036a2349284d0210f877b68370fb2e93" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "4b6a2349284d0210f877b68370fb2e9c" 
                  },
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "disconnect" 
                } 
              ], 
              "characteristics": [], 
              "_action": "disconnect" 
            } 
          ] 
        } 
      ] 
    }

    LeadtoCashCore - efeito (Objeto de origemJSON, Objeto de destinoJSON, Objeto adicionalParams)

    Transforma e aplica a estrutura JSON de origem de uma determinada entidade ao JSON de destino de outra entidade. Você pode confirmar a entidade alterada no banco de dados usando o método confirmInstance().

    Você pode usar o JSON de saída do método delta() na solicitação de efeito(). Em seguida, confirme qualquer saída JSON de efeito () para o banco de dados usando o confirmInstance () para concluir o lead para fluxo de trabalho de dinheiro.

    Nota:
    A inclusão de script LeadtoCashCore requer que você primeiro chame o ponto de extensão com script PrimitiveUtil() com o método do utilitário LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto) para acionar a implementação antes de chamar o efeito() em seu script. Para cada fluxo, obtenha o serviço apenas uma vez e use o mesmo serviço para todos os métodos LeadtoCashCore.
    Tabela 7. Parâmetros
    Nome Tipo Descrição
    origemJSON Objeto JSON que contém detalhes da entidade de origem.
    destinoJSON Objeto JSON que contém detalhes da entidade de destino.
    additionalParams Objeto Opcional. Parâmetros adicionais a serem usados.
    Params_adicionais.is_future_state Booliano Opcional. Use isso para oferecer suporte a casos de uso de reconfiguração.
    Valores aceitos:
    • verdadeiro: fornece chaves de variáveis de contexto em vez de nomes de campo de dicionário. Isso permite que você forneça todos os atributos da entidade de destino em vez de mapear atributos da origem para o destino.
    • falso: fornece nomes de campo de dicionário.

    Padrão: falso

    Tabela 8. Retornos
    Tipo Descrição
    Objeto JSON Mudança que ocorreu e foi aplicada dos objetos JSON da entidade de origem para destino em cada cabeçalho do lead para entidade de dinheiro.

    Tipo de dados: objeto

    {
      "_glide_action": "String",
      "_records_count: {Object},
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String", 
      "table": "String"
    }
    _glide_action Indica a mudança que ocorreu no nível do item entre o JSON de origem e o de destino.
    Valores possíveis (diferencia maiúsculas de minúsculas):
    • EXCLUIR: as informações foram removidas entre as estruturas JSON de origem e de destino.
    • INSERIR: informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: não ocorreu nenhuma mudança entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: cadeia de caracteres

    _contagem_de_registros Detalhes dos novos registros inseridos em cada tabela.

    Tipo de dados: objeto

    "_records_count": {
    "tableName": {Object}
    }
    _contagem_de_registros.nomeTabela Nome da tabela na qual novos registros são inseridos.

    Tipo de dados: objeto

    "tableName": {
          "insert": Number}
    }
    _records_count.tableName.insert Número de novos registros inseridos na tabela.

    Tipo de dados: número

    _objeto_origem Objeto JSON de origem ao qual as mudanças foram aplicadas. A estrutura do objeto pode variar entre as entidades.

    Tipo de dados: objeto

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    _source_object.sys_id Sys_id do registro da entidade de origem que foi atualizado.

    Tipo de dados: cadeia de caracteres

    _objeto_origem.tabela Local da tabela do registro da entidade de origem que foi atualizado. Este valor pode variar entre entidades.

    Tipo de dados: cadeia de caracteres

    itens_de_linha._glide_action Ação de mudança que ocorreu no item de linha.
    Valores possíveis:
    • EXCLUIR: as informações foram removidas entre as estruturas JSON de origem e de destino.
    • INSERIR: informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: não ocorreu nenhuma mudança entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: cadeia de caracteres

    itens_de_linha._objeto_de_origem Detalhes do registro da entidade de origem aos quais o _glide_action foi aplicado. Este objeto pode variar entre entidades.

    Tipo de dados: objeto

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    lineItems._source_object.sys_id Sys_id do registro da entidade de origem que foi atualizado.

    Tipo de dados: cadeia de caracteres

    lineItems._source_object.table Local da tabela do registro da entidade de origem que foi atualizado. Este valor pode variar entre entidades.

    Tipo de dados: cadeia de caracteres

    itens_linha._estado Estado da entidade.

    Tipo de dados: objeto

    "_state": {  
     "value": "String" 
    } 
    itensDelinha._estado.valor O estado atual da entidade.
    Valores possíveis:
    • ativo: o objeto de entidade está em um estado ativo.
    • inativo: o objeto de entidade não está em um estado ativo.

    Tipo de dados: cadeia de caracteres

    itensDelinha.atributos Atributos do item de linha. Por exemplo, o nome e o valor do atributo. Pode conter campos variados com base na entidade.

    Tipo de dados: objeto

    "attributes": { 
      "<attribute_name>": {Object}
    }
    itensdelinha.atributos.<attribute_name> Nome do atributo do item de linha. Por exemplo, o nome de uma conta ou contato. Pode conter campos variados da entidade.

    Tipo de dados: objeto

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    itensdelinha.atributos.<attribute_name> .valor Valor do atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    itensDelinha.atributos.conta Informações sobre a conta associada ao atributo do item.

    Tipo de dados: objeto

    "account": { 
      "value": "String" 
    }
    itensDelinha.atributos.conta.valor Sys_id da conta associada ao atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    ItensDeLinha.atributos.short_description Breve descrição do atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    itens.linha.características Lista de características associadas ao item de linha. As características podem variar entre entidades.

    Tipo de dados: matriz de objetos

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    lineItems.características._glide_action Ação de mudança que ocorreu no item de linha.
    Valores possíveis:
    • EXCLUIR: as informações foram removidas entre as estruturas JSON de origem e de destino.
    • INSERIR: informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: não ocorreu nenhuma mudança entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: cadeia de caracteres

    itensDeLinha.características.atributos Um ou mais objetos que contêm informações sobre atributos associados ao registro de característica.

    Por exemplo, este objeto pode conter referências ao sys_id do registro de atributos, registros de característica associados, contas ou contatos, registros de opção de característica ou informações do produto vendido.

    Tipo de dados: objeto

    "attributes": {
      "<attribute_type>": {Object}
    }
    itensDelinha.características.atributos.<attribute_type> Tipo de atributo. Este valor pode conter valores diferentes com base nos registros ou na funcionalidade associada à característica.

    Tipo de dados: objeto

    "<attribute_type>": {
      "value": "String"
    }
    itensDelinha.características.atributos.<attribute_type> .valor Valor do atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    itensdelinha.características.atributos.<field_name> Nome do atributo do registro de característica associado ao item de linha.

    Tipo de dados: objeto

    "<field_name>": { 
      "value": "String" 
    }
    itensdelinha.características.atributos.<field_name> .valor Valor do atributo pertencente ao registro de característica de uma entidade.

    Tipo de dados: cadeia de caracteres

    itensDelinha.características.sys_id Sys_id do registro de característica associado.

    Tipo de dados: objeto

    "sys_id": { 
      "value": "String" 
     }
    itensDelinha.características.sys_id.valor Sys_id do registro de característica associado. A tabela atualizada pode variar entre entidades. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    itensDelinha.características.tabela Nome da tabela que contém o registro da característica.

    Tipo de dados: cadeia de caracteres

    ItensDeLinha.ItemsDeLinha Itens de linha secundários de um item de linha primário. Este objeto tem o mesmo formato que o parâmetro lineItems.

    Tipo de dados: matriz de objetos

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    itens_linha.sys_id Sys_id do registro do item associado.

    Tipo de dados: objeto

    "sys_id": {
      "value": "String"
    }
    itens_de_linha.sys_id.value Sys_id de um registro de item associado. A tabela atualizada pode variar entre entidades, como Pedido ou Especificação. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    itenslinha.tabela Nome da tabela que contém o registro do item associado ao lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    sys_id Sys_id da entidade.

    Tipo de dados: cadeia de caracteres

    tabela Nome da tabela na qual a entidade é encontrada.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como aplicar a lógica de transformação usando a saída do método delta() :
    Nota:
    O mesmo script é aplicável para casos de uso de seleção única e seleção múltipla, já que apenas o formato JSON de origem muda e a saída permanece a mesma para ambos. Para casos de uso de seleção múltipla, um único cabeçalho é criado com todos os itens de linha adicionados ao mesmo cabeçalho.
    //Utility to invoke effect API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sp_order_macd'); 
     
    //Invoke effect API with required params 
    var effectOutput = service.effect(deltaOutput, null); 
     
    //Print the returned JSON 
    gs.info("effectOutput: " + JSON.stringify(effectOutput)); 
     
    //The returned JSON can be used in the subsequent commitInstance() method.

    Saída:

    { 
      "sys_id": "-1", 
      "table": "sn_ind_tmt_orm_order", 
      "_glide_action": "INSERT", 
      "_source_object": {}, 
      "lineItems": [ 
        { 
          "sys_id": "-1", 
          "table": "sn_ind_tmt_orm_order_line_item", 
          "attributes": { 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            }, 
            "short_description": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            } 
          }, 
          "_glide_action": "INSERT", 
          "_source_object": { 
            "sys_id": "-1", 
            "table": "sn_install_base_sold_product" 
          }, 
          "lineItems": [ 
            { 
              "sys_id": "-1", 
              "table": "sn_ind_tmt_orm_order_line_item", 
              "attributes": { 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                }, 
                "short_description": { 
                  "value": "Internet and OTT Bundle" 
                } 
              }, 
              "_glide_action": "INSERT", 
              "_source_object": { 
                "sys_id": "-1", 
                "table": "sn_install_base_sold_product" 
              }, 
              "lineItems": [ 
                { 
                  "sys_id": "-1", 
                  "table": "sn_ind_tmt_orm_order_line_item", 
                  "attributes": { 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    }, 
                    "short_description": { 
                      "value": "Solana Sports streaming channel" 
                    } 
                  }, 
                  "_glide_action": "INSERT", 
                  "_source_object": { 
                    "sys_id": "-1", 
                    "table": "sn_install_base_sold_product" 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "sys_id": "-1", 
              "table": "sn_ind_tmt_orm_order_characteristic_value", 
              "attributes": { 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option_value": { 
                  "value": "" 
                } 
              }, 
              "_glide_action": "INSERT", 
              "_source_object": { 
                "sys_id": "-1", 
                "table": "sn_prd_pm_product_characteristics" 
              } 
            } 
          ] 
        }, 
      "_state": {
          "value": "active"
    }
       ],
      "_records_count":
        {
            "sn_ind_tmt_orm_order":
            {
                "insert": 1
            },
            "sn_ind_tmt_orm_order_line_item":
            {
                "insert": 3
            },
            "sn_ind_tmt_orm_order_characteristic_value":
            {
                "insert": 1
            }
        }
    }

    LeadtoCashCore - confirmInstance(Object targetJSON, Object additionalParams)

    Confirma o JSON de um determinado lead para entidade de dinheiro para a instância, retorna uma mensagem de status com informações atualizadas e atualiza o lead para a tabela da entidade principal de dinheiro como resultado.

    Nota:
    A inclusão de script LeadtoCashCore requer que você primeiro chame o ponto de extensão com script PrimitiveUtil() com o método do utilitário LeadtoCashCore – getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID, contexto de objeto) para ativar o gatilho da implementação antes de chamar confirmInstance() em seu script. Para cada fluxo, obtenha o serviço apenas uma vez e use o mesmo serviço para todos os métodos LeadtoCashCore.
    Tabela 9. Parâmetros
    Nome Tipo Descrição
    metaJSON Objeto Objeto JSON que contém o "glide_action" de uma entidade de destino a ser confirmada. Você pode passar a saída do método efeito () aqui.
    Nota:
    "glide_action" identifica a ação de mudança que ocorreu entre o JSON de origem e de destino de um lead para entidade de dinheiro.
    additionalParams Objeto Opcional. Parâmetros adicionais a serem usados.
    adicionaisParams.useNumberGenerator Booliano Opcional. Sinalizador que indica se sys_numbers devem ser gerados em massa.
    Valores válidos:
    • verdadeiro: gera os sys_numbers em massa a serem utilizados durante o processo de inserção de registro. Reduz a necessidade de consultas adicionais para buscar números e diminui o tempo de inserção.
    • falso: gera o sys_number individualmente no momento da inserção de cada registro.

    Padrão: falso

    Tabela 10. Retornos
    Tipo Descrição
    Objeto JSON Detalhes sobre o registro da entidade de destino.

    Tipo de dados: objeto

    {
      "dataObject": {Object},
      "displayMessage": "String",
      "error": "String",
      "headerID": "String",
      "message": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }
    dataObject Objeto JSON que contém dados detalhados sobre as operações de confirmação realizadas em cada nível.

    Tipo de dados: objeto

    "dataObject": {
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String",
      "table": "String"
    }
    dataObject._commitObjectInfo Status de confirmação e sys_id se a mudança do item de linha for uma ação INSERT.

    Tipo de dados: objeto

    "_commitObjectInfo": {
      "status": "String",
      "sys_id": "String"
    }
    dataObject._commitObjectInfo.status Status da operação de confirmação realizada na entidade específica.
    Valores possíveis:
    • sucesso: a operação de confirmação da entidade foi bem-sucedida.
    • falha: a operação de confirmação da entidade não foi bem-sucedida.

    Tipo de dados: cadeia de caracteres

    dataObject._commitObjectInfo.sys_id Sys_id do registro inserido. O método retorna este parâmetro somente se o dataObject._glide_action for INSERT. A tabela atualizada pode variar entre entidades. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    dataObject._glide_action Ação de mudança que ocorreu no item de linha.
    Valores possíveis:
    • EXCLUIR: as informações foram removidas entre as estruturas JSON de origem e de destino.
    • INSERIR: informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: não ocorreu nenhuma mudança entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: informações foram modificadas entre as estruturas de origem e de destino.

    Tipo de dados: cadeia de caracteres

    dataObject._source_object Objeto JSON de origem ao qual as mudanças foram aplicadas. A estrutura do objeto pode variar entre as entidades.

    Tipo de dados: objeto

    "_source_object": {
      "sys_id": "String", 
      "table": "String” 
    }
    dataObject._source_object.sys_id Sys_id do registro da entidade de origem ao qual o _glide_action foi aplicado. A tabela atualizada pode variar entre entidades. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    dataObject._source_object.table Nome da tabela que contém o registro da entidade de origem ao qual o _glide_action foi aplicado. Isso pode variar entre entidades.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems Detalhes do item de linha do registro da entidade. Por exemplo, itens de linha de pedido ou itens de linha de cotação.

    Tipo de dados: matriz de objetos

    "lineItems": [ 
    { 
      "_action": "String",
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "_state": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String",
    }
    ]
    dataObject.lineItems._action Ação de mudança aplicada ao item de linha do JSON de origem.
    Valores possíveis:
    • add: as informações foram adicionadas ao JSON de origem.
    • mudança: as informações foram atualizadas no JSON de origem.
    • desconexão: as informações foram desconectadas do JSON de origem.
    • nochange: não ocorreu nenhuma mudança no JSON de origem.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems._commitObjectInfo Retornado se a mudança do item de linha for uma ação INSERT. Contém o status de confirmação e o sys_id do objeto.

    Tipo de dados: objeto

    "_commitObjectInfo": { 
      "status": "String", 
      "sys_id": "String" 
    }
    dataObject.lineItems._commitObjectInfo.status Status da operação de confirmação realizada na entidade específica.
    Valores possíveis:
    • sucesso: a operação de confirmação da entidade foi bem-sucedida.
    • falha: a operação de confirmação da entidade não foi bem-sucedida.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems._commitObjectInfo.sys_id Sys_id do registro inserido. A tabela atualizada pode variar entre entidades. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems._glide_action Ação de mudança que ocorreu no item de linha.
    Valores possíveis:
    • EXCLUIR: as informações foram removidas entre as estruturas JSON de origem e de destino.
    • INSERIR: informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: não ocorreu nenhuma mudança entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems._source_object Detalhes do registro da entidade de origem aos quais o _glide_action foi aplicado. Este objeto pode variar entre entidades.

    Tipo de dados: objeto

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    dataObject.lineItems._source_object.sys_id Sys_id do registro da entidade de origem ao qual o _glide_action foi aplicado.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems._source_object.table Nome da tabela do registro da entidade de origem ao qual o _glide_action foi aplicado.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems._state Estado do objeto.
    Valores possíveis:
    • ativo: o objeto de entidade está em um estado ativo.
    • inativo: o objeto de entidade não está em um estado ativo.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems.attributes Atributos do item de linha. Por exemplo, o nome e o valor do atributo. Pode conter campos variados com base na entidade.

    Tipo de dados: objeto

    "attributes": { 
      "<attribute_name>": {Object}
    }
    dataObject.lineItems.attributes.<attribute_name> Nome do atributo do item de linha. Por exemplo, o nome de uma conta ou contato. Pode conter campos variados da entidade.

    Tipo de dados: objeto

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    dataObject.lineItems.attributes.<attribute_name> .valor Valor do atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems.características Lista de características associadas ao item de linha. As características podem variar entre entidades.

    Tipo de dados: matriz de objetos

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    dataObject.lineItems.características._glide_action Ação de mudança que ocorreu no item de linha.
    Valores possíveis:
    • EXCLUIR: as informações foram removidas entre as estruturas JSON de origem e de destino.
    • INSERIR: informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: não ocorreu nenhuma mudança entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems.características.atributos Um ou mais objetos que contêm informações sobre atributos associados ao registro de característica.

    Por exemplo, este objeto pode conter referências ao sys_id do registro de atributos, registros de característica associados, contas ou contatos, registros de opção de característica ou informações do produto vendido.

    Tipo de dados: objeto

    "attributes": {
      "<attribute_type>": {Object}
    }
    dataObject.lineItems.características.atributos.<attribute_type> Nome do atributo da característica. Pode conter campos variados da entidade.

    Tipo de dados: objeto

    "<attributes_type>": { 
     "<attribute_name>": {Object}
    }
    dataObject.lineItems.características.atributos.<attribute_type> .<attribute_name> Nome do atributo da característica.

    Tipo de dados: objeto

    "<attribute_name>": { 
     "value": "String"
    }
    dataObject.lineItems.características.atributos.<attribute_type> .<attribute_name> .valor Valor do atributo do item de linha.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems[0].characteristics.sys_id Sys_id do registro de característica associado.

    Tipo de dados: objeto

    "sys_id": { 
      "value": "String" 
     }
    dataObject.lineItems[0].characteristics.sys_id.value Sys_id do registro de característica associado. A tabela atualizada pode variar entre entidades. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems[0].características.tabela Nome da tabela que contém o registro da característica.

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems[0].lineItems Itens de linha secundários de um item de linha primário. Este objeto tem o mesmo formato que o parâmetro lineItems.

    Tipo de dados: matriz de objetos

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    dataObject.lineItems[0].sys_id Sys_id do registro do item associado.

    Tipo de dados: objeto

    "sys_id": {
      "value": "String"
    }
    dataObject.lineItems[0].sys_id.value Sys_id de um registro de item associado. A tabela atualizada pode variar entre entidades, como Pedido ou Especificação. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    dataObject.lineItems[0].table Nome da tabela que contém o registro do item associado ao lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    dataObject.sys_id Sys_id do registro do item de linha associado. A tabela atualizada pode variar entre entidades. Por exemplo, Pedido [sn_ind_tmt_orm_order].

    Tipo de dados: cadeia de caracteres

    dataObject.table Nome da tabela que contém o registro do lead para entidade de dinheiro.

    Tipo de dados: cadeia de caracteres

    displayMessage Mensagem que é exibida para o usuário na IU. A mensagem de exibição é idêntica ao valor da cadeia de caracteres message.

    Tipo de dados: cadeia de caracteres

    erro Mensagem de erro que descreve a falha do método confirmaçãoInstance. Se a solicitação for bem-sucedida, este parâmetro retornará uma cadeia de caracteres vazia.

    Tipo de dados: cadeia de caracteres

    ID do cabeçalho Sys_id do registro da entidade de destino criado ou atualizado pelo método confirmInstance.

    Armazenado em: a tabela relacionada, dependendo do tipo de entidade, como produto vendido, pedido etc.

    Tipo de dados: cadeia de caracteres

    mensagem Mensagem que descreve os cenários de sucesso, erro ou parcialmente_sucesso. Esta mensagem é a mesma que o valor da cadeia de caracteres displayMessage e pode ser usada por outras chamadas de aplicação para a API.

    Tipo de dados: cadeia de caracteres

    rootLineIDs Lista separada por vírgulas de sys_ids dos registros de entidade de destino inseridos, atualizados ou excluídos pelo método confirmInstance.

    Armazenado em: a tabela relacionada, dependendo do tipo de entidade, como produto vendido, pedido etc.

    Tipo de dados: matriz de cadeias de caracteres

    status Mensagem de status confirmando o sucesso da confirmação.

    Valores possíveis:

    • sucesso: a confirmação foi bem-sucedida.
    • falha: falha na linha raiz ou na operação de glide de cabeçalho. Acione novamente o lead to cash core fluxo da API.
    • parcial_success: ocorreram falhas ao processar todo o JSON. Consulte os logs de processamento para solucionar problemas de erros específicos.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como usar cada método LeadtoCashCore para recuperar, aplicar e confirmar os detalhes de uma entidade de origem para destino. Neste exemplo, o método confirmInstance() é usado para confirmar o JSON alterado para uma entidade lead to cash na instância.

    //Utility to invoke commitInstance API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invokes the PrimitiveUtil extension point, picks an implementation based on sourceToTargetConfigID of a Lead to Cash (L2C) flow. The Mapping Config ID  in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sp_order_macd'); 
     
    //Invoke commitInstance API with the required params 
    var commitOutput = service.commitInstance(effectOutput); 
     
    //Print the returned JSON 
    gs.info("commitOutput: "+JSON.stringify(commitOutput));  
    

    Saída:

    {
      "status": "success",
      "error": "",
      "message": "Commit operation successfully processed.",
      "displayMessage": "Commit operation successfully processed.",
      "dataObject": {
        "sys_id": "-1",
        "table": "sn_ind_tmt_orm_order",
        "_glide_action": "INSERT",
        "_source_object": {},
        "lineItems": [
          {
            "sys_id": "-1",
            "table": "sn_ind_tmt_orm_order_line_item",
            "attributes": {
              "account": {
                "value": "86837a386f0331003b3c498f5d3ee4ca"
              },
              "sold_product": {
                "value": "e4bbf902b7343300ece839a6ee11a937"
              },
              "short_description": {
                "value": "Network Monitoring"
              }
            },
            "_glide_action": "INSERT",
            "_source_object": {
              "sys_id": "e4bbf902b7343300ece839a6ee11a937",
              "table": "sn_install_base_sold_product"
            },
            "lineItems": [
              {
                "sys_id": "-1",
                "table": "sn_ind_tmt_orm_order_line_item",
                "attributes": {
                  "account": {
                    "value": "86837a386f0331003b3c498f5d3ee4ca"
                  },
                  "sold_product": {
                    "value": "23dbbd02b7343300ece839a6ee11a98e"
                  },
                  "short_description": {
                    "value": "Remote Monitoring"
                  }
                },
                "_glide_action": "INSERT",
                "_source_object": {
                  "sys_id": "23dbbd02b7343300ece839a6ee11a98e",
                  "table": "sn_install_base_sold_product"
                },
                "lineItems": [],
                "characteristics": [],
                "coveredProducts": [],
                "_commitObjectInfo": {
                  "sys_id": "d2d5b868488d5610f877a23d5db8922f",
                  "status": "success"
                }
              }
            ],
            "characteristics": [],
            "coveredProducts": [],
            "_commitObjectInfo": {
              "sys_id": "92d5b868488d5610f877a23d5db89229",
              "status": "success"
            }
          }
        ],
        "_commitObjectInfo": {
          "sys_id": "46d5b0a4488d5610f877a23d5db892ef",
          "status": "success"
        }
      },
      "headerID": "46d5b0a4488d5610f877a23d5db892ef",
      "rootLineIDs": [
        "92d5b868488d5610f877a23d5db89229"
      ]
    }