LeadtoCashCore - com escopo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 19 min. de leitura
  • Crie fluxos de trabalho no ciclo de vida Lead to cash core.

    As inclusões de script LeadtoCashCore permitem orquestrar programaticamente um fluxo de trabalho lead-to-cash. Neste fluxo de trabalho, 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 API 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.

    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. Essas APIs pertencem ao namespace sn_l2c_core e exigem a função de administrador.

    Para concluir um fluxo de trabalho da API Lead to cash, passe os parâmetros de retorno de uma inclusão de script LeadtoCashCore para a próxima. Normalmente, você chama as inclusões de script na seguinte ordem:

    1. LeadtoCashCore - createInstance(cadeia de caracteres headerSysID, cadeia de caracteres lineSysIDs, booliano isTarget, Object additionalParams)- Busca os dados de uma determinada entidade. Por exemplo, informações relacionadas ao pedido, incluindo itens de linha.
    2. LeadtoCashCore - delta(objeto sourceJSON, objeto DirtyJSON, objeto adicionalParams)- 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 JSON de origem, objeto JSON de destino, parâmetros adicionais do objeto)- Transforma o destino JSON de origem em um objeto de destino.
    4. LeadtoCashCore - confirmInstance(Object targetJSON, Object additionalParams)- Confirma a transformação feita na inclusão de script de efeito () no banco de dados.
    Nota:
    Se necessário, delta() pode ser ignorado neste fluxo de trabalho. No entanto, chamar essas APIs fora de ordem resulta em um fluxo de trabalho malsucedido (por exemplo, ao chamar confirmInstance() e, em seguida, efeito()).

    Ponto de extensão

    Cada uma dessas inclusões de script usa o ponto de extensão com script PrimitiveUtil, 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. Você deve primeiro fornecer este ponto de extensão com o método getPrimitivesEPService(), que especifica a tabela da qual obter informações de origem e destino (consulte LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID) para obter mais informações). Depois que esses dois parâmetros 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 cash core

    Embora cada uma das inclusões de script Core de lead para dinheiro disponíveis esteja documentada com mais detalhes, você pode consultar o exemplo a seguir para ver como esses scripts são usados juntos para produzir um fluxo de trabalho de lead para dinheiro.

    var util = new sn_l2c_core.PrimitiveUtil(); 
     
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order'); 
     
    //CREATE INSTANCE
    var SPInstance = service.createInstance(null, '06670ba3c3adbd501caee74bb0013166'); 
    gs.info("SPInstance: "+JSON.stringify(SPInstance)); 
     
    // DELTA 
    // construct the dirtyJSON as required 
    var deltaOutput = service.delta(SPInstance, dirtyJSON);/ 
    gs.info("deltaOutput: "+JSON.stringify(deltaOutput)); 
     
    // EFFECT 
    var effectOutput = service.effect(deltaOutput); 
    gs.info("effectOutput: " + JSON.stringify(effectOutput)); 
     
    // COMMIT INSTANCE
    var commitOutput = service.commitInstance(effectOutput); 
    gs.info("commitOutput: " + JSON.stringify(commitOutput)); 
    Em nosso exemplo, um cliente comprou um produto vendido, mas agora solicita uma modificação no produto vendido existente. As modificações necessárias são fornecidas na forma de um DirtySJON. Para aplicar essas modificações, ligamos para as inclusões de script Lead to cash core na seguinte ordem:
    1. A primeira chamada obtém as informações do produto vendido existente usando createInstance().
    2. Em seguida, comparamos este sourceJSON com o DirtyJSON usando delta(), que retorna um deltaJSON.
    3. O deltaJSON é transformado em um JSON do tipo Ordem usando o efeito().
    4. O JSON do pedido é confirmado no banco de dados usando confirmInstance() e atualiza o lead para a tabela da entidade principal de dinheiro.

    LeadtoCashCore - getPrimitivesEPService(cadeia de caracteres sourceToTargetConfigID)

    Aciona o ponto de extensão PrimivUtil.

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

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    sourceToTargetConfigID Cadeia de caracteres O ID de configuração de mapeamento da origem para o destino. Localizado na tabela Mapeamento de entidade de lead para dinheiro [sn_l2c_core_entity_mapping].
    Tabela 2. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir invoca o ponto de extensão PrimitiveUtil() e escolhe uma implementação com base em sourceToTargetConfigID de um fluxo L2C, o ID de configuração de mapeamento na tabela sn_l2c_core_entity_mapping.

    //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’)

    LeadtoCashCore - createInstance(cadeia de caracteres headerSysID, cadeia de caracteres lineSysIDs, booliano isTarget, Object additionalParams)

    Retorna os dados de uma determinada entidade Lead to cash com um objeto JSON que contém vários detalhes, como cabeçalho, linhas, linhas secundárias, características e seus atributos.

    O JSON de saída de createInstance() pode ser usado em APIs subsequentes do fluxo de trabalho Lead to cash core, como delta(), efetua( )e confirmInstance().

    A API LeadtoCashCore requer que você primeiro chame o ponto de extensão com script PrimitiveUtil() com o método do utilitário getPrimitivesEPService() para acionar a implementação antes de chamar createInstance() em seu script.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    cabeçalhoSysID Cadeia de caracteres O sys_id do cabeçalho de uma entidade da qual os dados da entidade serão recuperados. Obrigatório se você não fornecer lineID.
    Nota:
    É necessário pelo menos um parâmetro headerSysID ou LineSysIDs na solicitação.
    lineSysID Cadeia de caracteres O sys_id do item de linha de uma entidade da qual os dados da entidade serão recuperados. Obrigatório se você não fornecer headerID.
    Nota:
    É necessário pelo menos um parâmetro headerSysID ou LineSysIDs na solicitação.
    isTarget Booliano Opcional. Sinalizador que determina se os dados da entidade de destino devem ser obtidos.
    Valores válidos:
    • verdadeiro: busca dados da entidade de destino.
    • falso: não busca dados da entidade de destino.

    Padrão: falso

    additionalParams Objeto Opcional. Especifica parâmetros adicionais a serem usados.
    "additionalParams": { 
        “skipLines”:”Boolean” 
    } 
    Paramsadicionais.skipLines Booliano

    Opcional. Sinalizador que indica se os itens de linha de uma entidade devem ser obtidos.

    Valores válidos:
    • verdadeiro: ignora os itens de linha de uma entidade.
    • falso: não ignora os itens de linha de uma entidade.

    Padrão: falso

    Tabela 4. Retorna
    Tipo Descrição
    Objeto JSON Um JSON que contém detalhes do registro da entidade.
    Nota:
    Este JSON é usado no parâmetro de solicitação sourceJSON de LeadtoCashCore - delta(objeto sourceJSON, objeto DirtyJSON, objeto adicionalParams).

    Tipo de dados: objeto

    { 
      "table": "string", 
      "sys_id": { 
        "value": "string" 
      }, 
      "attributes": { 
        "contact": { 
          "value": "string" 
        }, 
        "account": { 
          "value": "string" 
        } 
      }, 
      "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "string" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": {}, 
              "lineItems": [], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    } 
    tabela Nome da tabela do registro do cabeçalho de uma entidade Lead para dinheiro.

    Tipo de dados: cadeia de caracteres

    sys_id Sys_id do registro do cabeçalho.
    "sys_id": { 
                "value": "string" 
              }

    Tipo de dados: objeto

    sys_id.value O valor de sys_id do registro do cabeçalho.

    Tipo de dados: cadeia de caracteres

    atributos Atributos do registro do cabeçalho.
    "attributes": { 
            "name": { 
              "value": "string" 
            }

    Tipo de dados: objeto

    atributos.<field_name> Atributos do registro do cabeçalho. Por exemplo, a conta ou o contato etc. Pode conter campos variados da entidade.
    
          "attributes": { 
            "name": { 
              "value": "string" 
            }

    Tipo de dados: objeto

    atributos.<field_name> .valor Valor do atributo que pertence ao registro de cabeçalho de uma entidade.

    Tipo de dados: cadeia de caracteres

    itens de linha Itens de linha de uma entidade. Por exemplo, itens de linha do pedido, itens de linha da cotação etc.
    "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "string" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }

    Tipo de dados: matriz

    ItensDeLinha.Tabela Nome da tabela do item de linha de uma entidade Lead to cash.

    Tipo de dados: cadeia de caracteres

    itens_linha.sys_id Sys_id do registro do item de linha.
    "sys_id": { 
                "value": "string" 
              }, 

    Tipo de dados: objeto

    itens_linha.sys_id.value O valor de sys_id do registro do item de linha.

    Tipo de dados: cadeia de caracteres

    ItensDeLinha.atributos Atributos do registro do item de linha.
    "attributes": { 
            "name": { 
              "value": "string" 
            }
    }

    Tipo de dados: objeto

    lineItems.atributos.<field_name> Atributos do registro do item de linha. Por exemplo, a conta ou o contato etc. Pode conter campos variados com base na entidade.
    "name": { 
              "value": "string" 
            }

    Tipo de dados: objeto

    lineItems.atributos.<field_name> .valor Valor do atributo que pertence ao item de linha de uma entidade.

    Tipo de dados: cadeia de caracteres

    ItensDeLinha.ItensDeLinha Itens de linha secundários de um item de linha primário.
    "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }
    ]

    Tipo de dados: objeto

    lineItems.características Características de um item de linha.
    "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                } 
              } 
            } 
          ] 
        } 
      ] 

    Tipo de dados: matriz

    características.tabela Nome da tabela do registro de característica de uma entidade Lead para dinheiro.

    Tipo de dados: cadeia de caracteres

    características.sys_id Sys_id de um registro de característica.
    "sys_id": { 
                "value": "string" 
              }

    Tipo de dados: objeto

    características.sys_id.value O valor de sys_id de um registro de característica.

    Tipo de dados: cadeia de caracteres

    "características.atributos" Atributos do registro da característica.
    "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }

    Tipo de dados: objeto

    Atributos.características.<field_name> Atributos do registro da característica. Por exemplo, o nome ou o valor da característica etc. Pode conter características variadas com base na entidade.
    { 
                  "value": "string" 
                }

    Tipo de dados: objeto

    Atributos.características.<field_name> .valor Valor do atributo que pertence ao registro de característica de uma entidade.

    Tipo de dados: cadeia de caracteres

    O script de exemplo abaixo invoca a API createInstance 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 APIs of the flow such as Delta, Effect and Commit Instance

    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": "8d669b6665ebf110f877d71ec56bf75c" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "sold_product": { 
                  "value": "4e03cda2ec873110f87727ef5883a2cf" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    } 

    LeadtoCashCore - delta(objeto sourceJSON, objeto DirtyJSON, objeto adicionalParams)

    Compara os JSONs de origem e de origem modificados de uma entidade Lead a Dinheiro e retorna um JSON detalhando todas as mudanças feitas no sourceJSON, como adições, exclusões ou modificações.

    A API LeadtoCashCore requer que você primeiro chame o ponto de extensão com script PrimitiveUtil() com o método do utilitário getPrimitivesEPService() para acionar a implementação antes de chamar delta() em seu script.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    origemJSON Objeto O JSON de origem do lead para entidade de dinheiro.
    DirtyJSON Objeto O JSON de origem modificado do lead para entidade de dinheiro.
    additionalParams Objeto Opcional. Especifica parâmetros adicionais a serem usados. Nenhum parâmetro adicional está disponível no momento, mas estará no futuro.
    Tabela 6. Retorna
    Tipo Descrição
    Objeto JSON Um JSON que contém detalhes do registro da entidade.

    Tipo de dados: objeto

    { 
      "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "number" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "number" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "string" 
                }, 
                "account": { 
                  "value": "string" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "string", 
                  "sys_id": { 
                    "value": "number" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "string" 
                    }, 
                    "account": { 
                      "value": "string" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "string" 
                } 
              ], 
              "characteristics": [], 
              "_action": "string" 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                }, 
                "action": { 
                  "value": "string" 
                } 
              }, 
              "_action": "string" 
            } 
          ], 
          "_action": "string" 
        } 
      ] 
    } 
    _ação A ação aplicada ao JSON de origem. Valores possíveis:
    • add- informações foram adicionadas ao JSON de origem.
    • as informações de mudança foram atualizadas na origem JSON.
    • desconexão: as informações foram desconectadas do JSON de origem.
    • no-change- nenhuma mudança ocorreu no JSON de origem.
    tabela Nome da tabela do registro do cabeçalho de uma entidade Lead para dinheiro.

    Tipo de dados: cadeia de caracteres

    sys_id Sys_id do registro do cabeçalho.
    "sys_id": { 
                "value": "string" 
              }

    Tipo de dados: objeto

    sys_id.value O valor de sys_id do registro do cabeçalho.

    Tipo de dados: cadeia de caracteres

    atributos Atributos do registro do cabeçalho.
    "attributes": { 
            "name": { 
              "value": "string" 
            }

    Tipo de dados: objeto

    atributos.<field_name> Atributos do registro do cabeçalho. Por exemplo, a conta ou o contato etc. Pode conter campos variados da entidade.
    
          "attributes": { 
            "name": { 
              "value": "string" 
            }

    Tipo de dados: objeto

    atributos.<field_name> .valor Valor do atributo que pertence ao registro de cabeçalho de uma entidade.

    Tipo de dados: cadeia de caracteres

    itens de linha Itens de linha de uma entidade. Por exemplo, itens de linha do pedido, itens de linha da cotação etc.
    "lineItems": [ 
                { 
                  "table": "string", 
                  "sys_id": { 
                    "value": "number" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "string" 
                    }, 
                    "account": { 
                      "value": "string" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "string" 
                } 
              ], 
              "characteristics": [], 
              "_action": "string" 
            } 
          ], 

    Tipo de dados: matriz

    ItensDeLinha._ação A ação aplicada ao item de linha na origem JSON. Valores possíveis:
    • adicionar informações foram adicionadas ao item de linha.
    • as informações de mudança foram atualizadas para o item de linha.
    • desconexão- as informações foram desconectadas do item de linha.
    • no-change- nenhuma mudança ocorreu no item de linha.
    ItensDeLinha.Tabela Nome da tabela do item de linha de uma entidade Lead to cash.

    Tipo de dados: cadeia de caracteres

    itens_linha.sys_id Sys_id do registro do item de linha.
    "sys_id": { 
                "value": "string" 
              }, 

    Tipo de dados: objeto

    itens_linha.sys_id.value O valor de sys_id do registro do item de linha.

    Tipo de dados: cadeia de caracteres

    ItensDeLinha.atributos Atributos do registro do item de linha.
    "attributes": { 
            "name": { 
              "value": "string" 
            }
    }

    Tipo de dados: objeto

    lineItems.atributos.<field_name> Atributos do registro do item de linha. Por exemplo, a conta ou o contato etc. Pode conter campos variados com base na entidade.
    "name": { 
              "value": "string" 
            }

    Tipo de dados: objeto

    lineItems.atributos.<field_name> .valor Valor do atributo que pertence ao item de linha de uma entidade.

    Tipo de dados: cadeia de caracteres

    ItensDeLinha.ItensDeLinha Itens de linha secundários de um item de linha primário.
    "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }
    ]

    Tipo de dados: objeto

    lineItems.características Características de um item de linha.
    "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                }, 
                "action": { 
                  "value": "string" 
                } 
              }, 
              "_action": "string" 
            } 
          ], 

    Tipo de dados: matriz

    características._ação A ação aplicada à característica. Valores possíveis:
    • add- informações foram adicionadas à característica.
    • mudança: as informações foram atualizadas na característica.
    • desconexão- as informações foram desconectadas da característica.
    • no-change- nenhuma mudança ocorreu na característica.
    características.tabela Nome da tabela do registro de característica de uma entidade Lead para dinheiro.

    Tipo de dados: cadeia de caracteres

    características.sys_id Sys_id de um registro de característica.
    "sys_id": { 
                "value": "string" 
              }

    Tipo de dados: objeto

    características.sys_id.value O valor de sys_id de um registro de característica.

    Tipo de dados: cadeia de caracteres

    "características.atributos" Atributos do registro da característica.
    "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }

    Tipo de dados: objeto

    Atributos.características.<field_name> Atributos do registro da característica. Por exemplo, o nome ou o valor da característica etc. Pode conter características variadas com base na entidade.
    { 
                  "value": "string" 
                }

    Tipo de dados: objeto

    Atributos.características.<field_name> .valor Valor do atributo que pertence ao registro de característica de uma entidade.

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra para formar a API delta() chamando primeiro PrimivUtil 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" 
        } 
      ] 
    } 

    LeadtoCashCore - efeito (objeto JSON de origem, objeto JSON de destino, parâmetros adicionais do objeto)

    Transforma e aplica a estrutura JSON de origem de uma determinada entidade Lead to cash no targetJSON de outra entidade Lead to cash. O JSON retornado pode ser confirmado no banco de dados de uma entidade Lead to cash usando a inclusão de script confirmInstance().

    O JSON de saída de delta() pode ser usado na solicitação de efeito(). Em seguida, qualquer saída JSON de efeito () pode ser confirmada no banco de dados usando o confirmInstance () para concluir o fluxo de trabalho Lead to cash.

    A API LeadtoCashCore requer que você primeiro chame o ponto de extensão com script PrimitiveUtil() com o método do utilitário getPrimitivesEPService() para acionar a implementação antes de chamar o efeito() em seu script.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    origemJSON Objeto JSON com os detalhes da entidade de origem.
    destinoJSON Objeto JSON que contém detalhes da entidade de destino.
    additionalParams Objeto Opcional. Especifica parâmetros adicionais a serem usados. Nenhum parâmetro adicional está disponível no momento, mas estará no futuro.
    Tabela 8. Retorna
    Tipo Descrição
    Objeto JSON Um objeto JSON que contém a mudança que ocorreu e foi aplicada da origem para os objetos JSON da entidade de destino em cada objeto, cabeçalho/linhas/linhas secundárias/características da entidade de lead para dinheiro. Valores possíveis:
    • inserir - as informações foram adicionadas entre as estruturas JSON de origem e de destino.
    • atualizar- as informações foram modificadas entre as estruturas de origem e JSON.
    • excluir - as informações foram removidas entre as estruturas JSON de origem e de destino.

    O exemplo a seguir mostra como aplicar a lógica de transformação usando a saída da API delta() :

    //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 for subsequent APIs of the flow ‘Commit Instance’.

    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" 
              } 
            } 
          ] 
        } 
      ] 
    } 

    LeadtoCashCore - confirmInstance(Object targetJSON, Object additionalParams)

    Confirma o JSON de uma determinada entidade de lead para dinheiro no banco de dados e retorna uma mensagem de status com informações atualizadas. Esta confirmação aplica mudanças à tabela Lead para entidade principal de dinheiro automaticamente.

    A API LeadtoCashCore requer que você primeiro chame o ponto de extensão com script PrimitiveUtil() com o método do utilitário getPrimitivesEPService() para acionar a implementação antes de chamar confirmInstance() em seu script.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    destinoJSON Objeto O objeto JSON que contém a "glide_action" de uma entidade de destino a ser confirmada. A saída da API de efeito () pode ser passada aqui.
    Nota:
    "glide_action" identifica a ação de mudança que ocorreu entre o JSON de origem e o destino de uma entidade de lead para dinheiro. Para obter mais informações, consulte a seção "Retorna" em LeadtoCashCore - efeito (objeto JSON de origem, objeto JSON de destino, parâmetros adicionais do objeto).
    additionalParams Objeto Opcional. Especifica parâmetros adicionais a serem usados. Nenhum parâmetro adicional está disponível no momento, mas estará no futuro.
    Tabela 10. Retorna
    Tipo Descrição
    Objeto JSON Um JSON que contém detalhes sobre o registro da entidade de destino.
    { 
      "status": "string", 
      "error": "string", 
      "headerID": "string", 
      "rootLineIDs": [ 
        "string" 
      ] 
    }

    Tipo de dados: objeto

    status Mensagem de status com valor como "sucesso/falha" da API confirmInstance.

    Tipo de dados: cadeia de caracteres

    Erro Mensagem de erro na falha da API confirmInstance.

    Tipo de dados: cadeia de caracteres

    headerID ID do cabeçalho do registro da entidade de destino criado ou atualizado com a API confirmInstance.

    Tipo de dados: cadeia de caracteres

    rootLineIDs IDs de linha raiz dos registros da entidade de destino que foram inseridos, atualizados ou excluídos com a API confirmInstance.

    Tipo de dados: matriz de cadeias de caracteres

    O exemplo a seguir mostra como usar cada API principal de lead to cash 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" 
      ] 
    }