LeadtoCashCore : Inclus dans le périmètre
L’include de script LeadtoCashCore fournit des méthodes pour orchestrer un workflow prospect-espèces dans le cycle de vie de base prospect-espèces.
Le module d’extension Lead to Cash Core (com.snd.l2c.core) doit être activé pour que les includes de script LeadtoCashCore soient disponibles dans une instance. Cet include de script appartient à l’espace de noms sn_l2c_core et requiert le rôle administrateur.
Dans un workflow prospect-espèces, vous mappez une entité source à une entité cible. Une entité est définie comme une collection de tables. Le mappage de la source à la cible vous permet de transformer la structure ou le contenu de l’entité source pour qu’elle s’adapte à la structure ou au contenu requis dans l’entité cible. La fonctionnalité fournie par cet include de script représente la fonctionnalité de mappage d’entité disponible dans la fonctionnalité Prospect-espèce. Consultez Lead to Cash Core pour plus d'informations.
Pour terminer un workflow à l’aide de l’include de script LeadtoCash , vous transmettez des paramètres de retour d’une méthode à l’autre. En règle générale, vous appelez ces méthodes dans l’ordre suivant :
- LeadtoCashCore : createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams) - Récupère les données d’une entité donnée. Par exemple, les informations relatives à la commande client, y compris les éléments de ligne et leurs données connexes.
Utilisez le context paramètre pour déclarer un ou plusieurs ID d’en-tête ou de ligne dans le script. Pour ces cas d’utilisation à sélection multiple, le JSON de sortie contient un tableau d’éléments clés dans lequel chaque entrée représente une entité unique.
- LeadtoCashCore : delta(Objet sourceJSON, Objet dirtyJSON, Objet additionalParams) - Compare deux entrées JSON et identifie les changements qui se sont produits entre elles. Par exemple, lorsqu’un élément est ajouté, supprimé ou modifié dans une entité.
- LeadtoCashCore : effet (objet sourceJSON, objet targetJSON, objet additionalParams) - Transforme la cible JSON source en objet cible.
- LeadtoCashCore : commitInstance(objet targetJSON, objet additionalParams) - Valide la transformation effectuée dans l’include de script effect() dans la base de données.
Prérequis
Chacune de ces méthodes est associée à un point d’extension, sn_l2c_core. LeadToCashServiceEP. PrimitiveUtil() est un utilitaire qui fournit des méthodes pour obtenir le service de point d’extension et appelle les includes de script en fonction de leurs paramètres disponibles. Vous devez d’abord fournir à PrimitiveUtil() la méthode getPrimitivesEPService(), qui spécifie la table à partir de laquelle obtenir des informations sur la source et la cible. Pour plus d'informations, consultez LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, Object context). Une fois que PrimitiveUtil() et getPrimitivesEPService() sont fournis dans le script, vous pouvez appeler n’importe lequel des includes de script createInstance(), delta(), effect() ou commitInstance() selon les besoins de votre cas d’utilisation.
Exemple de script de workflow Prospect-liquidité Core
Bien que chacun des includes de script Lead to Cash Core disponibles soit documenté individuellement, vous pouvez vous référer à l’exemple suivant pour voir comment vous pouvez utiliser ces méthodes ensemble pour produire un flux de travail Prospect-espèce.
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));
- Le premier appel permet d’obtenir les informations sur le produit vendu existant à l’aide de la méthode createInstance( ).
- Nous comparons ensuite ce JSON source avec le JSON erroné à l’aide de la méthode delta(), qui renvoie un JSON delta.
- Le delta() JSON est ensuite transformé en un JSON d’ordre de type à l’aide de la méthode effect( ).
- La commande JSON est validée dans la base de données à l’aide de la méthode commitInstance( ).
LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, Object context)
Déclenche la méthode d’utilitaire PrimitiveUtil( ).
Pour utiliser l’une des méthodes disponibles dans l’include de script LeadtoCashCore , vous devez d’abord toujours appeler le point d’extension scripté PrimitiveUtil() dans votre script avec la méthode d’utilitaire getPrimitivesEPService() pour déclencher l’implémentation.
| Nom | Type | Description |
|---|---|---|
| contexte | Objet | Facultatif. Options de paramètres supplémentaires pour afficher les valeurs d’attribut et pour invoquer plus d’une instance à la fois. |
| context.isMultiSelect | Booléen | Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance. Valeurs valides :
Valeur par défaut : false |
| context.loadDisplayValue | Booléen | Facultatif. Marqueur indiquant s’il faut charger la valeur d’affichage de chaque attribut. Valeurs valides :
Valeur par défaut : false |
| sourceToTargetConfigID | Chaîne | ID de configuration du mappage pour le mappage de la source à la cible. Table : Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping] |
| Type | Description |
|---|---|
| Aucun |
L’exemple suivant invoque PrimitiveUtil() et sélectionne une implémentation basée sur sn_l2c_cust_flows_sp_to_order, qui est un ID de configuration de mappage dans la table Mappage d’entité prospect-espèces [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(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams)
Renvoie les données d’une ou de plusieurs entités données avec un objet JSON contenant divers détails tels que l’en-tête, les lignes, les lignes enfants, les caractéristiques et leurs attributs.
Utilisez le JSON de sortie de la méthode createInstance() dans les méthodes suivantes du workflow Lead to Cash Core telles que delta(), effect() et commitInstance().
Définissez le paramètre context.isMultiSelect booléen getPrimitivesEPService() sur vrai pour permettre à createInstance() de transmettre plusieurs ID d’en-tête ou ID de ligne séparés par des virgules à la fois. Sinon, vous ne pouvez transmettre qu’un seul ID à la fois. Reportez-vous à la rubrique LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, Object context) pour en savoir plus. Le cas d’utilisation headerID unique avec plusieurs lineID est pris en charge sans être défini context.isMultiSelect sur vrai.
| Nom | Type | Description |
|---|---|---|
| additionalParams | Objet | Facultatif. Paramètres supplémentaires à utiliser. |
| additionalParams.skipLines | Booléen | Facultatif. Marqueur indiquant s’il faut extraire des éléments de ligne pour l’entité spécifiée. Valeurs valides :
Valeur par défaut : false |
| headerSysIDs | Chaîne | En-tête sys_id(s) d’une entité à partir de laquelle récupérer des données. Requis si vous ne fournissez pas le lineSysIDs paramètre. Transmettez null si vous ne transmettez aucun sys_ids d’en-tête.Pour désigner un ou plusieurs sys_ids d’en-tête dans votre script, définissez Remarque : Au moins un paramètre ou lineSysIDs paramètre headerSysID est requis. |
| isTarget | Booléen | Facultatif. Marqueur qui détermine s’il faut extraire les données d’entité cible. Valeurs valides :
Valeur par défaut : false |
| lineSysIDs | Chaîne | Élément de ligne sys_id(s) d’une entité à partir de laquelle récupérer les données de l’entité. Requis si vous ne fournissez headerSysIDs pas et si la structure de l’entité commence par des éléments de ligne tels que le produit vendu. Pour désigner un ou plusieurs sys_ids d’éléments de ligne dans votre script, définissez Remarque : Au moins un paramètre ou lineSysIDs paramètre headerSysID est requis. Si vous en transmettez plusieurs lineSysIDs, tous les enregistrements doivent appartenir au même headerSysID. |
| Type | Description |
|---|---|
| Objet JSON | JSON contenant les détails de l’enregistrement d’entité. Type de données : tableau d’objets |
| _état | État d’activité de l’entité. Valeurs possibles :
Par défaut : actif Type de données : chaîne |
| Caractéristiques | Liste des caractéristiques de l’entité. Les caractéristiques peuvent varier d’une entité à l’autre. Type de données : tableau d’objets |
| Caractéristiques.Attributs | Un ou plusieurs objets contenant des informations sur les attributs associés à l’enregistrement de caractéristique. Le <type d’attribut> peut avoir des valeurs différentes en fonction des enregistrements/fonctionnalités associés à la caractéristique. Par exemple, cet objet peut contenir des références à l’sys_id de l’enregistrement des attributs, des enregistrements de caractéristiques associés, des enregistrements d’options de caractéristiques ou des informations sur les produits vendus. Type de données : objet |
| caractéristiques.attributs.<attribute_type> | Informations sur le nom de clé de l’attribut d’élément.Type de données : objet |
| Caractéristiques.attributs.<attribute_type>.valeur | En règle générale, l’sys_id de l’enregistrement d’attribut associé, mais peut être n’importe quelle chaîne de texte significative décrivant le type d’attribut associé. Type de données : chaîne |
| characteristics.sys_id | Objet contenant le sys_id de l’enregistrement de caractéristique associé. Type de données : objet |
| characteristics.sys_id.valeur | Sys_id de l’enregistrement de caractéristique associé. Type de données : chaîne |
| table.caractéristiques | Nom de la table qui contient l’enregistrement de caractéristique de l’entité prospect-espèce. Type de données : chaîne |
| Éléments | Contient un tableau d’objets sélectionnés lorsque context.isMultiSelect est défini sur vrai. Type de données : tableau d’objets |
| éléments.attributs | Attributs de l’enregistrement d’élément. Les attributs peuvent varier d’une entité à l’autre.Type de données : objet |
| éléments.attributs.compte | Informations sur le compte associé à l’attribut d’élément. |
| éléments.attributs.compte.valeur | Attributs de l’élément. Les attributs peuvent varier d’une entité à l’autre.Type de données : objet |
| éléments.attributs.<key_name> | Informations sur le nom de clé de l’attribut d’élément.Type de données : objet |
| éléments.attributs.<key_name>.valeur | Valeur de l’attribut de nom de clé. Type de données : chaîne |
| items.sys_id | Objet contenant sys_id informations sur l’élément d’entité. Les valeurs varient d’une entité à l’autre. Type de données : objet |
| items.sys_id.valeur | Sys_id d’un élément associé. Type de données : chaîne |
| éléments.table | Nom de la table qui contient l’enregistrement d’élément de ligne associé à l’entité prospect-espèce. Type de données : chaîne |
| éléments.ligneéléments | Objet JSON qui contient les détails de l’élément de ligne de l’enregistrement d’entité. Type de données : tableau d’objets |
| items.lineItems._state | État de l’activité de l’entité de l’élément de ligne. Valeurs possibles :
Par défaut : actif Type de données : chaîne |
| éléments.ligneÉléments.attributs | Attributs de l’enregistrement d’élément de ligne. Les attributs peuvent varier d’une entité à l’autre.Type de données : objet |
| éléments.ligneÉléments.attributs.<key_name> | Informations sur le nom clé de l’attribut d’élément de ligne.Type de données : objet |
| éléments.ligneÉléments.attributs.<key_name>.valeur | Valeur de l’attribut de nom de clé. Type de données : chaîne |
| éléments.ligneÉléments.attributs.compte | Informations sur le compte associé à l’attribut d’élément de ligne. |
| éléments.ligneÉléments.attributs.compte.valeur | Sys_id du compte associé à l’attribut d’élément de ligne. Type de données : chaîne |
| éléments.ligneÉléments.caractéristiques | Liste des caractéristiques associées à l’élément de ligne. Les caractéristiques peuvent varier d’une entité à l’autre. Type de données : tableau d’objets |
| éléments.ligneÉléments.caractéristiques.attributs | Un ou plusieurs objets contenant des informations sur les attributs associés à l’enregistrement de caractéristique. Le <type d’attribut> peut avoir des valeurs différentes en fonction des enregistrements/fonctionnalités associés à la caractéristique. Par exemple, cet objet peut contenir des références à l’sys_id de l’enregistrement des attributs, des enregistrements de caractéristiques associés, des enregistrements d’options de caractéristiques ou des informations sur les produits vendus. Type de données : objet |
| éléments.ligneÉléments.caractéristiques.attributs.<attribute_type>.valeur | En règle générale, l’sys_id de l’enregistrement d’attribut associé, mais peut être n’importe quelle chaîne de texte significative décrivant le type d’attribut associé. Type de données : chaîne |
| items.lineItems.characteristics.sys_id | Objet contenant le sys_id de l’enregistrement de caractéristique associé. Type de données : objet |
| items.lineItems.characteristics.sys_id.valeur | Sys_id de l’enregistrement de caractéristique associé. Type de données : chaîne |
| éléments.ligne.caractéristiques.table | Nom de la table qui contient l’enregistrement de caractéristique de l’entité prospect-espèce. Type de données : chaîne |
| éléments.éléments.ligne.élémentsligne | Éléments de ligne enfants d’un élément de ligne parent. Cet objet a le même format que le lineItems paramètre. Type de données : objet |
| items.lineItems.sys_id | Objet contenant sys_id informations sur l’enregistrement d’élément de ligne associé. Type de données : objet |
| items.lineItems.sys_id.valeur | Sys_id d’un enregistrement d’élément de ligne associé. Type de données : chaîne |
| éléments.ligneÉléments.table | Nom de la table qui contient l’enregistrement d’élément de ligne associé à l’entité prospect-espèces. Type de données : chaîne |
L’exemple de script ci-dessous invoque la méthode createInstance() pour charger les données d’un produit vendu, l’ensemble de sa hiérarchie et ses caractéristiques.
//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()
Sortie :
{
"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"
}
}
}
]
}
]
}
Sélection multiple
Le script suivant montre comment utiliser isMultiSelect pour appeler la méthode createInstance() et charger les données de deux produits vendus avec toute leur hiérarchie et leurs caractéristiques.
//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
Réponse :
{
"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(Objet sourceJSON, Objet dirtyJSON, Objet additionalParams)
Compare les objets JSON source et source modifiés d’une entité prospect-espèces et renvoie un objet JSON qui décrit tous les changements apportés au JSON source, tels que les ajouts, les suppressions ou les modifications.
| Nom | Type | Description |
|---|---|---|
| sourceJSON | Objet | Objet JSON de l’entité source prospect-espèces. Remarque : Utilisez la LeadtoCashCore : createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams) méthode pour récupérer le JSON source d’une entité. |
| dirtyJSON | Objet | JSON source modifié de l’entité prospect-espèce. |
| additionalParams | Objet | Facultatif. Paramètres supplémentaires à utiliser. |
| additionalParams.delta_ignore_attributes | Objet | Attributs de table à ignorer lors de la comparaison entre la source et dirtyJSON. Active la prise en charge des cas d’utilisation de reconfiguration. |
| additionalParams.delta_ignore_attributes.<table_name> | Chaîne | Le nom de la table et ses attributs associés à ignorer. Par exemple : |
| additionalParams.loadDisplayValue | Booléen | Facultatif. Marqueur indiquant s’il faut charger la valeur d’affichage de chaque attribut. Valeurs valides :
Valeur par défaut : false |
| Type | Description |
|---|---|
| Objet JSON | Objet contenant les détails de l’enregistrement d’entité avec tous les changements qui se sont produits entre le fichier sourceJSON et le fichier DirtyJSON. Type de données : objet |
| Éléments de ligne | Objet JSON qui contient les détails de l’élément de ligne de l’enregistrement d’entité. Par exemple, les éléments de ligne de commande ou les éléments de ligne de devis. Type de données : tableau d’objets |
| lineItems._action | Action de changement appliquée à l’élément de ligne du JSON source. Valeurs possibles :
Type de données : chaîne |
| lineItems.attributes | Attributs de l’élément de ligne. Par exemple, le nom et la valeur de l’attribut. Peut contenir des champs variés en fonction de l’entité. Type de données : objet |
| élémentsligne.attributs.<attribute_name> | Nom de l’attribut d’élément de ligne. Par exemple, le nom d’un compte ou d’un contact. Peut contenir différents champs de l’entité. Type de données : objet |
| élémentsligne.attributs.<attribute_name>.valeur | Valeur de l’attribut d’élément de ligne. Type de données : chaîne |
| lineItems.attributes.account | Informations sur le compte associé à l’attribut d’élément. Type de données : objet |
| lineItems.attributes.account.value | Sys_id du compte associé à l’attribut d’élément de ligne. Type de données : chaîne |
| lineItems.characteristics | Caractéristiques de l’élément de ligne. Peut contenir des champs variés en fonction de l’entité. Type de données : tableau d’objets |
| ÉlémentsLigne.Caractéristiques.Attributs | Attributs des caractéristiques de l’enregistrement d’en-tête. Par exemple, le nom et la valeur de l’attribut. Peut contenir des champs variés en fonction de l’entité. Type de données : objet |
| Élémentsline.Caractéristiques.Attributs.<field_name> | Nom d’attribut de l’enregistrement de caractéristique associé à l’élément de ligne. Type de données : objet |
| Élémentsligne.Caractéristiques.Attributs.<field_name>.Valeur | Valeur de l’attribut appartenant à l’enregistrement caractéristique d’une entité. Type de données : chaîne |
| lineItems.characteristics.sys_id | Sys_id’objet de l’enregistrement de la caractéristique. Type de données : objet |
| lineItems.characteristics.sys_id.valeur | Sys_id de l’enregistrement de caractéristique associé. La table mise à jour peut varier d’une entité à l’autre. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| lineItems.characteristics.table | Nom de la table contenant l’enregistrement de caractéristique. Type de données : chaîne |
| Élémentsligne.ÉlémentsLigne | Éléments de ligne enfants d’un élément de ligne parent. Cet objet a le même format que le lineItems paramètre. Type de données : tableau d’objets |
| lineItems.sys_id | Sys_id de l’enregistrement de l’élément associé. Type de données : objet |
| lineItems.sys_id.valeur | Sys_id d’un enregistrement d’élément associé. La table mise à jour peut varier d’une entité à l’autre, comme Commande ou Spécification. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| lineItems.table | Nom de la table qui contient l’enregistrement d’élément associé à l’entité prospect-espèce. Type de données : chaîne |
L’exemple suivant montre comment appeler la méthode delta() en appelant d’abord la méthode utilitaire PrimitiveUtil et getPrimitiesEPService(), puis en fournissant les objets JSON source et cible.
//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
Le JSON de sortie montre que plusieurs éléments de ligne ont été ajoutés au produit de base vendu :
{
"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"
}
]
}
Sélection multiple
L’exemple suivant montre comment former la méthode delta() à sélection multiple en appelant d’abord PrimitiveUtil et getPrimitivesEPService , puis en fournissant les objets JSON source et cible pour plusieurs ID de ligne ou d’en-tête. Pour chaque flux, obtenez le service une seule fois et utilisez le même service pour toutes les méthodes 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
Le JSON de sortie montre que plusieurs éléments de ligne ont été ajoutés au produit de base vendu :
{
"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 : effet (objet sourceJSON, objet targetJSON, objet additionalParams)
Transforme et applique la structure JSON source d’une entité donnée au JSON cible d’une autre entité. Vous pouvez ensuite valider l’entité modifiée dans la base de données à l’aide de la méthode commitInstance( ).
Vous pouvez utiliser le JSON de sortie de la méthode delta() dans la requête effect( ). Ensuite, validez n’importe quelle sortie JSON effect() dans la base de données à l’aide de commitInstance() pour terminer le workflow prospect-espèces.
| Nom | Type | Description |
|---|---|---|
| sourceJSON | Objet | JSON contenant les détails de l’entité source. Remarque : Utilisez pour LeadtoCashCore : createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams) récupérer le JSON source d’une entité. |
| targetJSON | Objet | JSON contenant les détails de l’entité cible. |
| additionalParams | Objet | Facultatif. Paramètres supplémentaires à utiliser. |
| additionalParams.is_future_state | Booléen | Facultatif. Utilisez cette option pour prendre en charge les cas d’utilisation de reconfiguration. Valeurs acceptées :
Valeur par défaut : false |
| Type | Description |
|---|---|
| Objet JSON | Changement qui s’est produit et qui a été appliqué à partir de l’entité source vers l’entité cible Objets JSON dans chacun des en-têtes de l’entité prospect-espèce. Type de données : objet |
| _glide_action | Indique le changement qui s’est produit au niveau de l’élément entre le JSON source et le JSON cible. Valeurs possibles (sensibles à la casse) :
Type de données : chaîne |
| _records_count | Détails des nouveaux enregistrements insérés pour chaque table. Type de données : objet |
| _records_count.nom_table | Nom de la table dans laquelle les nouveaux enregistrements sont insérés. Type de données : objet |
| _records_count.nomtable.insertion | Nombre de nouveaux enregistrements insérés dans la table. Type de données : nombre |
| _source_object | Objet JSON source auquel les changements ont été appliqués. La structure de l’objet peut varier d’une entité à l’autre. Type de données : objet |
| _source_object.sys_id | Sys_id de l’enregistrement de l’entité source qui a été mis à jour. Type de données : chaîne |
| _source_object.table | Emplacement dans la table de l’enregistrement d’entité source qui a été mis à jour. Cette valeur peut varier d’une entité à l’autre. Type de données : chaîne |
| lineItems._glide_action | Action de changement qui s’est produite sur l’élément de ligne. Valeurs possibles :
Type de données : chaîne |
| lineItems._source_object | Détails de l’enregistrement d’entité source auquel l'_glide_action a été appliqué. Cet objet peut varier d’une entité à l’autre. Type de données : objet |
| lineItems._source_object.sys_id | Sys_id de l’enregistrement de l’entité source qui a été mis à jour. Type de données : chaîne |
| lineItems._source_object.table | Emplacement dans la table de l’enregistrement d’entité source qui a été mis à jour. Cette valeur peut varier d’une entité à l’autre. Type de données : chaîne |
| lineItems._state | État de l’entité. Type de données : objet |
| lineItems._state.valeur | État actuel de l’entité. Valeurs possibles :
Type de données : chaîne |
| lineItems.attributes | Attributs de l’élément de ligne. Par exemple, le nom et la valeur de l’attribut. Peut contenir des champs variés en fonction de l’entité. Type de données : objet |
| élémentsligne.attributs.<attribute_name> | Nom de l’attribut d’élément de ligne. Par exemple, le nom d’un compte ou d’un contact. Peut contenir différents champs de l’entité. Type de données : objet |
| élémentsligne.attributs.<attribute_name>.valeur | Valeur de l’attribut d’élément de ligne. Type de données : chaîne |
| lineItems.attributes.account | Informations sur le compte associé à l’attribut d’élément. Type de données : objet |
| lineItems.attributes.account.value | Sys_id du compte associé à l’attribut d’élément de ligne. Type de données : chaîne |
| lineItems.attributes.short_description | Brève description de l’attribut d’élément de ligne. Type de données : chaîne |
| lineItems.characteristics | Liste des caractéristiques associées à l’élément de ligne. Les caractéristiques peuvent varier d’une entité à l’autre. Type de données : tableau d’objets |
| lineItems.characteristics._glide_action | Action de changement qui s’est produite sur l’élément de ligne. Valeurs possibles :
Type de données : chaîne |
| ÉlémentsLigne.Caractéristiques.Attributs | Un ou plusieurs objets contenant des informations sur les attributs associés à l’enregistrement de caractéristique. Par exemple, cet objet peut contenir des références à l’sys_id de l’enregistrement des attributs, des enregistrements de caractéristiques associés, des comptes ou des contacts, des enregistrements d’options de caractéristiques ou des informations sur les produits vendus. Type de données : objet |
| élémentsligne.caractéristiques.attributs.<attribute_type> | Type d’attribut. Cette valeur peut contenir différentes valeurs en fonction des enregistrements ou des fonctionnalités associés à la caractéristique. Type de données : objet |
| lineItems.characteristics.attributes.<attribute_type>.value | Valeur de l’attribut d’élément de ligne. Type de données : chaîne |
| Élémentsline.Caractéristiques.Attributs.<field_name> | Nom d’attribut de l’enregistrement de caractéristique associé à l’élément de ligne. Type de données : objet |
| Élémentsligne.Caractéristiques.Attributs.<field_name>.Valeur | Valeur de l’attribut appartenant à l’enregistrement caractéristique d’une entité. Type de données : chaîne |
| lineItems.characteristics.sys_id | Sys_id de l’enregistrement de caractéristique associé. Type de données : objet |
| lineItems.characteristics.sys_id.valeur | Sys_id de l’enregistrement de caractéristique associé. La table mise à jour peut varier d’une entité à l’autre. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| lineItems.characteristics.table | Nom de la table contenant l’enregistrement de caractéristique. Type de données : chaîne |
| Élémentsligne.ÉlémentsLigne | Éléments de ligne enfants d’un élément de ligne parent. Cet objet a le même format que le lineItems paramètre. Type de données : tableau d’objets |
| lineItems.sys_id | Sys_id de l’enregistrement de l’élément associé. Type de données : objet |
| lineItems.sys_id.valeur | Sys_id d’un enregistrement d’élément associé. La table mise à jour peut varier d’une entité à l’autre, comme Commande ou Spécification. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| lineItems.table | Nom de la table qui contient l’enregistrement d’élément associé à l’entité prospect-espèce. Type de données : chaîne |
| sys_id | Sys_id de l’entité. Type de données : chaîne |
| Table | Nom de la table dans laquelle se trouve l’entité. Type de données : chaîne |
//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.
Sortie :
{
"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(objet targetJSON, objet additionalParams)
Valide le JSON d’une entité prospect-espèces donnée dans l’instance, renvoie un message d’état avec des informations mises à jour et, par conséquent, met à jour la table d’entité principale prospect-espèces.
| Nom | Type | Description |
|---|---|---|
| targetJSON | Objet | Objet JSON contenant le « glide_action » d’une entité cible à valider. Vous pouvez passer la sortie de la méthode effect() ici. Remarque : « glide_action » identifie l’action de changement qui s’est produite entre le JSON source et le JSON cible d’une entité prospect-espèces. |
| additionalParams | Objet | Facultatif. Paramètres supplémentaires à utiliser. |
| additionalParams.useNumberGenerator | Booléen | Facultatif. Marqueur indiquant s’il faut générer des sys_numbers en bloc. Valeurs valides :
Valeur par défaut : false |
| Type | Description |
|---|---|
| Objet JSON | Détails sur l’enregistrement d’entité cible. Type de données : objet |
| Objet de données | Objet JSON contenant des données détaillées sur les opérations de validation effectuées à chaque niveau. Type de données : objet |
| dataObject._commitObjectInfo | État de validation et sys_id si le changement d’élément de ligne est une action INSERTION. Type de données : objet |
| dataObject._commitObjectInfo.statut | État de l’opération de validation effectuée sur l’entité particulière. Valeurs possibles :
Type de données : chaîne |
| dataObject._commitObjectInfo.sys_id | Sys_id de l’enregistrement inséré. La méthode ne renvoie ce paramètre que si la dataObject._glide_action valeur est INSERT. La table mise à jour peut varier d’une entité à l’autre. Par exemple, Ordre [sn_ind_tmt_orm_order].Type de données : chaîne |
| dataObject._glide_action | Action de changement qui s’est produite sur l’élément de ligne. Valeurs possibles :
Type de données : chaîne |
| dataObject._source_object | Objet JSON source auquel les changements ont été appliqués. La structure de l’objet peut varier d’une entité à l’autre. Type de données : objet |
| dataObject._source_object.sys_id | Sys_id de l’enregistrement d’entité source auquel le _glide_action a été appliqué. La table mise à jour peut varier d’une entité à l’autre. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| dataObject._source_object.table | Nom de la table qui contient l’enregistrement d’entité source auquel le _glide_action a été appliqué. Cela peut varier d’une entité à l’autre. Type de données : chaîne |
| dataObject.lineItems | Détails de l’élément de ligne de l’enregistrement d’entité. Par exemple, les éléments de ligne de commande ou les éléments de ligne de devis. Type de données : tableau d’objets |
| dataObject.lineItems._action | Action de changement appliquée à l’élément de ligne du JSON source. Valeurs possibles :
Type de données : chaîne |
| dataObject.lineItems._commitObjectInfo | Renvoyé si le changement d’élément de ligne est une action INSERTION . Contient l’état de validation et les sys_id de l’objet.Type de données : objet |
| dataObject.lineItems._commitObjectInfo.statut | État de l’opération de validation effectuée sur l’entité particulière. Valeurs possibles :
Type de données : chaîne |
| dataObject.lineItems._commitObjectInfo.sys_id | Sys_id de l’enregistrement inséré. La table mise à jour peut varier d’une entité à l’autre. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| dataObject.lineItems._glide_action | Action de changement qui s’est produite sur l’élément de ligne. Valeurs possibles :
Type de données : chaîne |
| dataObject.lineItems._source_object | Détails de l’enregistrement d’entité source auquel l'_glide_action a été appliqué. Cet objet peut varier d’une entité à l’autre. Type de données : objet |
| dataObject.lineItems._source_object.sys_id | Sys_id de l’enregistrement d’entité source auquel le _glide_action a été appliqué. Type de données : chaîne |
| dataObject.lineItems._source_object.table | Nom de la table de l’enregistrement d’entité source auquel le _glide_action a été appliqué. Type de données : chaîne |
| dataObject.lineItems._state | État de l’objet. Valeurs possibles :
Type de données : chaîne |
| dataObject.lineItems.attributes | Attributs de l’élément de ligne. Par exemple, le nom et la valeur de l’attribut. Peut contenir des champs variés en fonction de l’entité. Type de données : objet |
| dataObject.lineItems.attributes.<attribute_name> | Nom de l’attribut d’élément de ligne. Par exemple, le nom d’un compte ou d’un contact. Peut contenir différents champs de l’entité. Type de données : objet |
| dataObject.lineItems.attributes.<attribute_name>.value | Valeur de l’attribut d’élément de ligne. Type de données : chaîne |
| dataObject.lineItems.characteristics | Liste des caractéristiques associées à l’élément de ligne. Les caractéristiques peuvent varier d’une entité à l’autre. Type de données : tableau d’objets |
| dataObject.lineItems.characteristics._glide_action | Action de changement qui s’est produite sur l’élément de ligne. Valeurs possibles :
Type de données : chaîne |
| dataObject.lineItems.characteristics.attributes | Un ou plusieurs objets contenant des informations sur les attributs associés à l’enregistrement de caractéristique. Par exemple, cet objet peut contenir des références à l’sys_id de l’enregistrement des attributs, des enregistrements de caractéristiques associés, des comptes ou des contacts, des enregistrements d’options de caractéristiques ou des informations sur les produits vendus. Type de données : objet |
| dataObject.lineItems.characteristics.attributes.<attribute_type> | Nom de l’attribut de caractéristique. Peut contenir différents champs de l’entité. Type de données : objet |
| dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name> | Nom de l’attribut de caractéristique. Type de données : objet |
| dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name>.value | Valeur de l’attribut d’élément de ligne. Type de données : chaîne |
| dataObject.lineItems[0].characteristics.sys_id | Sys_id de l’enregistrement de caractéristique associé. Type de données : objet |
| dataObject.lineItems[0].characteristics.sys_id.value | Sys_id de l’enregistrement de caractéristique associé. La table mise à jour peut varier d’une entité à l’autre. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| dataObject.lineItems[0].characteristics.table | Nom de la table contenant l’enregistrement de caractéristique. Type de données : chaîne |
| dataObject.lineItems[0].lineItems | Éléments de ligne enfants d’un élément de ligne parent. Cet objet a le même format que le lineItems paramètre. Type de données : tableau d’objets |
| dataObject.lineItems[0].sys_id | Sys_id de l’enregistrement de l’élément associé. Type de données : objet |
| dataObject.lineItems[0].sys_id.value | Sys_id d’un enregistrement d’élément associé. La table mise à jour peut varier d’une entité à l’autre, comme Commande ou Spécification. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| dataObject.lineItems[0].table | Nom de la table qui contient l’enregistrement d’élément associé à l’entité prospect-espèce. Type de données : chaîne |
| dataObject.sys_id | Sys_id de l’enregistrement de l’élément de ligne associé. La table mise à jour peut varier d’une entité à l’autre. Par exemple, Ordre [sn_ind_tmt_orm_order]. Type de données : chaîne |
| dataObject.table | Nom de la table qui contient l’enregistrement de l’entité prospect-espèces. Type de données : chaîne |
| displayMessage | Message affiché à l’utilisateur dans l’interface utilisateur. Le message d’affichage est identique à la valeur de chaîne message . Type de données : chaîne |
| erreur | Message d’erreur décrivant l’échec de la méthode commitInstance . Si la demande aboutit, ce paramètre renvoie une chaîne vide. Type de données : chaîne |
| ID d’en-tête | Sys_id de l’enregistrement d’entité cible créé ou mis à jour par la méthode commitInstance . Stocké dans : la table connexe en fonction du type d’entité, comme le produit vendu, la commande, et autres. Type de données : chaîne |
| message | Message décrivant les scénarios de réussite, d’erreur ou de partially_success. Ce message est identique à la valeur de la displayMessage chaîne et peut être utilisé par d’autres appels d’application à l’API. Type de données : chaîne |
| ID racine | Liste séparée par des virgules des sys_ids des enregistrements d’entité cible insérés, mis à jour ou supprimés par la méthode commitInstance . Stocké dans : la table connexe en fonction du type d’entité, comme le produit vendu, la commande, et autres. Type de données : tableau de chaînes |
| état | Message d’état confirmant la réussite de la validation. Valeurs possibles :
Type de données : chaîne |
L’exemple suivant montre comment utiliser chaque méthode LeadtoCashCore pour récupérer, appliquer et valider les détails d’une entité source-cible. Dans cet exemple, la méthode commitInstance() est utilisée pour valider le JSON modifié pour une entité prospect-espèces sur l’instance.
//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));
Sortie :
{
"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"
]
}