LeadtoCashCore - Com escopo

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

    O plug-in Lead para Cash Core (com.snd.l2c.core) deve ser ativado para LeadtoCashCore as inclusões de script estarão 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, mapeie 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 se ajustar à estrutura ou ao 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 para dinheiro. Para obter mais informações, consulte Lead to Cash.

    Para concluir um fluxo de trabalho usando o. LeadtoCash inclusão de script, 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, boolian isTarget, Object additionalParams) - Obtém 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. contextParâmetro 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(Object sourceJSON, Object dirtyJSON, Object additionalParams) - Compara duas entradas JSON e identifica todas as mudanças que ocorreram entre elas. Por exemplo, quando algo é adicionado, excluído ou modificado em uma entidade.
    3. LeadtoCashCore - Efeito(Objeto sourceJSON, Objeto targetJSON, Objeto additionalParams) - Transforma o destino JSON de origem em um objeto de destino.
    4. LeadtoCashCore - commitInstance(Object targetJSON, Object additionalParams)- Confirma a transformação feita no efeito () inclusão de script 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 CommitInstance() e então efeito () ).

    Pré-requisitos

    Cada um desses métodos é empacotado 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 seus parâmetros disponíveis. Primeiro, você deve fornecer PrimitiveUtil() com o. GetPrimitivesEPService() método, 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 do objeto). Uma vez PrimitiveUtil() e. GetPrimitivesEPService() são fornecidos no script, você pode chamar qualquer um dos CreateInstance() , delta() , efeito () , ou CommitInstance() o script inclui conforme necessário para seu caso de uso.

    Script de fluxo de trabalho principal de lead de exemplo

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

    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 dirtyJSON. Para aplicar essas modificações, chamamos o Lead para os métodos de núcleo de dinheiro na seguinte ordem:
    1. A primeira chamada obtém as informações do produto vendido existente usando CreateInstance() método.
    2. Em seguida, comparamos este JSON de origem com o JSON sujo usando o. delta() Método, que retorna um delta JSON.
    3. . delta()JSON é transformado em um JSON do tipo Ordem usando o. efeito () método.
    4. A ordem JSON é confirmada no banco de dados usando CommitInstance() método.

    LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto)

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

    Para usar qualquer um dos métodos disponíveis no LeadtoCashCore inclusão de script, você deve sempre chamar primeiro o ponto de extensão com script PrimitiveUtil() em seu script com GetPrimitivesEPService() método de utilitário 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 invocar mais de uma instância de cada vez.
    "context": {
      "isMultiSelect": "Boolean"
      "loadDisplayValue": "Boolean"
    }
    Context.isMultiSelect Booliano Opcional. Sinalizador que indica se várias entidades devem ser passadas 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

    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 de origem para 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 Lead para Mapeamento de entidade em 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, boolian 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 CreateInstance() Método nos métodos subsequentes do Lead para fluxo de trabalho principal de dinheiro, como delta() , efeito () e. CommitInstance() .

    Nota:
    . LeadtoCashCore a inclusão de script requer que você chame primeiro o método do utilitário de script PrimitiveUtil() com o. LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto)método utilitário 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 LeadtoCashCore métodos.

    Defina o. GetPrimitivesEPService() parâmetro booliano context.isMultiSelectpara verdadeiro para habilitar CreateInstance() Para passar vários headerIDs ou lineIDs separados por vírgulas de uma só vez. Caso contrário, você só pode passar um ID de cada vez. Consulte LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto) para obter mais detalhes. O caso de uso headerID único com vários IDs de linha é compatível sem configuração context.isMultiSelectpara verdadeiro.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    additionalParams Objeto Opcional. Parâmetros adicionais a serem usados.
    Parâmetros adicionais.skipLines Booliano Opcional. Sinalizador que indica se os itens de linha da entidade especificada devem ser buscados.
    Valores válidos:
    • Verdadeiro: Ignore as informações de itens de linha retornadas para a entidade.
    • Falso: Retorna informações de itens de linha da entidade.

    Padrão: falso

    SysIDs de cabeçalho Cadeia de caracteres Sys_id(s) do cabeçalho de uma entidade da qual recuperar dados. Necessário se você não fornecer o. lineSysIDsparâmetro. Aprovado 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: Verdadeiro em GetPrimitivesEPService() método utilitário. Para obter mais detalhes, consulte a tabela Parâmetros em LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto).

    Nota:
    Pelo menos um headerSysIDou lineSysIDso parâmetro é obrigatório.
    IsDestino Booliano Opcional. Sinalizador que determina se os dados da entidade de destino devem ser buscados.
    Valores válidos:
    • Verdadeiro: Busca dados da entidade de destino.
    • Falso: Não busque dados da entidade de destino.

    Padrão: falso

    SysIDs de linha Cadeia de caracteres Sys_id(s) do item de linha de uma entidade da qual recuperar dados da entidade. Necessário se você não fornecer headerSysIDse 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 no script, defina Context.isMultiSelect: Verdadeiro em GetPrimitivesEPService() método utilitário. Para obter mais detalhes, consulte a tabela Parâmetros em LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto).

    Nota:
    Pelo menos um headerSysIDou lineSysIDso parâmetro é obrigatório. Se passar vários lineSysIDs, todos os registros devem 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"
      }
     ]
    }
    _state Estado da 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 as entidades.

    Tipo de dados: Matriz de objetos

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    atributos.características Um ou mais objetos que contêm informações sobre atributos associados ao registro de característica. O <attribute type> pode 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}
    }
    atributos.características.<attribute_type> Informações sobre o nome da chave do atributo do item.
    "<key_name>": { 
      "value": "String" 
    }

    Tipo de dados: Objeto

    atributos.<attribute_type>.valor.características 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

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    tabela.características 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.isMultiSelectestá definido como verdadeiro.

    Tipo de dados: Matriz de objetos

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

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    tabela.de itens 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

    Items.lineItems 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.lineItems._state Estado da atividade da entidade do 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.lineItems.Atributos Atributos do registro do item de linha. Os atributos podem variar entre as entidades.
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

    Items.lineItems.Attributes.<key_name>.Value Valor do atributo do nome da chave.

    Tipo de dados: Cadeia de caracteres

    Itens.lineItems.Atributos.Conta Informações sobre a conta associada ao atributo do item de linha.
    "account": { 
      "value": "String" 
    }
    Items.lineItems.Atributos.Conta.Valor Sys_id da conta associada ao atributo de item de linha.

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Matriz de objetos

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    items.lineItems.characteristics.attributes Um ou mais objetos que contêm informações sobre atributos associados ao registro de característica. O <attribute type> pode 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}
    }
    items.lineItems.characteristics.attributes.<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

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    items.lineItems.characteristics.table 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 lineItemsparâmetro.

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    Items.lineItems.table Nome da tabela que contém o registro do item de linha associado à entidade Lead para dinheiro.

    Tipo de dados: Cadeia de caracteres

    O script de exemplo abaixo invoca o. CreateInstance() método para carregar os dados de um produto vendido, toda a 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 isMultiSelectpara invocar o. CreateInstance() e carregue 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(Object sourceJSON, Object dirtyJSON, Object additionalParams)

    Compara os objetos JSON de origem e origem modificados de uma entidade lead para 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:
    . LeadtoCashCore a inclusão de script requer que você chame primeiro o ponto de extensão com script PrimitiveUtil() com o. LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto)método utilitário 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 LeadtoCashCore métodos.
    Tabela 5. Parâmetros
    Nome Tipo Descrição
    SourceJSON Objeto Objeto JSON do lead de origem para a entidade de dinheiro.
    DirtyJSON Objeto JSON de origem modificado do lead para entidade de dinheiro.
    additionalParams Objeto Opcional. Parâmetros adicionais a serem usados.
    additionalParams.delta_ignore_attributes Objeto Atributos de tabela a serem ignorados durante a comparação entre a origem e dirtyJSON. Permite o suporte de 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”]  
    }
    Parâmetros adicionais.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 que ocorreram entre sourceJSON e 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"
     } 
    ]
    LineItems._action Ação de mudança aplicada ao item de linha do JSON de origem.
    Valores possíveis:
    • Adicionar: As informações foram adicionadas ao JSON de origem.
    • Mudança: As informações foram atualizadas no JSON de origem.
    • Desconectar: As informações foram desconectadas do JSON de origem.
    • Nenhuma mudança: Nenhuma mudança ocorreu no JSON de origem.

    Tipo de dados: Cadeia de caracteres

    LineItems.Attributes Atributos do item de linha. Por exemplo, o nome e o valor do atributo. Pode conter campos variáveis com base na entidade.

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    LineItems.Attributes.Account Informações sobre a conta associada ao atributo do item.

    Tipo de dados: Objeto

    "account": { 
      "value": "String" 
    }
    Atributos.Conta.Valor.Items.Linha Sys_id da conta associada ao atributo de item de linha.

    Tipo de dados: Cadeia de caracteres

    lineItems.characteristics Características do item de linha. Pode conter campos variáveis com base na entidade.

    Tipo de dados: Matriz de objetos

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

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

    "<field_name>": { 
      "value": "String" 
    }
    lineitems.characteristics.attributes.<field_name>.valor Valor do atributo que pertence ao registro de característica de uma entidade.

    Tipo de dados: Cadeia de caracteres

    lineItems.characteristics.sys_id Objeto sys_id do registro de característica.

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    lineItems.characteristics.table Nome da tabela que contém o registro de característica.

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Matriz de objetos

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    LineItems.table Nome da tabela que contém o registro de item associado à entidade Lead para dinheiro.

    Tipo de dados: Cadeia de caracteres

    O exemplo a seguir demonstra como chamar o. delta() primeiro chamando o. PrimitiveUtil método utilitário e. GetPrimitiesEPService() E, em seguida, fornecendo os objetos JSON de origem e de 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 a seleção múltipla delta() método pela primeira chamada PrimitiveUtil e. GetPrimitivesEPService E, em seguida, fornecer 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 LeadtoCashCore métodos.

    /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 sourceJSON, Objeto targetJSON, Objeto additionalParams)

    Transforma e aplica a estrutura JSON de origem de uma determinada entidade ao JSON de destino de outra entidade. Em seguida, você pode confirmar a entidade alterada no banco de dados usando CommitInstance() método.

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

    Nota:
    . LeadtoCashCore a inclusão de script requer que você chame primeiro o ponto de extensão com script PrimitiveUtil() com o. LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto)método utilitário para acionar a implementação antes de chamar efeito () em seu script. Para cada fluxo, obtenha o serviço apenas uma vez e use o mesmo serviço para todos LeadtoCashCore métodos.
    Tabela 7. Parâmetros
    Nome Tipo Descrição
    SourceJSON Objeto JSON que contém detalhes da entidade de origem.
    TargetJSON Objeto JSON que contém detalhes da entidade de destino.
    additionalParams Objeto Opcional. Parâmetros adicionais a serem usados.
    Parâmetros 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 campos 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 campos 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 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: As informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: Nenhuma mudança ocorreu entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: As informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: Cadeia de caracteres

    _records_count Detalhes dos novos registros inseridos para cada tabela.

    Tipo de dados: Objeto

    "_records_count": {
    "tableName": {Object}
    }
    _Records_count.tablename Nome da tabela na qual os 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

    _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" 
    }
    _source_object.sys_id Sys_id do registro da entidade de origem que foi atualizado.

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Cadeia de caracteres

    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: As informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: Nenhuma mudança ocorreu entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: As informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: Cadeia de caracteres

    LineItems._source_object Detalhes do registro da entidade de origem ao qual _glide_action foi aplicada. 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 as entidades.

    Tipo de dados: Cadeia de caracteres

    LineItems._state Estado da entidade.

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    LineItems.Attributes Atributos do item de linha. Por exemplo, o nome e o valor do atributo. Pode conter campos variáveis com base na entidade.

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    LineItems.Attributes.Account Informações sobre a conta associada ao atributo do item.

    Tipo de dados: Objeto

    "account": { 
      "value": "String" 
    }
    Atributos.Conta.Valor.Items.Linha Sys_id da conta associada ao atributo de item de linha.

    Tipo de dados: Cadeia de caracteres

    LineItems.attributes.short_description Descrição resumida do atributo do item de linha.

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Matriz de objetos

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    lineItems.characteristics._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: As informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: Nenhuma mudança ocorreu entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: As informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: Cadeia de caracteres

    lineItems.characteristics.attributes 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}
    }
    lineItems.characteristics.attributes.<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"
    }
    lineItems.characteristics.attributes.<attribute_type>.Valor Valor do atributo do item de linha.

    Tipo de dados: Cadeia de caracteres

    lineitems.characteristics.attributes.<field_name> Nome do atributo do registro de característica associado ao item de linha.

    Tipo de dados: Objeto

    "<field_name>": { 
      "value": "String" 
    }
    lineitems.characteristics.attributes.<field_name>.valor Valor do atributo que pertence ao registro de característica de uma entidade.

    Tipo de dados: Cadeia de caracteres

    lineItems.characteristics.sys_id Sys_id do registro de característica associado.

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    lineItems.characteristics.table Nome da tabela que contém o registro de característica.

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Matriz de objetos

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

    Tipo de dados: Objeto

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

    Tipo de dados: Cadeia de caracteres

    LineItems.table Nome da tabela que contém o registro de item associado à entidade Lead para 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 lógica de transformação usando a saída do delta() método:
    Nota:
    O mesmo script é aplicável para casos de uso de seleção única e múltipla, pois 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 - commitInstance(Object targetJSON, Object additionalParams)

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

    Nota:
    . LeadtoCashCore a inclusão de script requer que você chame primeiro o ponto de extensão com script PrimitiveUtil() com o. LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigId, contexto do objeto)método utilitário para acionar a implementação antes de chamar CommitInstance() em seu script. Para cada fluxo, obtenha o serviço apenas uma vez e use o mesmo serviço para todos LeadtoCashCore métodos.
    Tabela 9. Parâmetros
    Nome Tipo Descrição
    TargetJSON Objeto Objeto JSON que contém o "glide_action" de uma entidade de destino para confirmar. Você pode passar a saída do efeito () método 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.
    additionalParams.useNumberGenerator Booliano Opcional. Sinalizador que indica se sys_numbers deve ser gerado em massa.
    Valores válidos:
    • Verdadeiro: Gere 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: Gere o sys_number individualmente no momento da inserção para 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 Confirmar status e sys_id se a mudança do item de linha for uma ação de INSERÇÃO.

    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 dataObject._glide_actioné INSERIR . A tabela atualizada pode variar entre as entidades. Por exemplo, order [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: As informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: Nenhuma mudança ocorreu entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: As 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 _glide_action foi aplicada. A tabela atualizada pode variar entre as entidades. Por exemplo, order [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 _glide_action foi aplicada. Isso pode variar entre as 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:
    • Adicionar: As informações foram adicionadas ao JSON de origem.
    • Mudança: As informações foram atualizadas no JSON de origem.
    • Desconectar: As informações foram desconectadas do JSON de origem.
    • Nenhuma mudança: Nenhuma mudança ocorreu no JSON de origem.

    Tipo de dados: Cadeia de caracteres

    DataObject.lineItems._commitObjectInfo Retornado se a mudança do item de linha for um INSERIR ação. Contém o status de confirmação do objeto e o sys_id.

    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 as entidades. Por exemplo, order [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: As informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: Nenhuma mudança ocorreu entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: As 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 ao qual _glide_action foi aplicada. 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 _glide_action foi aplicada.

    Tipo de dados: Cadeia de caracteres

    DataObject.lineItems._source_object.table Nome da tabela do registro da entidade de origem ao qual _glide_action foi aplicada.

    Tipo de dados: Cadeia de caracteres

    DataObject.lineItems._state Estado do objeto.
    Valores possíveis:
    • Ativo: O objeto da 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 variáveis 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 variáveis da entidade.

    Tipo de dados: Objeto

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    DataObject.lineItems.Attributes.<attribute_name>.Value Valor do atributo do item de linha.

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Matriz de objetos

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    dataObject.lineItems.characteristics._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: As informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • NO_CHANGE: Nenhuma mudança ocorreu entre as estruturas JSON de origem e de destino.
    • ATUALIZAÇÃO: As informações foram modificadas entre a origem e as estruturas JSON.

    Tipo de dados: Cadeia de caracteres

    dataObject.lineItems.characteristics.attributes 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.characteristics.attributes.<attribute_type> Nome do atributo da característica. Pode conter campos variáveis da entidade.

    Tipo de dados: Objeto

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

    Tipo de dados: Objeto

    "<attribute_name>": { 
     "value": "String"
    }
    dataObject.lineItems.characteristics.attributes.<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 as entidades. Por exemplo, order [sn_ind_tmt_orm_order].

    Tipo de dados: Cadeia de caracteres

    DataObject.lineItems[0].characteristics.table Nome da tabela que contém o registro de 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 lineItemsparâmetro.

    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 de 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 Ordem ou Especificação. Por exemplo, order [sn_ind_tmt_orm_order].

    Tipo de dados: Cadeia de caracteres

    DataObject.lineItems[0].table Nome da tabela que contém o registro de item associado à entidade Lead para dinheiro.

    Tipo de dados: Cadeia de caracteres

    DataObject.sys_id Sys_id do registro de item de linha associado. A tabela atualizada pode variar entre as entidades. Por exemplo, order [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 exibida para o usuário na IU. A mensagem de exibição é idêntica à messagevalor da cadeia de caracteres.

    Tipo de dados: Cadeia de caracteres

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

    Tipo de dados: Cadeia de caracteres

    HeaderId Sys_id do registro da entidade de destino criado ou atualizado pelo CommitInstance método.

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

    Tipo de dados: Cadeia de caracteres

    mensagem Mensagem descrevendo os cenários de sucesso, erro ou parcialmente_sucesso. Esta mensagem é igual a displayMessageValor da cadeia de caracteres e pode ser usado por outras chamadas de aplicações para a API.

    Tipo de dados: Cadeia de caracteres

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

    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 operação de glide de linha raiz ou cabeçalho. Reacione o. Lead para Núcleo de dinheiro Fluxo de API.
    • Partial_success: Houve falhas ao processar todo o JSON. Consulte Processando logs para solucionar erros específicos.

    Tipo de dados: Cadeia de caracteres

    O exemplo a seguir mostra como usar cada LeadtoCashCore método para recuperar, aplicar e confirmar os detalhes de uma entidade de origem para destino. Neste exemplo, o método commitInstance() é usado para confirmar o JSON alterado em uma entidade lead para dinheiro 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"
      ]
    }