LeadtoCashCore - Champ d’application

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 19 minutes de lecture
  • Créez des workflows dans le cycle de vie principal Lead to Cash.

    Les script includes LeadtoCashCore vous permettent d’orchestrer par programmation un flux de travail lead-to-cash. Dans ce workflow, 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 l’adapter à la structure ou au contenu requis dans l’entité cible. La fonctionnalité fournie par cette API 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.

    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. Ces API appartiennent à l’espace de noms sn_l2c_core et nécessitent le rôle admin.

    Pour effectuer un workflow d’API Lead to Cash, vous transmettez les paramètres de retour d’un script include LeadtoCashCore au suivant. En règle générale, vous appelez les script includes dans l’ordre suivant :

    1. LeadtoCashCore : createInstance(String headerSysID, String lineSysIDs, Boolean isTarget, Object additionalParams)- Récupère les données d’une entité donnée. Par exemple, les informations relatives aux commandes, y compris les éléments de ligne.
    2. LeadtoCashCore - delta(Object sourceJSON, Object dirtyJSON, Object additionalParams)- Compare deux entrées JSON et identifie tous les changements qui se sont produits entre elles. Par exemple, lorsqu’un élément est ajouté, supprimé ou modifié dans une entité.
    3. LeadtoCashCore - effect(Object sourceJSON, Object targetJSON, Object additionalParams)- 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. Toutefois, l’appel de ces API dans le désordre entraîne l’échec du workflow (par exemple, lors de l’appel de commitInstance(), puis de effect()).

    Point d'extension

    Chacun de ces script includes utilise le point d’extension scripté PrimitiveUtil , qui fournit des méthodes pour obtenir le service de point d’extension et appelle les script includes en fonction de leurs paramètres disponibles. Vous devez d’abord fournir ce point d’extension avec la méthode getPrimitivesEPService(), qui spécifie la table à partir de laquelle obtenir les informations source et cible (voir LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID) pour plus d’informations). Une fois ces deux paramètres fournis dans le script, vous pouvez appeler l’un des script includes 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 script includes Lead to Cash Core disponibles soit documenté plus en détail, vous pouvez vous référer à l’exemple suivant pour voir comment ces scripts sont utilisés ensemble pour produire un flux de travail lead to cash.

    var util = new sn_l2c_core.PrimitiveUtil(); 
     
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order'); 
     
    //CREATE INSTANCE
    var SPInstance = service.createInstance(null, '06670ba3c3adbd501caee74bb0013166'); 
    gs.info("SPInstance: "+JSON.stringify(SPInstance)); 
     
    // DELTA 
    // construct the dirtyJSON as required 
    var deltaOutput = service.delta(SPInstance, dirtyJSON);/ 
    gs.info("deltaOutput: "+JSON.stringify(deltaOutput)); 
     
    // EFFECT 
    var effectOutput = service.effect(deltaOutput); 
    gs.info("effectOutput: " + JSON.stringify(effectOutput)); 
     
    // COMMIT INSTANCE
    var commitOutput = service.commitInstance(effectOutput); 
    gs.info("commitOutput: " + JSON.stringify(commitOutput)); 
    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 dirtySJON. Pour appliquer ces modifications, nous avons appelé les includes de script Lead to Cash Core dans l’ordre suivant :
    1. Le premier appel permet d’obtenir les informations sur le produit vendu existant à l’aide de createInstance().
    2. Nous comparons ensuite ce sourceJSON avec le dirtyJSON à l’aide de delta(), qui renvoie un deltaJSON.
    3. Le deltaJSON est ensuite transformé en JSON de type Order à l’aide de effect().
    4. Le JSON de commande est validé dans la base de données à l’aide de commitInstance() et met à jour la table Entité principale prospect-espèce.

    LeadtoCashCore : getPrimitivesEPService(String sourceToTargetConfigID)

    Déclenche le point d’extension PrimitivUtil.

    Pour utiliser l’une des méthodes disponibles dans les script includes de l’API LeadtoCash Core, 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 1. Paramètres
    Nom Type Description
    sourceToTargetConfigID Chaîne ID de configuration du mappage pour le mappage de la source à la cible. Situé dans la table Mappage d’entité prospect-encaissement [sn_l2c_core_entity_mapping].
    Tableau 2. Renvoie
    Type Description
    Néant

    L’exemple suivant appelle le point d’extension PrimitiveUtil() et sélectionne une implémentation basée sur sourceToTargetConfigID d’un flux L2C, l’ID de configuration de mappage dans la table sn_l2c_core_entity_mapping.

    //Utility to invoke createInstance API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order’)

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

    Renvoie les données d’une entité Lead to Cash donnée 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.

    Le JSON de sortie de createInstance() peut être utilisé dans les API suivantes du flux de travail Lead to Cash Core comme delta(),effect() et commitInstance().

    L’API LeadtoCashCore vous demande d’appeler d’abord le point d’extension scripté PrimitiveUtil() avec la méthode utilitaire getPrimitivesEPService() pour déclencher l’implémentation avant d’appeler createInstance() dans votre script.

    Tableau 3. Paramètres
    Nom Type Description
    en-têteSysID Chaîne Le sys_id d’en-tête d’une entité à partir de laquelle récupérer les données de l’entité. Obligatoire si vous ne fournissez pas le lineIDfichier .
    Remarque :
    Au moins un paramètre headerSysID ou LineSysIDs est requis dans la demande.
    lineSysID (en anglais seulement) Chaîne L’sys_id d’élément de ligne d’une entité à partir de laquelle récupérer les données de l’entité. Obligatoire si vous ne fournissez pas le headerIDfichier .
    Remarque :
    Au moins un paramètre headerSysID ou LineSysIDs est requis dans la demande.
    isTarget (en anglais seulement) Booléen Facultatif. Marqueur qui détermine s’il faut extraire les données de l’entité cible.
    Valeurs valides :
    • true : récupère les données de l’entité cible.
    • false : n’extrait pas les données de l’entité cible.

    Valeur par défaut : false

    additionalParams Objet Facultatif. Spécifie les paramètres supplémentaires à utiliser.
    "additionalParams": { 
        “skipLines”:”Boolean” 
    } 
    additionalParams.skipLines Booléen

    Facultatif. Marqueur indiquant s’il faut extraire les éléments de ligne d’une entité.

    Valeurs valides :
    • Vrai : ignore les éléments de ligne d’une entité.
    • false : n’ignore pas les éléments de ligne d’une entité.

    Valeur par défaut : false

    Tableau 4. Renvoie
    Type Description
    Objet JSON JSON contenant les détails de l’enregistrement de l’entité.
    Remarque :
    Ce JSON est utilisé dans le paramètre de demande sourceJSON de LeadtoCashCore - delta(Object sourceJSON, Object dirtyJSON, Object additionalParams).

    Type de données : objet

    { 
      "table": "string", 
      "sys_id": { 
        "value": "string" 
      }, 
      "attributes": { 
        "contact": { 
          "value": "string" 
        }, 
        "account": { 
          "value": "string" 
        } 
      }, 
      "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "string" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": {}, 
              "lineItems": [], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    } 
    table Nom de table de l’enregistrement d’en-tête d’une entité Lead to Cash.

    Type de données : chaîne

    sys_id Sys_id de l’enregistrement d’en-tête.
    "sys_id": { 
                "value": "string" 
              }

    Type de données : objet

    sys_id.value La valeur sys_id de l’enregistrement d’en-tête.

    Type de données : chaîne

    attributs Attributs de l’enregistrement d’en-tête.
    "attributes": { 
            "name": { 
              "value": "string" 
            }

    Type de données : objet

    attributs.<field_name> Attributs de l’enregistrement d’en-tête. Par exemple, le compte ou le contact, etc. Peut contenir différents champs de l’entité.
    
          "attributes": { 
            "name": { 
              "value": "string" 
            }

    Type de données : objet

    attributs.<field_name>.valeur Valeur de l’attribut appartenant à l’enregistrement d’en-tête d’une entité.

    Type de données : chaîne

    éléments de ligne Éléments de ligne d’une entité. Par exemple, les éléments de ligne de commande, les éléments de ligne de devis, etc.
    "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "string" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }

    Type de données : tableau

    lineItems.table Nom de table de l’élément de ligne d’une entité Lead to Cash.

    Type de données : chaîne

    lineItems.sys_id Sys_id de l’enregistrement d’élément de ligne.
    "sys_id": { 
                "value": "string" 
              }, 

    Type de données : objet

    lineItems.sys_id.valeur La valeur sys_id de l’enregistrement d’élément de ligne.

    Type de données : chaîne

    lineItems.attributes Attributs de l’enregistrement d’élément de ligne.
    "attributes": { 
            "name": { 
              "value": "string" 
            }
    }

    Type de données : objet

    lineItems.attributes.<field_name> Attributs de l’enregistrement d’élément de ligne. Par exemple, le compte ou le contact, etc. Peut contenir différents champs en fonction de l’entité.
    "name": { 
              "value": "string" 
            }

    Type de données : objet

    lineItems.attributes.<field_name>.value Valeur de l’attribut appartenant à l’élément de ligne d’une entité.

    Type de données : chaîne

    Éléments de ligne.Éléments de ligne Éléments de ligne enfants d’un élément de ligne parent.
    "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }
    ]

    Type de données : objet

    lineItems.characteristics Caractéristiques d’un élément de ligne.
    "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                } 
              } 
            } 
          ] 
        } 
      ] 

    Type de données : tableau

    Caractéristiques.table Nom de table de l’enregistrement de caractéristique d’une entité Lead to Cash.

    Type de données : chaîne

    characteristics.sys_id Sys_id d’un enregistrement de caractéristique.
    "sys_id": { 
                "value": "string" 
              }

    Type de données : objet

    characteristics.sys_id.valeur Valeur sys_id d’un enregistrement de caractéristique.

    Type de données : chaîne

    caractéristiques.attributs Attributs de l’enregistrement de caractéristique.
    "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }

    Type de données : objet

    caractéristiques.attributs.<field_name> Attributs de l’enregistrement de caractéristique. Par exemple, le nom ou la valeur caractéristique, etc. Peut contenir différentes caractéristiques en fonction de l’entité.
    { 
                  "value": "string" 
                }

    Type de données : objet

    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

    L’exemple de script ci-dessous invoque l’API createInstance pour charger les données d’un produit vendu, de sa hiérarchie entière et de 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 APIs of the flow such as Delta, Effect and Commit Instance

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

    LeadtoCashCore - delta(Object sourceJSON, Object dirtyJSON, Object additionalParams)

    Compare les JSON source et les JSON sources modifiés d’une entité Lead to Cash et renvoie un JSON détaillant tous les changements apportés au sourceJSON, tels que les ajouts, suppressions ou modifications.

    L’API LeadtoCashCore vous demande d’appeler d’abord le point d’extension scripté PrimitiveUtil() avec la méthode utilitaire getPrimitivesEPService() pour déclencher l’implémentation avant d’appeler delta() dans votre script.

    Tableau 5. Paramètres
    Nom Type Description
    source JSON Objet JSON source de l’entité prospect-encaissement.
    dirtyJSON Objet JSON source modifié de l’entité prospect-encaissement.
    additionalParams Objet Facultatif. Spécifie les paramètres supplémentaires à utiliser. Aucun paramètre supplémentaire n’est disponible pour le moment, mais le sera à l’avenir.
    Tableau 6. Renvoie
    Type Description
    Objet JSON JSON contenant les détails de l’enregistrement de l’entité.

    Type de données : objet

    { 
      "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "number" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "number" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "string" 
                }, 
                "account": { 
                  "value": "string" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "string", 
                  "sys_id": { 
                    "value": "number" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "string" 
                    }, 
                    "account": { 
                      "value": "string" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "string" 
                } 
              ], 
              "characteristics": [], 
              "_action": "string" 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                }, 
                "action": { 
                  "value": "string" 
                } 
              }, 
              "_action": "string" 
            } 
          ], 
          "_action": "string" 
        } 
      ] 
    } 
    _Action Action appliquée au JSON source. Valeurs possibles :
    • add- information a été ajoutée à la source JSON.
    • changement : les informations ont été mises à jour dans le JSON source.
    • disconnect : les informations ont été déconnectées de la source JSON.
    • no-change : aucun changement ne s’est produit sur le JSON source.
    table Nom de table de l’enregistrement d’en-tête d’une entité Lead to Cash.

    Type de données : chaîne

    sys_id Sys_id de l’enregistrement d’en-tête.
    "sys_id": { 
                "value": "string" 
              }

    Type de données : objet

    sys_id.value La valeur sys_id de l’enregistrement d’en-tête.

    Type de données : chaîne

    attributs Attributs de l’enregistrement d’en-tête.
    "attributes": { 
            "name": { 
              "value": "string" 
            }

    Type de données : objet

    attributs.<field_name> Attributs de l’enregistrement d’en-tête. Par exemple, le compte ou le contact, etc. Peut contenir différents champs de l’entité.
    
          "attributes": { 
            "name": { 
              "value": "string" 
            }

    Type de données : objet

    attributs.<field_name>.valeur Valeur de l’attribut appartenant à l’enregistrement d’en-tête d’une entité.

    Type de données : chaîne

    éléments de ligne Éléments de ligne d’une entité. Par exemple, les éléments de ligne de commande, les éléments de ligne de devis, etc.
    "lineItems": [ 
                { 
                  "table": "string", 
                  "sys_id": { 
                    "value": "number" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "string" 
                    }, 
                    "account": { 
                      "value": "string" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "string" 
                } 
              ], 
              "characteristics": [], 
              "_action": "string" 
            } 
          ], 

    Type de données : tableau

    lineItems._action Action appliquée à l’élément de ligne dans le JSON source. Valeurs possibles :
    • Ajouter : des informations ont été ajoutées à l’élément de ligne.
    • Changement : les informations ont été mises à jour dans l’élément de ligne.
    • Déconnexion : les informations ont été déconnectées de l’élément de ligne.
    • Aucun changement : aucun changement ne s’est produit sur l’élément de ligne.
    lineItems.table Nom de table de l’élément de ligne d’une entité Lead to Cash.

    Type de données : chaîne

    lineItems.sys_id Sys_id de l’enregistrement d’élément de ligne.
    "sys_id": { 
                "value": "string" 
              }, 

    Type de données : objet

    lineItems.sys_id.valeur La valeur sys_id de l’enregistrement d’élément de ligne.

    Type de données : chaîne

    lineItems.attributes Attributs de l’enregistrement d’élément de ligne.
    "attributes": { 
            "name": { 
              "value": "string" 
            }
    }

    Type de données : objet

    lineItems.attributes.<field_name> Attributs de l’enregistrement d’élément de ligne. Par exemple, le compte ou le contact, etc. Peut contenir différents champs en fonction de l’entité.
    "name": { 
              "value": "string" 
            }

    Type de données : objet

    lineItems.attributes.<field_name>.value Valeur de l’attribut appartenant à l’élément de ligne d’une entité.

    Type de données : chaîne

    Éléments de ligne.Éléments de ligne Éléments de ligne enfants d’un élément de ligne parent.
    "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }
    ]

    Type de données : objet

    lineItems.characteristics Caractéristiques d’un élément de ligne.
    "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                }, 
                "action": { 
                  "value": "string" 
                } 
              }, 
              "_action": "string" 
            } 
          ], 

    Type de données : tableau

    characteristics._action Action appliquée à la caractéristique. Valeurs possibles :
    • Des informations supplémentaires ont été ajoutées à la caractéristique.
    • Changement : les informations ont été mises à jour sur la caractéristique.
    • Déconnexion : 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.
    Caractéristiques.table Nom de table de l’enregistrement de caractéristique d’une entité Lead to Cash.

    Type de données : chaîne

    characteristics.sys_id Sys_id d’un enregistrement de caractéristique.
    "sys_id": { 
                "value": "string" 
              }

    Type de données : objet

    characteristics.sys_id.valeur Valeur sys_id d’un enregistrement de caractéristique.

    Type de données : chaîne

    caractéristiques.attributs Attributs de l’enregistrement de caractéristique.
    "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }

    Type de données : objet

    caractéristiques.attributs.<field_name> Attributs de l’enregistrement de caractéristique. Par exemple, le nom ou la valeur caractéristique, etc. Peut contenir différentes caractéristiques en fonction de l’entité.
    { 
                  "value": "string" 
                }

    Type de données : objet

    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

    L’exemple suivant montre la formation de l’API delta() en appelant d’abord PrimitivUtil 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" 
        } 
      ] 
    } 

    LeadtoCashCore - effect(Object sourceJSON, Object targetJSON, Object additionalParams)

    Transforme et applique la structure JSON source d’une entité Lead to Cash donnée sur le targetJSON de l’autre entité Lead to Cash. Le JSON renvoyé peut ensuite être validé dans la base de données d’une entité Lead to Cash à l’aide du script include commitInstance().

    Le JSON de sortie de delta() peut être utilisé dans la requête effect(). Ensuite, n’importe quelle sortie JSON de effect() peut être validée dans la base de données à l’aide de commitInstance() pour terminer le flux de travail Lead to Cash.

    L’API LeadtoCashCore vous oblige à appeler d’abord le point d’extension scripté PrimitiveUtil() avec la méthode utilitaire getPrimitivesEPService() pour déclencher l’implémentation avant d’appeler effect() dans votre script.

    Tableau 7. Paramètres
    Nom Type Description
    source JSON Objet JSON avec les détails de l’entité source.
    targetJSON Objet JSON contenant les détails de l’entité cible.
    additionalParams Objet Facultatif. Spécifie les paramètres supplémentaires à utiliser. Aucun paramètre supplémentaire n’est disponible pour le moment, mais le sera à l’avenir.
    Tableau 8. Renvoie
    Type Description
    Objet JSON Objet JSON contenant le changement qui s’est produit et qui a été appliqué à partir de la source aux objets JSON de l’entité cible à chaque objet, en-tête/lignes/lignes enfants/caractéristiques de l’entité prospect-encaissement. Valeurs possibles :
    • insert : des informations ont été ajoutées entre les structures JSON source et cible.
    • mise à jour : les informations ont été modifiées entre les structures source et JSON.
    • delete : les informations ont été supprimées entre les structures JSON source et cible.

    L’exemple suivant montre comment appliquer une logique de transformation à l’aide de la sortie de l’API delta() :

    //Utility to invoke effect API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sp_order_macd'); 
     
    //Invoke effect API with required params 
    var effectOutput = service.effect(deltaOutput, null); 
     
    //Print the returned JSON 
    gs.info("effectOutput: " + JSON.stringify(effectOutput)); 
     
    //The returned JSON can be used for subsequent APIs of the flow ‘Commit Instance’.

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

    LeadtoCashCore : commitInstance(Object targetJSON, Object additionalParams)

    Valide le JSON d’une entité prospect-espèces donnée dans la base de données et renvoie un message d’état avec des informations mises à jour. Cette validation applique automatiquement les modifications à la table Entité principale prospect-espèces.

    L’API LeadtoCashCore vous demande d’appeler d’abord le point d’extension scripté PrimitiveUtil() avec la méthode utilitaire getPrimitivesEPService() pour déclencher l’implémentation avant d’appeler commitInstance() dans votre script.

    Tableau 9. Paramètres
    Nom Type Description
    targetJSON Objet Objet JSON contenant l'« glide_action » d’une entité cible à valider. La sortie de l’API effect() peut être passée ici.
    Remarque :
    « glide_action » identifie l’action de changement qui s’est produite entre le JSON source et le JSON cible d’une entité Lead to Cash. Pour plus d’informations, reportez-vous à la section « Retours » de la section LeadtoCashCore - effect(Object sourceJSON, Object targetJSON, Object additionalParams).
    additionalParams Objet Facultatif. Spécifie les paramètres supplémentaires à utiliser. Aucun paramètre supplémentaire n’est disponible pour le moment, mais le sera à l’avenir.
    Tableau 10. Renvoie
    Type Description
    Objet JSON JSON contenant des détails sur l’enregistrement de l’entité cible.
    { 
      "status": "string", 
      "error": "string", 
      "headerID": "string", 
      "rootLineIDs": [ 
        "string" 
      ] 
    }

    Type de données : objet

    statut Message d’état avec la valeur « réussite/échec » de l’API commitInstance .

    Type de données : chaîne

    erreur Message d’erreur en cas d’échec de l’API commitInstance .

    Type de données : chaîne

    en-tête ID d’en-tête de l’enregistrement d’entité cible créé ou mis à jour avec l’API commitInstance .

    Type de données : chaîne

    rootLineIDs ID de la ligne racine des enregistrements d’entité cible qui ont été insérés, mis à jour ou supprimés avec l’API commitInstance .

    Type de données : tableau de chaînes

    L’exemple suivant montre comment utiliser chaque API Lead to Cash Core 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" 
      ] 
    }