LeadtoCashCore - com escopo
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 Sales and Order Management workflows.
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:
- LeadtoCashCore - createInstance(cadeia de caracteres headerSysIDs, cadeia de caracteres lineSysIDs, booliano isTarget, Object additionalParams, contexto de objeto) - 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.
- LeadtoCashCore - delta (Objeto de origemJSON, Objeto sujoJSON, Objeto adicionalParams, Contexto de objeto) - Compara duas entradas JSON e identifica quaisquer mudanças ocorridas entre elas. Por exemplo, quando algo é adicionado, excluído ou modificado em uma entidade.
- LeadtoCashCore - efeito (Objeto de origemJSON, Objeto de destinoJSON, Objeto adicionalParams, Contexto de objeto) - Transforma o destino JSON de origem em um objeto de destino.
- LeadtoCashCore - confirmInstance(Object targetJSON, Object additionalParams) - Confirma a transformação feita na inclusão de script efeito () no banco de dados.
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));
- A primeira chamada obtém as informações do produto vendido existente usando o método createInstance().
- Em seguida, comparamos este JSON de origem com o JSON sujo usando o método delta(), que retorna um JSON delta.
- O delta() JSON é transformado em um JSON do tipo ordem usando o método efeito ().
- O pedido JSON é confirmado no banco de dados usando o método confirmInstance().
LeadtoCashCore - createInstance(cadeia de caracteres headerSysIDs, cadeia de caracteres lineSysIDs, booliano isTarget, Object additionalParams, contexto de objeto)
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().
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 único headerIDusecase com vários lineIDs é compatível sem definir "context.isMultiSelect" como verdadeiro.
| Nome | Tipo | Descrição |
|---|---|---|
| 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 Nota: É necessário pelo menos um parâmetro headerSysID ou lineSysIDs. |
| 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 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. |
| é meta | Booliano | Opcional. Sinalizador que determina se os dados da entidade de destino devem ser buscados. Valores válidos:
Padrão: falso |
| 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:
Padrão: falso |
| contexto | Objeto | Opcional. Fornece a opção de invocar várias instâncias usando o parâmetro context.isMultiSelect. |
| context.isMultiSelect | Booliano | Opcional. Sinalizador que indica se várias entidades devem ser aprovadas como entrada para criar a instância. Valores válidos:
Padrão: falso |
| Tipo | Descrição |
|---|---|
| Objeto JSON | Um JSON que contém detalhes do registro da entidade. Tipo de dados: objeto |
| itens | Contém uma matriz de objetos selecionados quando context.isMultiSelect está definido como verdadeiro. Tipo de dados: objeto |
| itens._estado | Um objeto que representa o estado do objeto. Tipo de dados: objeto |
| itens._estado.valor | O estado atual do objeto. Valores possíveis:
Tipo de dados: cadeia de caracteres |
| itens.atributos | Atributos do registro de cabeçalho. Tipo de dados: objeto |
| itens.atributos.conta | Informações sobre a conta associada ao atributo do item. |
| itens.atributos.conta.valor | Sys_id da conta associada ao atributo do item. Tipo de dados: cadeia de caracteres |
| items.attributes.name | Nome do atributo de entidade do registro de cabeçalho. Por exemplo, a conta no contato. Pode conter campos variados da entidade. Tipo de dados: objeto |
| itens.atributos.nome.valor | Nome do atributo de item pertencente ao registro de cabeçalho de uma entidade. Tipo de dados: cadeia de caracteres |
| itens.sys_id | Objeto que contém informações de sys_id sobre o registro do item associado. Tipo de dados: objeto |
| itens.sys_id.value | Sys_id de um registro de item associado. Tipo de dados: cadeia de caracteres |
| itens.tabela | Nome da tabela que contém o registro do item associado ao lead para entidade de dinheiro. Tipo de dados: cadeia de caracteres |
| itens de linha | Objeto JSON que contém os detalhes do item de linha do registro da entidade. Nota: Use este objeto no parâmetro de solicitação sourceJSON para o método LeadtoCashCore - delta (Objeto de origemJSON, Objeto sujoJSON, Objeto adicionalParams, Contexto de objeto). Itens de linha de uma entidade. Por exemplo, itens de linha de pedido ou itens de linha de cotação. Tipo de dados: matriz de objetos |
| itensDelinha.atributos | Atributos do registro do item de linha. Os atributos podem variar entre entidades.Tipo de dados: objeto |
| itensDelinha.atributos.conta | Informações sobre a conta associada ao atributo do item de linha. |
| itensDelinha.atributos.conta.valor | Sys_id da conta associada ao atributo do item de linha. Tipo de dados: cadeia de caracteres |
| lineItems.attributes.name | Informações sobre o nome do atributo do item de linha.Tipo de dados: objeto |
| itensDelinha.atributos.nome.valor | Nome do atributo. Tipo de dados: cadeia de caracteres |
| itens.linha.características | Lista de características associadas ao item. As características podem variar entre entidades. Tipo de dados: matriz de objetos |
| 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 |
| itensDeLinha.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, contas ou contatos, registros de opção de característica ou informações do produto vendido. Tipo de dados: objeto |
| itensDelinha.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 |
| itensDelinha.características.sys_id | Objeto que contém o sys_id do registro de característica associado. Tipo de dados: objeto |
| itensDelinha.características.sys_id.valor | Sys_id do registro de característica associado. Tipo de dados: cadeia de caracteres |
| itensDelinha.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 |
| 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: objeto |
| itens_linha.sys_id | Objeto que contém informações de sys_id sobre o registro do item de linha associado. Tipo de dados: objeto |
| itens_de_linha.sys_id.value | Sys_id de um registro de item de linha associado. Tipo de dados: cadeia de caracteres |
| itenslinha.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"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
],
"characteristics": []
}
],
"characteristics": [
{
"table": "sn_prd_pm_product_characteristics",
"sys_id": {
"value": "8d669b6665ebf110f877d71ec56bf75c"
},
"attributes": {
"sys_id": {
"value": "8d669b6665ebf110f87d71ec56bf75c"
},
"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": []
}
]
}
]
}
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.
| 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. |
| metaJSON | Objeto | Opcional. Parâmetros adicionais a serem usados. Nota: Parâmetros adicionais para confirmInstance() não estarão disponíveis até uma versão posterior. |
| Tipo | Descrição |
|---|---|
| Objeto JSON | Objeto JSON que contém detalhes sobre o registro da entidade de destino.Tipo de dados: objeto |
| erro | Mensagem de erro que descreve a falha do método confirmaçãoInstance. 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. Tipo de dados: cadeia de caracteres |
| rootLineIDs | Sys_ids dos registros de entidade de destino inseridos, atualizados ou excluídos pelo método confirmInstance. Tipo de dados: matriz de cadeias de caracteres |
| status | Mensagem de status com um valor de "êxito" ou "falha". 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.
//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));
//The returned JSON can be used for subsequent operations.
Saída:
{
"status": "success",
"error": "",
"headerID": "cc9b3db665e73510f877d71ec56bf7ed",
"rootLineIDs": [
"0c9b3db665e73510f877d71ec56bf7f1"
]
}
LeadtoCashCore - delta (Objeto de origemJSON, Objeto sujoJSON, Objeto adicionalParams, Contexto de objeto)
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.
| Nome | Tipo | Descrição |
|---|---|---|
| origemJSON | Objeto | Objeto JSON do lead de origem para entidade de dinheiro. Nota: Use o método LeadtoCashCore - createInstance(cadeia de caracteres headerSysIDs, cadeia de caracteres lineSysIDs, booliano isTarget, Object additionalParams, contexto de objeto) para recuperar o JSON de origem de uma entidade. |
| 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. |
| additionalParams.delta_ignore_attributes.<table_name> | Cadeia de caracteres | O nome da tabela e seus atributos associados a serem ignorados. Por exemplo: |
| Paramsadicionais.loadDisplayValue | Booliano | Opcional. Sinalizador que indica se o valor de exibição de cada atributo deve ser carregado. Valores válidos:
Padrão: falso |
| contexto | Objeto | Opcional. Fornece a opção de invocar várias instâncias usando o parâmetro context.isMultiSelect. |
| context.isMultiSelect | Booliano | Opcional. Sinalizador que indica se várias entidades devem ser aprovadas como entrada para criar a instância. Valores válidos:
Padrão: falso |
| 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 |
| _ação | A ação de mudança aplicada ao objeto JSON de origem. Valores possíveis:
Tipo de dados: cadeia de caracteres |
| características | Características do registro da entidade de cabeçalho. Pode conter campos variados com base na entidade. Tipo de dados: matriz de objetos |
| características.tabela | Nome da tabela do registro da característica. Tipo de dados: cadeia de caracteres |
| características.sys_id | Objeto Sys_id do registro da característica. Tipo de dados: objeto |
| características.sys_id.value | Sys_id do registro de característica. Tipo de dados: cadeia de caracteres |
| 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 |
| características.atributos.<attribute_name> | Nome do atributo associado à característica. Por exemplo, o nome e o valor do atributo. Pode conter campos variados com base na entidade. Tipo de dados: objeto |
| características.atributos.<attribute_name> .valor | Valor do atributo especificado. Tipo de dados: cadeia de caracteres |
| características._ação | A ação aplicada à característica associada ao registro da entidade de cabeçalho. Valores possíveis:
|
| itens de linha | Itens de linha de uma entidade. Por exemplo, itens de linha de pedido ou itens de linha de cotação. Tipo de dados: matriz de objetos |
| ItensDeLinha._ação | A ação de mudança aplicada ao item de linha do JSON de origem. Valores possíveis:
|
| 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 |
| itensdelinha.atributos.<attribute_name> | Objeto que contém o 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 |
| itensdelinha.atributos.<attribute_name> .valor | Valor do nome do atributo do item de linha. Tipo de dados: objeto |
| itensDelinha.atributos.conta | Informações sobre a conta associada ao atributo do item. Tipo de dados: objeto |
| 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 | Lista de características associadas ao item de linha. As características podem variar entre entidades. Tipo de dados: matriz de objetos |
| itens de linha.características._ação | A ação aplicada ao registro de característica pertencente ao item de linha. Valores possíveis:
|
| itensDeLinha.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 ou na funcionalidade associada à 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 |
| itensdelinha.características.atributos.<field_name> | Nome do atributo do registro de característica associado ao item de linha. Tipo de dados: objeto |
| 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 que contém o sys_id do registro de característica associado. Tipo de dados: objeto |
| itensDelinha.características.sys_id.valor | Valor de Sys_id do registro de característica associado. Tipo de dados: cadeia de caracteres |
| itensDelinha.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 |
| 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: objeto |
| itens_linha.sys_id | Objeto que contém o sys_id do registro do item associado. Tipo de dados: objeto |
| itens_de_linha.sys_id.value | Valor de Sys_id de um registro de item associado. 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, Contexto de objeto)
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.
| Nome | Tipo | Descrição |
|---|---|---|
| origemJSON | Objeto | JSON que contém detalhes da entidade de origem. Nota: Use o LeadtoCashCore - createInstance(cadeia de caracteres headerSysIDs, cadeia de caracteres lineSysIDs, booliano isTarget, Object additionalParams, contexto de objeto) para recuperar o JSON de origem de uma entidade. |
| metaJSON | 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:
Padrão: falso |
| contexto | Objeto | Opcional. Fornece a opção de invocar várias instâncias usando o parâmetro context.isMultiSelect. |
| context.isMultiSelect | Booliano | Opcional. Sinalizador que indica se várias entidades devem ser aprovadas como entrada para criar a instância. Valores válidos:
Padrão: falso |
| Tipo | Descrição |
|---|---|
| Objeto JSON | Mudança que ocorreu e foi aplicada dos objetos JSON de origem para destino em cada objeto, linha de cabeçalho, linhas secundárias e níveis de característica do lead para entidade de dinheiro. Tipo de dados: objeto |
| 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:
|
| itens de linha | Itens de linha de uma entidade. Por exemplo, itens de linha de pedido ou itens de linha de cotação. Tipo de dados: matriz de objetos |
| itens_de_linha._glide_action | A ação de mudança que ocorreu no item de linha. Possíveis valores de _glide_action:
|
| itens_de_linha._objeto_de_origem | O objeto JSON do registro da entidade de origem ao qual glide_action foi aplicado. Este objeto pode variar entre entidades. Tipo de dados: objeto |
| itens_linha._estado | Um objeto que representa o estado do objeto. Tipo de dados: objeto |
| itensDelinha._estado.valor | O estado atual do objeto. Valores possíveis:
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 |
| itensdelinha.atributos.<attribute_name> | Objeto que contém o 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 |
| itensdelinha.atributos.<attribute_name> .valor | Valor do nome do atributo do item de linha. Tipo de dados: objeto |
| itensDelinha.atributos.conta | Informações sobre a conta associada ao atributo do item. Tipo de dados: objeto |
| 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 | Uma 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 |
| itensDeLinha.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 ou na funcionalidade associada à 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 |
| itensDelinha.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 |
| itensdelinha.características.atributos.<field_name> | Nome do atributo do registro de característica associado ao item de linha. Tipo de dados: objeto |
| 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 que contém o sys_id do registro de característica associado. Tipo de dados: objeto |
| itensDelinha.características.sys_id.valor | Valor de Sys_id do registro de característica associado. Tipo de dados: cadeia de caracteres |
| itensDelinha.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 |
| 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: objeto |
| itens_linha.sys_id | Objeto que contém o sys_id do registro do item associado. Tipo de dados: objeto |
| itens_de_linha.sys_id.value | Valor de Sys_id de um registro de item associado. 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 |
| _objeto_origem | O objeto JSON de origem ao qual as mudanças foram aplicadas. A estrutura do objeto pode variar entre as entidades. Tipo de dados: objeto |
| 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 |
//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"
}
],
}
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.
| Nome | Tipo | Descrição |
|---|---|---|
| sourceToTargetConfigID | Cadeia de caracteres | ID de configuração de mapeamento para o mapeamento da origem para o destino. Localizado na tabela Mapeamento de entidade de lead para dinheiro [sn_l2c_core_entity_mapping]. |
| 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.loadDisplayValue | Booliano | Opcional. Sinalizador que indica se o valor de exibição de cada atributo deve ser carregado. Valores válidos:
Padrão: falso |
| context.isMultiSelect | Booliano | Opcional. Sinalizador que indica se várias entidades devem ser aprovadas como entrada para criar a instância. Valores válidos:
Padrão: falso |
| 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)