LeadtoCashCore - Inclus dans le périmètre

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 31 minutes de lecture
  • L’include de script LeadtoCashCore fournit des méthodes permettant d’orchestrer un flux de travail prospect-espèces dans le cycle de vie Lead to Cash Core.

    Le module d’extension Lead to Cash Core (com.snd.l2c.core) doit être activé pour que le script includes LeadtoCashCore soit disponible dans une instance. Cet include de script appartient à l’espace de noms sn_l2c_core et nécessite le rôle administrateur.

    Dans un workflow lead to cash, vous mappez une entité source à une entité cible. Une entité est définie comme une collection de tables. Le mappage source-cible vous permet de transformer la structure ou le contenu de l’entité source pour qu’il 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és disponible dans la fonctionnalité Lead to Cash. Consultez Sales and Order Management workflows pour plus d'informations.

    Pour compléter un flux de travail à l’aide de l’include de script LeadtoCash , vous transmettez les 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 :

    1. LeadtoCashCore : createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams, Object context) - Récupère les données d’une entité donnée. Par exemple, les informations relatives aux commandes des clients, 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 de tels 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.

    2. LeadtoCashCore : delta(Object sourceJSON, Object dirtyJSON, Object additionalParams, Object context) - Compare deux entrées JSON et identifie les changements qui se sont produits entre elles. Par exemple, lorsque quelque chose est ajouté, supprimé ou modifié dans une entité.
    3. LeadtoCashCore - effet(Object sourceJSON, Object targetJSON, Object additionalParams, Object context) - Transforme la cible JSON source en objet cible.
    4. LeadtoCashCore : commitInstance(Object targetJSON, Object additionalParams) - Valide la transformation effectuée dans le script include effect() dans la base de données.
    Remarque :
    Si nécessaire, delta() peut être ignoré dans ce workflow. Cependant, l’appel de ces méthodes dans le désordre entraîne l’échec du workflow (par exemple, lors de l’appel de commitInstance() puis de effect()).

    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 source et cible. Pour plus d'informations, consultez LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet). 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 pour votre cas d’utilisation.

    Exemple de script de workflow Lead to Cash 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 Lead to Cash.

    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));
    Dans notre exemple, un client a acheté un produit vendu mais demande maintenant une modification sur le produit vendu existant. Les modifications requises sont fournies sous la forme d’un dirtyJSON. Pour appliquer ces modifications, nous appelons les méthodes Lead to Cash Core dans l’ordre suivant :
    1. Le premier appel obtient les informations sur le produit vendu existant à l’aide de la méthode createInstance().
    2. Nous comparons ensuite ce JSON source avec le JSON erroné à l’aide de la méthode delta(), qui renvoie un JSON delta.
    3. Le delta() JSON est ensuite transformé en JSON d’ordre de type à l’aide de la méthode effect().
    4. Le JSON de commande est validé dans la base de données à l’aide de la méthode commitInstance().

    LeadtoCashCore : createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams, Object context)

    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 flux de travail Lead to Cash telles que delta(),effect() et commitInstance().

    Remarque :
    L’include de script LeadtoCashCore nécessite que vous appeliez d’abord la méthode d’utilitaire de script PrimitiveUtil() avec la méthode d’utilitaire pour déclencher l’implémentation avant d’appeler LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet)createInstance() dans votre script. Pour chaque flux, n’obtenez le service qu’une seule fois et utilisez le même service pour toutes les méthodes LeadtoCashCore .

    Définissez le paramètre context.isMultiSelect booléen getPrimitivesEPService() sur vrai pour permettre à createInstance() de transmettre plusieurs headerID ou lineIDs séparés par des virgules à la fois. Sinon, vous ne pouvez transmettre qu’une seule pièce d’identité à la fois. Reportez-vous à la rubrique LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet) pour en savoir plus. Le cas d’utilisation d’un seul headerID avec plusieurs lineID est pris en charge sans définir « context.isMultiSelect » sur vrai.

    Tableau 1. Paramètres
    Nom Type Description
    headerSysIDs Chaîne En-tête sys_id(s) d’une entité à partir de laquelle récupérer les données. Requis si vous ne fournissez pas le lineSysIDs paramètre. Passez null si vous ne transmettez aucune sys_ids d’en-tête.

    Pour désigner un ou plusieurs sys_ids d’en-tête dans votre script, définissez context.isMultiSelect = true dans la méthode utilitaire getPrimitivesEPService(). Pour en savoir plus, reportez-vous à la table Paramètres de la .LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet)

    Remarque :
    Au moins un headerSysIDlineSysIDs ou paramètre est requis.
    lineSysID 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 context.isMultiSelect = true dans la méthode utilitaire getPrimitivesEPService(). Pour en savoir plus, reportez-vous à la table Paramètres de la .LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet)

    Remarque :
    Au moins un headerSysIDlineSysIDs ou paramètre est requis. En cas de passage de plusieurs lineSysIDs, tous les enregistrements doivent appartenir au même headerSysID.
    isTarget (en anglais seulement) Booléen Facultatif. Marqueur qui détermine s’il faut extraire les données de l’entité cible.
    Valeurs valides :
    • vrai : extraire les données de l’entité cible.
    • faux : ne pas extraire les données de l’entité cible.

    Valeur par défaut : false

    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 :
    • vrai : ignorer le renvoi des informations sur les éléments de ligne pour l’entité.
    • false : renvoyer les informations sur les éléments de ligne pour l’entité.

    Valeur par défaut : false

    contexte Objet Facultatif. Permet d’appeler plusieurs instances à l’aide du context.isMultiSelect paramètre.
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect Booléen Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance.
    Valeurs valides :
    • true : active le passage de plusieurs entités en entrée. Si la valeur est « vrai », vous pouvez transmettre plusieurs éléments de ligne dans une liste séparée par des virgules.
    • false : n’active pas le passage de plusieurs entités en entrée. Une seule entrée peut être transmise dans le script d’API.

    Valeur par défaut : false

    Tableau 2. Renvoie
    Type Description
    Objet JSON JSON contenant les détails de l’enregistrement d’entité.

    Type de données : objet

    {
      "items": {Object},
      "lineItems": [Array]
    }
    Éléments Contient un tableau des objets sélectionnés lorsque la valeur est définie sur context.isMultiSelect vrai.

    Type de données : objet

    "items": {
        "attributes": {Object},
        "sys_id": {Object},
        "table": "String"
        },
    items._state Objet représentant l’état de l’objet.

    Type de données : objet

    "_state": {  
     "value": "String" 
    } 
    items._state.valeur État actuel de l’objet.
    Valeurs possibles :
    • active : l’objet entité est dans un état actif.
    • inactif : l’objet entité n’est pas dans un état actif.

    Type de données : chaîne

    Éléments.Attributs Attributs de l’enregistrement d’en-tête.

    Type de données : objet

    "attributes": {
       "name": {
         "value": "String"
       }
    Éléments.Attributs.Compte Informations sur le compte associé à l’attribut d’élément.
    "account": { 
      "value": "String" 
    }
    éléments.attributs.compte.valeur Sys_id du compte associé à l’attribut d’élément.

    Type de données : chaîne

    items.attributes.name Nom de l’attribut d’entité de l’enregistrement d’en-tête. Par exemple, le compte sur contact. Peut contenir différents champs de l’entité.

    Type de données : objet

    "name": { 
      "value": "String" 
    }
    éléments.attributs.nom.valeur Nom de l’attribut d’élément appartenant à l’enregistrement d’en-tête d’une entité.

    Type de données : chaîne

    items.sys_id Objet contenant sys_id informations sur l’enregistrement d’élément associé.

    Type de données : objet

    "sys_id": {
      "value": "String"
    }
    items.sys_id.valeur Sys_id d’un enregistrement d’élément associé.

    Type de données : chaîne

    Éléments.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éments de ligne Objet JSON qui contient les détails de l’élément de ligne de l’enregistrement d’entité.
    Remarque :
    Utilisez cet objet dans le paramètre request sourceJSON de la LeadtoCashCore : delta(Object sourceJSON, Object dirtyJSON, Object additionalParams, Object context) méthode.

    Éléments de ligne d’une 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": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "sys_id": {Object},
        "table": "String"
      }
    ]
    lineItems.attributes Attributs de l’enregistrement de l’élément de ligne. Les attributs peuvent varier d’une entité à l’autre.
    "attributes": {
      "account": {Object},
      "name": {Object}
    }

    Type de données : objet

    lineItems.attributes.account Informations sur le compte associé à l’attribut d’élément de ligne.
    "account": { 
      "value": "String" 
    }
    lineItems.attributes.account.value Sys_id du compte associé à l’attribut d’élément de ligne.

    Type de données : chaîne

    lineItems.attributes.name Informations sur le nom de l’attribut d’élément de ligne.
    "name": { 
      "value": "String" 
    }

    Type de données : objet

    lineItems.attributes.name.value Nom de l’attribut.

    Type de données : chaîne

    lineItems.characteristics Liste des caractéristiques associées à l’élément. Les caractéristiques peuvent varier d’une entité à l’autre.

    Type de données : tableau d’objets

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    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

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    ÉlémentsLigne.Caractéristiques.Attributs Un ou plusieurs objets qui contiennent 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 d’attributs, à des enregistrements de caractéristiques associés, à des comptes ou à des contacts, à des enregistrements d’options de caractéristiques ou à des informations sur le produit vendu.

    Type de données : objet

    "attributes": {
      "<attribute_type>": {Object}
    }
    ÉlémentsLigne.Caractéristiques.Attributs.<attribute_type>.valeur Généralement le 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

    lineItems.characteristics.sys_id Objet contenant l’sys_id de l’enregistrement de caractéristique associé.

    Type de données : objet

    "sys_id": { 
      "value": "String" 
     }
    lineItems.characteristics.sys_id.valeur Sys_id de l’enregistrement de caractéristique associé.

    Type de données : chaîne

    ÉlémentsLigne.Caractéristiques.Table Nom de la table qui contient l’enregistrement de la caractéristique de l’entité prospect-espèce.

    Type de données : chaîne

    lineItems.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 : objet

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    lineItems.sys_id Objet contenant sys_id informations sur l’enregistrement de l’élément de ligne associé.

    Type de données : objet

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.valeur Sys_id d’un enregistrement d’élément de ligne associé.

    Type de données : chaîne

    lineItems.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’exemple de script ci-dessous invoque la méthode createInstance() pour charger les données d’un produit vendu, toute 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" 
                }, 
                "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" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    } 

    Sélection multiple

    Le script suivant montre comment isMultiSelect invoquer 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": [] 
            } 
          ] 
        } 
      ] 
    }

    LeadtoCashCore : commitInstance(Object targetJSON, Object additionalParams)

    Valide le JSON d’une entité prospect-espèces donnée à l’instance, renvoie un message d’état avec des informations mises à jour et met ainsi à jour la table Entité principale prospect-espèce.

    Remarque :
    L’include de script LeadtoCashCore nécessite que vous appeliez d’abord le point d’extension scripté PrimitiveUtil() avec la méthode utilitaire pour déclencher l’implémentation avant d’appeler LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet)commitInstance() dans votre script. Pour chaque flux, n’obtenez le service qu’une seule fois et utilisez le même service pour toutes les méthodes LeadtoCashCore .
    Tableau 3. Paramètres
    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èce.
    targetJSON Objet Facultatif. Paramètres supplémentaires à utiliser.
    Remarque :
    Des paramètres supplémentaires pour commitInstance() ne sont pas disponibles avant une version ultérieure.
    Tableau 4. Renvoie
    Type Description
    Objet JSON Objet JSON contenant des détails sur l’enregistrement de l’entité cible.
    { 
      "error": "String",
      "headerID": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }

    Type de données : objet

    erreur Message d’erreur qui décrit l’échec de la méthode commitInstance .

    Type de données : chaîne

    headerID Sys_id de l’enregistrement d’entité cible créé ou mis à jour par la méthode commitInstance .

    Type de données : chaîne

    rootLineIDs Sys_ids des enregistrements d’entité cible insérés, mis à jour ou supprimés par la méthode commitInstance .

    Type de données : tableau de chaînes

    statut Message d’état avec une valeur de « réussite » ou « échec ».

    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-to-target.

    //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.

    Sortie :

    { 
      "status": "success", 
      "error": "", 
      "headerID": "cc9b3db665e73510f877d71ec56bf7ed", 
      "rootLineIDs": [ 
        "0c9b3db665e73510f877d71ec56bf7f1" 
      ] 
    }

    LeadtoCashCore : delta(Object sourceJSON, Object dirtyJSON, Object additionalParams, Object context)

    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, suppressions ou modifications.

    Remarque :
    L’include de script LeadtoCashCore nécessite que vous appeliez d’abord le point d’extension scripté PrimitiveUtil() avec la méthode utilitaire LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet) pour déclencher l’implémentation avant d’appeler delta() dans votre script. Pour chaque flux, n’obtenez le service qu’une seule fois et utilisez le même service pour toutes les méthodes LeadtoCashCore .
    Tableau 5. Paramètres
    Nom Type Description
    source JSON Objet Objet JSON de l’entité prospect en espèces source.
    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.
    {  
    “<table_name>”: [<attribute_name1>, attribute_name2>] 
    }
    additionalParams.delta_ignore_attributes.<table_name> Chaîne Nom de la table et de ses attributs associés à ignorer.

    Par exemple :

    {  
    “sn_install_base_sold_product”: [“state”,”unit_price”]  
    }
    additionalParams.loadDisplayValue Booléen Facultatif. Marqueur indiquant s’il faut charger la valeur d’affichage pour chaque attribut.
    Valeurs valides :
    • true : active le chargement de la valeur d’affichage d’un attribut.
    • false : n’active pas le chargement de la valeur d’affichage d’un attribut.

    Valeur par défaut : false

    contexte Objet Facultatif. Permet d’appeler plusieurs instances à l’aide du context.isMultiSelect paramètre.
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect Booléen Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance.
    Valeurs valides :
    • true : active le passage de plusieurs entités en entrée. Si la valeur est « vrai », vous pouvez transmettre plusieurs éléments de ligne dans une liste séparée par des virgules.
    • false : n’active pas le passage de plusieurs entités en entrée. Une seule entrée peut être transmise dans le script d’API.

    Valeur par défaut : false

    Tableau 6. Renvoie
    Type Description
    Objet JSON Objet contenant les détails de l’enregistrement d’entité avec tous les changements qui se sont produits entre sourceJSON et dirtyJSON.

    Type de données : objet

    { 
      "lineItems": [ 
        { 
          "table": "String", 
          "sys_id": {Object}, 
          "attributes": {Object}
          }, 
          "lineItems": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object} 
         ],
     "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ], 
     "_action": "String" 
        } 
      ] 
    } 
    _action Action de changement appliquée à l’objet JSON source.

    Valeurs possibles :

    • add : les informations ont été ajoutées au JSON source.
    • changement : les informations ont été mises à jour dans le JSON source.
    • disconnect : les informations ont été déconnectées du JSON source.
    • no-change : aucun changement ne s’est produit sur le JSON source.

    Type de données : chaîne

    Caractéristiques Caractéristiques de l’enregistrement d’entité d’en-tête. Peut contenir des champs variables en fonction de l’entité.

    Type de données : tableau d’objets

    "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ]
    Caractéristiques.Table Nom de la table de l’enregistrement de la caractéristique.

    Type de données : chaîne

    characteristics.sys_id Sys_id’objet de l’enregistrement de caractéristique.

    Type de données : objet

    "sys_id": { 
                "value": "String" 
              }
    characteristics.sys_id.valeur Sys_id de l’enregistrement de la caractéristique.

    Type de données : chaîne

    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 variables en fonction de l’entité.

    Type de données : objet

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    caractéristiques.attributs.<attribute_name> Nom de l’attribut associé à la caractéristique. Par exemple, le nom et la valeur de l’attribut. Peut contenir des champs variables en fonction de l’entité.

    Type de données : objet

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    caractéristiques.attributs.<attribute_name>.valeur Valeur de l’attribut spécifié.

    Type de données : chaîne

    characteristics._action Action appliquée à la caractéristique associée à l’enregistrement d’entité d’en-tête.

    Valeurs possibles :

    • add : des informations ont été ajoutées à la caractéristique.
    • changement : les informations ont été mises à jour sur la caractéristique.
    • disconnect : l’information a été déconnectée de la caractéristique.
    • aucun changement : aucun changement ne s’est produit au niveau de la caractéristique.
    Éléments de ligne Éléments de ligne d’une 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": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    lineItems._action Action de changement appliquée à l’élément de ligne du JSON source.

    Valeurs possibles :

    • add : les informations ont été ajoutées au JSON source.
    • changement : les informations ont été mises à jour dans le JSON source.
    • disconnect : les informations ont été déconnectées du JSON source.
    • no-change : aucun changement ne s’est produit sur le JSON source.
    lineItems.attributes Attributs de l’élément de ligne. Par exemple, le nom et la valeur de l’attribut. Peut contenir des champs variables en fonction de l’entité.

    Type de données : objet

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    lineitems.attributes.<attribute_name> Objet contenant le 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

    "attributes": { 
      "name": {Object}
    lineitems.attributes.<attribute_name>.value Valeur de nom de l’attribut d’élément de ligne.

    Type de données : objet

    "attributes": { 
      "name": { 
      "value": "String" 
    }
    lineItems.attributes.account Informations sur le compte associé à l’attribut d’élément.

    Type de données : objet

    "account": { 
      "value": "String" 
    }
    lineItems.attributes.account.value Sys_id du compte associé à 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

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    lineitems.characteristics._action Action appliquée à l’enregistrement de caractéristique appartenant à l’élément de ligne.

    Valeurs possibles :

    • add : des informations ont été ajoutées à la caractéristique.
    • changement : les informations ont été mises à jour sur la caractéristique.
    • disconnect : l’information a été déconnectée de la caractéristique.
    • aucun changement : aucun changement ne s’est produit au niveau de la caractéristique.
    ÉlémentsLigne.Caractéristiques.Attributs Un ou plusieurs objets qui contiennent 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 ou des fonctionnalités associées à la caractéristique.

    Par exemple, cet objet peut contenir des références à l’sys_id de l’enregistrement d’attributs, à des enregistrements de caractéristiques associés, à des comptes ou à des contacts, à des enregistrements d’options de caractéristiques ou à des informations sur le produit vendu.

    Type de données : objet

    "attributes": {
      "<attribute_type>": {Object}
    }
    lineitems.characteristics.attributes.<field_name> Nom d’attribut de l’enregistrement de caractéristique associé à l’élément de ligne.

    Type de données : objet

    "<field_name>": { 
                  "value": "String" 
                }
    éléments de ligne.caractéristiques.attributs.<field_name>.valeur Valeur de l’attribut appartenant à l’enregistrement de caractéristique d’une entité.

    Type de données : chaîne

    lineItems.characteristics.sys_id Objet contenant l’sys_id de l’enregistrement de caractéristique associé.

    Type de données : objet

    "sys_id": { 
      "value": "String" 
     }
    lineItems.characteristics.sys_id.valeur Sys_id valeur de l’enregistrement de caractéristique associé.

    Type de données : chaîne

    ÉlémentsLigne.Caractéristiques.Table Nom de la table qui contient l’enregistrement de la caractéristique de l’entité prospect-espèce.

    Type de données : chaîne

    lineItems.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 : objet

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    lineItems.sys_id Objet contenant l’sys_id de l’enregistrement d’élément associé.

    Type de données : objet

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.valeur Sys_id valeur d’un enregistrement d’élément associé.

    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 campagne 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, n’obtenez le service qu’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 campagne 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(Object sourceJSON, Object targetJSON, Object additionalParams, Object context)

    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 toute sortie JSON effect() dans la base de données à l’aide de commitInstance() pour terminer le workflow lead to cash.

    Remarque :
    L’include de script LeadtoCashCore nécessite que vous appeliez d’abord le point d’extension scripté PrimitiveUtil() avec la LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet) méthode utilitaire pour déclencher l’implémentation avant d’appeler effect() dans votre script. Pour chaque flux, n’obtenez le service qu’une seule fois et utilisez le même service pour toutes les méthodes LeadtoCashCore .
    Tableau 7. Paramètres
    Nom Type Description
    source JSON Objet JSON contenant les détails de l’entité source.
    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 :
    • true : fournit des clés de variables de contexte au lieu de noms de champs de dictionnaire. Cela vous permet de fournir tous les attributs à partir de l’entité cible au lieu de mapper les attributs de la source à la cible.
    • false : fournit des noms de champs de dictionnaire.

    Valeur par défaut : false

    contexte Objet Facultatif. Permet d’appeler plusieurs instances à l’aide du context.isMultiSelect paramètre.
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect Booléen Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance.
    Valeurs valides :
    • true : active le passage de plusieurs entités en entrée. Si la valeur est « vrai », vous pouvez transmettre plusieurs éléments de ligne dans une liste séparée par des virgules.
    • false : n’active pas le passage de plusieurs entités en entrée. Une seule entrée peut être transmise dans le script d’API.

    Valeur par défaut : false

    Tableau 8. Renvoie
    Type Description
    Objet JSON Changement qui s’est produit et a été appliqué à partir de la source aux objets JSON d’entité cible à chacun des niveaux d’objet, d’en-tête, de lignes enfants et de caractéristiques de l’entité prospect-espèce.

    Type de données : objet

    { 
      "sys_id": "String", 
      "table": "String", 
      "_glide_action": "String", 
      "_source_object": {Object}, 
      "lineItems": [ 
        { 
          "sys_id": "String", 
          "table": "String", 
          "attributes": { 
            "account": {Object}, 
            "short_description": {Object} 
          }, 
          "_glide_action": "String", 
          "_source_object": { 
            "sys_id": "String", 
            "table": "String" 
          }, 
          "lineItems": [Array], 
          "characteristics": [ 
            { 
              "sys_id": "String", 
              "table": "String", 
              "attributes": {Object}
                "<attribue_name>": {Object}
                  "value": "String" 
              "_glide_action": "INSERT", 
              "_source_object": {Object} 
            } 
          ] 
        }, 
      "state": {Object}
       ]
    }
    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 :
    • DELETE : des informations ont été supprimées entre les structures JSON source et cible.
    • INSERT : Des informations ont été ajoutées entre les structures JSON source et cible.
    • NO_CHANGE : aucun changement ne s’est produit entre les structures JSON source et cible.
    • MISE À JOUR : Les informations ont été modifiées entre les structures source et JSON.
    Éléments de ligne Éléments de ligne d’une 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": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    lineItems._glide_action Action de changement qui s’est produite sur l’élément de ligne.
    Valeurs _glide_action possibles :
    • DELETE : des informations ont été supprimées entre les structures JSON source et cible.
    • INSERT : Des informations ont été ajoutées entre les structures JSON source et cible.
    • NO_CHANGE : aucun changement ne s’est produit entre les structures JSON source et cible.
    • MISE À JOUR : Les informations ont été modifiées entre les structures source et JSON.
    lineItems._source_object Objet JSON de l’enregistrement d’entité source auquel le glide_action a été appliqué. Cet objet peut varier d’une entité à l’autre.

    Type de données : objet

    lineItems._state Objet représentant l’état de l’objet.

    Type de données : objet

    "_state": {  
     "value": "String" 
    } 
    lineItems._state.valeur État actuel de l’objet.
    Valeurs possibles :
    • active : l’objet entité est dans un état actif.
    • inactif : l’objet entité n’est pas dans un état actif.

    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 variables en fonction de l’entité.

    Type de données : objet

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    lineitems.attributes.<attribute_name> Objet contenant le 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

    "attributes": { 
      "name": {Object}
    lineitems.attributes.<attribute_name>.value Valeur de nom de l’attribut d’élément de ligne.

    Type de données : objet

    "attributes": { 
      "name": { 
      "value": "String" 
    }
    lineItems.attributes.account Informations sur le compte associé à l’attribut d’élément.

    Type de données : objet

    "account": { 
      "value": "String" 
    }
    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 de l’é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

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    ÉlémentsLigne.Caractéristiques.Attributs Un ou plusieurs objets qui contiennent 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 ou des fonctionnalités associées à la caractéristique.

    Par exemple, cet objet peut contenir des références à l’sys_id de l’enregistrement d’attributs, à des enregistrements de caractéristiques associés, à des comptes ou à des contacts, à des enregistrements d’options de caractéristiques ou à des informations sur le produit vendu.

    Type de données : objet

    "attributes": {
      "<attribute_type>": {Object}
    }
    ÉlémentsLigne.Caractéristiques.Attributs.<attribute_type>.valeur Généralement le 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

    lineitems.characteristics.attributes.<field_name> Nom d’attribut de l’enregistrement de caractéristique associé à l’élément de ligne.

    Type de données : objet

    "<field_name>": { 
                  "value": "String" 
                }
    éléments de ligne.caractéristiques.attributs.<field_name>.valeur Valeur de l’attribut appartenant à l’enregistrement de caractéristique d’une entité.

    Type de données : chaîne

    lineItems.characteristics.sys_id Objet contenant l’sys_id de l’enregistrement de caractéristique associé.

    Type de données : objet

    "sys_id": { 
      "value": "String" 
     }
    lineItems.characteristics.sys_id.valeur Sys_id valeur de l’enregistrement de caractéristique associé.

    Type de données : chaîne

    ÉlémentsLigne.Caractéristiques.Table Nom de la table qui contient l’enregistrement de la caractéristique de l’entité prospect-espèce.

    Type de données : chaîne

    lineItems.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 : objet

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    lineItems.sys_id Objet contenant l’sys_id de l’enregistrement d’élément associé.

    Type de données : objet

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.valeur Sys_id valeur d’un enregistrement d’élément associé.

    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

    _source_objectObjet 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

    sys_id Sys_id de l’entité.

    Type de données : chaîne

    table Nom de la table dans laquelle l’entité est trouvée.

    Type de données : chaîne

    L’exemple suivant montre comment appliquer la logique de transformation à l’aide de la sortie de la méthode delta() :
    Remarque :
    Le même script s’applique aux cas d’utilisation à sélection unique et à sélection multiple, car seul le format JSON source change et la sortie reste la même pour les deux. Pour les cas d’utilisation à sélection multiple, un en-tête unique est créé avec tous les éléments de ligne ajoutés au même en-tête.
    //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"
    }
       ],
    }

    LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID, contexte d’objet)

    Déclenche la méthode 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 utilitaire getPrimitivesEPService() pour déclencher l’implémentation.

    Tableau 9. Paramètres
    Nom Type Description
    sourceToTargetConfigID Chaîne ID de configuration de mappage pour le mappage de la source à la cible. Situé dans la table Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping].
    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.loadDisplayValue Booléen Facultatif. Marqueur indiquant s’il faut charger la valeur d’affichage pour chaque attribut.
    Valeurs valides :
    • true : active le chargement de la valeur d’affichage d’un attribut.
    • false : n’active pas le chargement de la valeur d’affichage d’un attribut.

    Valeur par défaut : false

    context.isMultiSelect Booléen Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance.
    Valeurs valides :
    • true : active le passage de plusieurs entités en entrée. Si la valeur est « vrai », vous pouvez transmettre plusieurs éléments de ligne dans une liste séparée par des virgules.
    • false : n’active pas le passage de plusieurs entités en entrée. Une seule entrée peut être transmise dans le script d’API.

    Valeur par défaut : false

    Tableau 10. Renvoie
    Type Description
    Aucun

    L’exemple suivant invoque PrimitiveUtil() et choisit 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)