LeadtoCashCore – Umfang

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 30 Minuten Lesedauer
  • Die LeadtoCashCore Die Skripteinbindung bietet Methoden zum Orchestrieren eines Lead-to-Cash-Workflows im Lead-to-Cash Core-Lebenszyklus.

    Das Lead-to-Cash-Core-Plugin (com.snd.l2c.Core) muss für aktiviert sein LeadtoCashCore Skripteinbindungen, die in einer Instanz verfügbar sein sollen. Diese Skripteinbindung gehört zum Namespace sn_l2c_Core und erfordert die Administratorrolle.

    In einem Lead-to-Cash-Workflow ordnen Sie eine Quellentität einer Zielentität zu. Eine Entität ist als eine Sammlung von Tabellen definiert. Mit der Quell-zu-Ziel-Zuordnung können Sie die Struktur oder den Inhalt der Quell-Entität so umwandeln, dass sie an die in der Zielentität benötigte Struktur oder den Inhalt angepasst wird. Die von dieser Skripteinbindung bereitgestellte Funktionalität stellt die Entitätszuordnungsfunktion dar, die in der Lead-to-Cash-Funktion verfügbar ist. Weitere Informationen finden Sie unter Lead to Cash Core.

    Dient zum Abschließen eines Workflows mit Leadto Cash Skripteinbindung übergeben Sie Rückgabeparameter von einer Methode an die nächste. Normalerweise rufen Sie diese Methoden in der folgenden Reihenfolge auf:

    1. LeadtoCashCore – createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams) – Ruft die Daten einer bestimmten Entität ab. Zum Beispiel Informationen im Zusammenhang mit Kundenaufträgen, einschließlich Einzelposten und zugehörigen Daten.

      Verwenden Sie contextParameter zum Deklardieren einer oder mehrerer Header- oder Zeilen-IDs im Skript. Für solche Anwendungsfälle mit Mehrfachauswahl enthält die Ausgabe-JSON ein Schlüsselelement-Array, in dem jeder Eintrag eine einzelne Entität darstellt.

    2. LeadtoCashCore – Delta(Object sourceJSON, Object dirtyJSON, Object additionalParams) – Vergleicht zwei JSON-Eingaben und identifiziert alle Änderungen, die zwischen ihnen aufgetreten sind. Beispiel: Wenn etwas in einer Entität hinzugefügt, gelöscht oder geändert wird.
    3. LeadtoCashCore – Effect(Object sourceJSON, Object targetJSON, Object additionalParams) – Wandelt das Quell-JSON-Ziel in ein Zielobjekt um.
    4. LeadtoCashCore – CommitInstance(Object targetJSON, Object additionalParams)– Commits der in vorgenommenen Transformation Effekt() Skripteinbindung in die Datenbank.
    Hinweis:
    Falls erforderlich, delta() Kann in diesem Workflow übersprungen werden. Das Aufrufen dieser Methoden in der Reihenfolge führt jedoch zu einem fehlgeschlagenen Workflow (z. B. beim Aufruf) CommitInstance() Und dann Effekt() ).

    Voraussetzungen

    Jede dieser Methoden ist mit einem Erweiterungspunkt „sn_l2c_Core.LeadToCashServiceEP“ gebündelt. PrimitiveUtil() Ist ein Dienstprogramm, das Methoden zum Abrufen des Erweiterungspunktservice bereitstellt und die Skripteinbindungen gemäß den verfügbaren Parametern aufruft. Sie müssen zuerst angeben PrimitiveUtil() Mit GetPrimitivesEPService() Methode, die die Tabelle angibt, aus der Quell- und Zielinformationen abgerufen werden sollen. Weitere Informationen finden Sie unter LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext). Einmal PrimitiveUtil() Und GetPrimitivesEPService() Werden im Skript bereitgestellt, können Sie dann einen beliebigen der aufrufen CreateInstance() , delta() , Effekt() , Oder CommitInstance() Skripteinbindungen nach Bedarf für Ihren Anwendungsfall.

    Beispiel für Lead-to-Cash Core-Workflow-Skript

    Obwohl alle verfügbaren Lead-to-Cash-Core-Skripteinbindungen einzeln dokumentiert sind, können Sie das folgende Beispiel verwenden, um zu sehen, wie Sie diese Methoden gemeinsam verwenden können, um einen Lead-to-Cash-Workflow zu erstellen.

    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));
    In unserem Beispiel hat ein Kunde ein verkauftes Produkt gekauft, fordert jetzt jedoch eine Änderung des vorhandenen verkauften Produkts an. Die erforderlichen Änderungen werden in Form eines dirtyJSON bereitgestellt. Um diese Änderungen anzuwenden, rufen wir die Lead-to-Cash Core-Methoden in der folgenden Reihenfolge auf:
    1. Der erste Anruf ruft die vorhandenen Informationen zum verkauften Produkt mit ab CreateInstance() Methode.
    2. Wir vergleichen dann diese Quell-JSON mit der geänderten JSON mithilfe von delta() Methode, die eine Delta-JSON zurückgibt.
    3. Die delta()JSON wird dann mit in eine JSON-Datei vom Typ „Reihenfolge“ umgewandelt Effekt() Methode.
    4. Die Auftrags-JSON wird mit in die Datenbank übernommen CommitInstance() Methode.

    LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext)

    Löst aus PrimitiveUtil() Dienstprogrammmethode.

    Um eine der verfügbaren Methoden in zu verwenden LeadtoCashCore Skripteinbindung: Sie müssen zuerst immer den geskripteten Erweiterungspunkt aufrufen PrimitiveUtil() In Ihrem Skript mit GetPrimitivesEPService() Dienstprogrammmethode zum Auslösen der Implementierung.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    context Objekt Optional. Zusätzliche Parameteroptionen zum Anzeigen von Attributwerten und zum Aufrufen mehrerer Instanzen gleichzeitig.
    "context": {
      "isMultiSelect": "Boolean"
      "loadDisplayValue": "Boolean"
    }
    Kontext.isMultiSelect Boolean Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe übergeben werden sollen, um die Instanz zu erstellen.
    Gültige Werte:
    • Wahr: Aktiviert die Übergabe mehrerer Entitäten als Eingabe. Bei „wahr“ können Sie mehrere Einzelposten in einer kommagetrennten Liste übergeben.
    • Falsch: Aktiviert nicht die Übergabe mehrerer Entitäten als Eingabe. Im API-Skript darf nur eine Eingabe übergeben werden.

    Standardwert: false

    Kontext.loadDisplayWert Boolean Optional. Kennzeichnung, die angibt, ob der Anzeigewert für jedes Attribut geladen werden soll.
    Gültige Werte:
    • Wahr: Aktiviert das Laden des Anzeigewerts eines Attributs.
    • Falsch: Aktiviert das Laden des Anzeigewerts eines Attributs nicht.

    Standardwert: false

    SourceToTargetConfigID Zeichenfolge Zuordnungskonfigurations-ID für die Quell-zu-Ziel-Zuordnung.

    Tabelle: Lead-to-Cash-Entitätszuordnung [sn_l2c_Core_Entity_Mapping]

    Tabelle : 2. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Beispiel wird aufgerufen PrimitiveUtil() Und wählt eine Implementierung basierend auf sn_l2c_Cust_Flows_sp_to_order aus, einer Zuordnungskonfigurations-ID in der Tabelle „Lead-to-Cash-Entitätszuordnung“ [sn_l2c_Core_Entity_Mapping].

    //Utility to invoke createInstance API  
    var util = new sn_l2c_core.PrimitiveUtil(); 
    var context = {"isMultiSelect": true}; // Set the context.isMultiSelect parameter as true to enable multi-select use cases
    
    //Invokes the extension point and specifies an implementation based on sourceToTargetConfigID of a L2C flow.  
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order’, context)

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

    Gibt die Daten einer oder mehrerer angegebener Entitäten mit einem JSON-Objekt zurück, das verschiedene Details wie Header, Zeilen, untergeordnete Zeilen, Merkmale und ihre Attribute enthält.

    Verwenden Sie die Ausgabe-JSON von CreateInstance() Methode in nachfolgenden Methoden des Lead-to-Cash-Core-Workflows, z. B. delta() , Effekt() , Und CommitInstance() .

    Hinweis:
    Die LeadtoCashCore Für die Skripteinbindung müssen Sie zuerst die Skriptdienstprogrammmethode aufrufen PrimitiveUtil() Mit LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext) Dienstprogrammmethode zum Auslösen der Implementierung vor dem Aufruf CreateInstance() In Ihrem Skript. Rufen Sie den Service pro Flow nur einmal ab, und verwenden Sie denselben Service für alle LeadtoCashCore Methoden.

    Legen Sie fest GetPrimitivesEPService() boolescher Parameter context.isMultiSelectAuf „wahr“ zum Aktivieren CreateInstance() Dient zum Übergeben mehrerer, kommagetrennter HeaderIDs oder lineIDs gleichzeitig. Andernfalls können Sie jeweils nur eine ID übergeben. Unter LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext) finden Sie weitere Details. Der Anwendungsfall „einzelne HeaderID“ mit mehreren lineIDs wird ohne Einstellung unterstützt context.isMultiSelectAuf „wahr“.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    additionalParams Objekt Optional. Zusätzliche zu verwendende Parameter.
    Zusätzliche Parameter.SkipLines Boolean Optional. Kennzeichnung, die angibt, ob Einzelposten für die angegebene Entität abgerufen werden sollen.
    Gültige Werte:
    • Wahr: Zurückgegebene Einzelposten-Informationen für die Entität werden übersprungen.
    • Falsch: Gibt Positionsinformationen für die Entität zurück.

    Standardwert: false

    HeaderSysIDs Zeichenfolge Header-sys_ID(s) einer Entität, aus der Daten abgerufen werden sollen. Erforderlich, wenn Sie nicht angeben lineSysIDsParameter. Bestanden Null Wenn Sie keine Header-sys_IDs übergeben.

    Legen Sie fest, um eine oder mehrere Header-sys_IDs in Ihrem Skript festzulegen Kontext.isMultiSelect = wahr In GetPrimitivesEPService() Dienstprogrammmethode. Weitere Informationen finden Sie in der Tabelle „Parameter“ in LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext).

    Hinweis:
    Mindestens eine headerSysIDOder lineSysIDsParameter ist erforderlich.
    IsTarget Boolean Optional. Kennzeichnung, die bestimmt, ob Zielentitätsdaten abgerufen werden sollen.
    Gültige Werte:
    • Wahr: Daten der Zielentität abrufen.
    • Falsch: Daten der Zielentität nicht abrufen.

    Standardwert: false

    LineSysIDs Zeichenfolge Sys_ID(s) des Einzelelements einer Entität, aus der Entitätsdaten abgerufen werden sollen. Erforderlich, wenn Sie nicht angeben headerSysIDsUnd ob die Entitätsstruktur mit Einzelposten wie „verkauftes Produkt“ beginnt.

    Legen Sie fest, um eine oder mehrere sys_IDs von Einzelposten in Ihrem Skript festzulegen Kontext.isMultiSelect = wahr In GetPrimitivesEPService() Dienstprogrammmethode. Weitere Informationen finden Sie in der Tabelle „Parameter“ in LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext).

    Hinweis:
    Mindestens eine headerSysIDOder lineSysIDsParameter ist erforderlich. Wenn mehrere übergeben werden lineSysIDs, Alle Datensätze müssen zum selben gehören headerSysID.
    Tabelle : 4. Rückgaben
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt mit Details zum Entitätsdatensatz.

    Datentyp: Array von Objekten

    {
    "items": [
      {
      "attributes": {Object},
      "sys_id": {Object},
      "table": "String",
      "lineItems": [
        {
         "attributes": {Object},
         "sys_id": {Object},
         "table": "String",
         "characteristics": [Array],
         "lineItems": [Array]
         }
        ],
      "characteristics": [Array],
      "_state": "String"
      }
     ]
    }
    _Status Aktivitätsstatus der Entität.

    Mögliche Werte:

    • Aktiv: Die Entität ist aktiv.
    • Inaktiv: Die Entität ist inaktiv.

    Standard: Aktiv

    Datentyp: Zeichenfolge

    Merkmale Liste der Entitätsmerkmale. Merkmale können zwischen Entitäten variieren.

    Datentyp: Array von Objekten

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    Merkmale.Attribute Mindestens ein Objekt, das Informationen zu Attributen enthält, die dem Merkmalsdatensatz zugeordnet sind. Der <attribute type> kann je nach Datensätzen/Funktionalität, die dem Merkmal zugeordnet sind, verschiedene Werte sein. Dieses Objekt kann beispielsweise Verweise auf die sys_ID des Attributdatensatzes, zugehörige Merkmalsdatensätze, Merkmalsoptionsdatensätze oder Informationen zu verkauften Produkten enthalten.

    Datentyp: Objekt

    "attributes": {
      "<attribute_type>": {Object}
    }
    Merkmale.Attribute.<attribute_type> Informationen zum Schlüsselnamen des Elementattributs.
    "<key_name>": { 
      "value": "String" 
    }

    Datentyp: Objekt

    Merkmale.Attribute.<attribute_type>.Wert Normalerweise die sys_ID des zugehörigen Attributdatensatzes, kann jedoch eine beliebige aussagekräftige Textzeichenfolge sein, die den zugehörigen Attributtyp beschreibt.

    Datentyp: Zeichenfolge

    Merkmale.sys_ID Objekt, das die sys_ID des zugehörigen Merkmalsdatensatzes enthält.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    Merkmale.sys_ID.Wert SYS_ID des zugehörigen Merkmalsdatensatzes.

    Datentyp: Zeichenfolge

    Merkmale.Tabelle Name der Tabelle, die den Merkmalsdatensatz der Lead-to-Cash-Entität enthält.

    Datentyp: Zeichenfolge

    items Enthält ein Array ausgewählter Objekte, wenn context.isMultiSelectIst auf „wahr“ festgelegt.

    Datentyp: Array von Objekten

    "items": [
    { 
      "attributes": {Object}, 
      "sys_id": {Object}, 
      "table": "String",
      "lineItems": [Array]
     }, 
    ]
    Elemente.Attribute Attribute des Elementdatensatzes. Attribute können zwischen Entitäten variieren.
    "attributes": {
      "account": {Object},
      "name": {Object}
    }

    Datentyp: Objekt

    Elemente.Attribute.Account Informationen zum Account, der dem Elementattribut zugeordnet ist.
    "account": { 
      "value": "String" 
    }
    Elemente.Attribute.Account.Wert Attribute des Elements. Attribute können zwischen Entitäten variieren.
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    Datentyp: Objekt

    Elemente.Attribute.<key_name> Informationen zum Schlüsselnamen des Elementattributs.
    "<key_name>": { 
      "value": "String" 
    }

    Datentyp: Objekt

    Elemente.Attribute.<key_name>.Wert Wert des Schlüsselnamenattributs.

    Datentyp: Zeichenfolge

    Elements.sys_ID Objekt mit sys_ID-Informationen zum Entitätselement. Werte variieren zwischen Entitäten.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    Elements.sys_ID.Wert SYS_ID eines zugeordneten Elements.

    Datentyp: Zeichenfolge

    Elemente.Tabelle Name der Tabelle, die den Einzelposten-Datensatz enthält, der der Lead-to-Cash-Entität zugeordnet ist.

    Datentyp: Zeichenfolge

    Elemente.lineElemente JSON-Objekt, das die Einzelelementdetails des Entitätsdatensatzes enthält.

    Datentyp: Array von Objekten

    "lineItems": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": "String",
        "sys_id": {Object},
        "table": "String"
      }
    ]
    Items.lineItems._State Aktivitätsstatus der Einzelposten-Entität.

    Mögliche Werte:

    • Aktiv: Die Entität ist aktiv.
    • Inaktiv: Die Entität ist inaktiv.

    Standard: Aktiv

    Datentyp: Zeichenfolge

    Elemente.lineElemente.Attribute Attribute des Einzelposten-Datensatzes. Attribute können zwischen Entitäten variieren.
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    Datentyp: Objekt

    Elemente.lineElemente.Attribute.<key_name> Informationen zum Schlüsselnamen des Positionselementattributs.
    "<key_name>": { 
      "value": "String" 
    }

    Datentyp: Objekt

    Elemente.lineElemente.Attribute.<key_name>.Wert Wert des Schlüsselnamenattributs.

    Datentyp: Zeichenfolge

    Elemente.lineElemente.Attribute.Account Informationen über den Account, der dem Positionselementattribut zugeordnet ist.
    "account": { 
      "value": "String" 
    }
    Elemente.lineElemente.Attribute.Account.Wert SYS_ID des Accounts, der dem Positionselementattribut zugeordnet ist.

    Datentyp: Zeichenfolge

    items.lineItems.characteristics Liste der Merkmale, die der Position zugeordnet sind. Merkmale können zwischen Entitäten variieren.

    Datentyp: Array von Objekten

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    items.lineItems.characteristics.attributes Mindestens ein Objekt, das Informationen zu Attributen enthält, die dem Merkmalsdatensatz zugeordnet sind. Der <attribute type> kann je nach Datensätzen/Funktionalität, die dem Merkmal zugeordnet sind, verschiedene Werte sein. Dieses Objekt kann beispielsweise Verweise auf die sys_ID des Attributdatensatzes, zugehörige Merkmalsdatensätze, Merkmalsoptionsdatensätze oder Informationen zu verkauften Produkten enthalten.

    Datentyp: Objekt

    "attributes": {
      "<attribute_type>": {Object}
    }
    items.lineItems.characteristics.attributes.<attribute_type>.Wert Normalerweise die sys_ID des zugehörigen Attributdatensatzes, kann jedoch eine beliebige aussagekräftige Textzeichenfolge sein, die den zugehörigen Attributtyp beschreibt.

    Datentyp: Zeichenfolge

    items.lineItems.characteristics.sys_id Objekt, das die sys_ID des zugehörigen Merkmalsdatensatzes enthält.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    items.lineItems.characteristics.sys_id.value SYS_ID des zugehörigen Merkmalsdatensatzes.

    Datentyp: Zeichenfolge

    items.lineItems.characteristics.table Name der Tabelle, die den Merkmalsdatensatz der Lead-to-Cash-Entität enthält.

    Datentyp: Zeichenfolge

    Elemente.lineElemente.lineElemente Untergeordnete Einzelposten einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie lineItemsParameter.

    Datentyp: Objekt

    "lineItems": [
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": {Object},
        "sys_id": {Object},
        "table": "String"
      }
    ] 
    Elements.lineItems.sys_ID Objekt mit sys_ID-Informationen zum zugehörigen Einzelposten-Datensatz.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    Items.lineItems.sys_ID.Wert SYS_ID eines zugeordneten Positionselementdatensatzes.

    Datentyp: Zeichenfolge

    Elemente.lineElemente.Tabelle Name der Tabelle, die den Einzelposten-Datensatz enthält, der der Lead-to-Cash-Entität zugeordnet ist.

    Datentyp: Zeichenfolge

    Das Beispielskript unten ruft auf CreateInstance() Methode zum Laden der Daten eines verkauften Produkts, seiner gesamten Hierarchie und seiner Merkmale.

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

    Ausgabe:

    { 
      "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "9e0301e2ec873110f87727ef5883a23a" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Internet and OTT Bundle" 
                }, 
              "_state": "active",
              "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "8d669b6665ebf110f877d71ec56bf75c" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "8d669b6665ebf110f87d71ec56bf75c" 
                },
              "_state": "active", 
              "characteristic_value": { 
                  "value": "" 
                }, 
              "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
              "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
              "sold_product": { 
                  "value": "4e03cda2ec873110f87727ef5883a2cf" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    }

    Mehrfachauswahl

    Das folgende Skript demonstriert die Verwendung isMultiSelectZum Aufrufen von CreateInstance() Verwenden Sie die Methode, und laden Sie die Daten zweier verkaufter Produkte mit ihrer gesamten Hierarchie und ihren Eigenschaften.

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

    Antwort:

    {  
      "items": [ 
        { 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "4e03cda2ec873110f87727ef5883a2cf" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "9e0301e2ec873110f87727ef5883a23a" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ] 
            } 
          ] 
        }, 
        { 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "036a2349284d0210f877b68370fb2e93" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "4b6a2349284d0210f877b68370fb2e9c" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ], 
              "characteristics": [],
              "_state": "active" 
            } 
          ] 
        } 
      ] 
    }

    LeadtoCashCore – Delta(Object sourceJSON, Object dirtyJSON, Object additionalParams)

    Vergleicht die Quell- und geänderten Quell-JSON-Objekte einer Lead-to-Cash-Entität und gibt ein JSON-Objekt zurück, das alle an der Quell-JSON vorgenommenen Änderungen beschreibt, z. B. Hinzufügungen, Löschungen oder Änderungen.

    Hinweis:
    Die LeadtoCashCore Für die Skripteinbindung müssen Sie zuerst den geskripteten Erweiterungspunkt aufrufen PrimitiveUtil() Mit LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext) Dienstprogrammmethode zum Auslösen der Implementierung vor dem Aufruf delta() In Ihrem Skript. Rufen Sie den Service pro Flow nur einmal ab, und verwenden Sie denselben Service für alle LeadtoCashCore Methoden.
    Tabelle : 5. Parameter
    Name Typ Beschreibung
    SourceJSON Objekt JSON-Objekt der Quell-Lead-to-Cash-Entität.
    DirtyJSON Objekt Geänderte Quell-JSON der Lead-to-Cash-Entität.
    additionalParams Objekt Optional. Zusätzliche zu verwendende Parameter.
    additionalParams.delta_ignore_attributes Objekt Tabellenattribute, die beim Vergleich zwischen Quelle und dirtyJSON ignoriert werden sollen. Aktiviert die Unterstützung von Anwendungsfällen zur Neukonfiguration.
    {  
    “<table_name>”: [<attribute_name1>, attribute_name2>] 
    }
    additionalParams.delta_ignore_attributes.<table_name> Zeichenfolge Der Name der Tabelle und der zugehörigen Attribute, die ignoriert werden sollen.

    Zum Beispiel:

    {  
    “sn_install_base_sold_product”: [“state”,”unit_price”]  
    }
    AdditionalParameter.loadDisplayValue Boolean Optional. Kennzeichnung, die angibt, ob der Anzeigewert für jedes Attribut geladen werden soll.
    Gültige Werte:
    • Wahr: Aktiviert das Laden des Anzeigewerts eines Attributs.
    • Falsch: Aktiviert das Laden des Anzeigewerts eines Attributs nicht.

    Standardwert: false

    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Ein Objekt mit Details zum Entitätsdatensatz mit allen Änderungen, die zwischen dem sourceJSON und dem dirtyJSON aufgetreten sind.

    Datentyp: Objekt

    {
    "lineItems": [Array] 
    }
    LineItems JSON-Objekt, das die Einzelelementdetails des Entitätsdatensatzes enthält. Zum Beispiel Auftragspositionen oder Angebotspositionen.

    Datentyp: Array von Objekten

    "lineItems": [ 
     {
      "_action": "String",
      "attributes": {Object}
      "characteristics": [Array]
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    LineItems._action Change-Aktion, die auf die Position der Quell-JSON angewendet wird.
    Mögliche Werte:
    • Hinzufügen: Informationen wurden der Quell-JSON hinzugefügt.
    • Change: Informationen wurden im Quell-JSON aktualisiert.
    • Trennen: Die Verbindung der Informationen mit der Quell-JSON wurde getrennt.
    • NoChange: Für die Quell-JSON ist keine Änderung aufgetreten.

    Datentyp: Zeichenfolge

    LineItems.Attribute Attribute der Position. Beispiel: Name und Wert des Attributs. Kann je nach Entität unterschiedliche Felder enthalten.

    Datentyp: Objekt

    "attributes": { 
      "<attribute_name>": {Object}
    }
    positionselemente.Attribute.<attribute_name> Name des Positionselementattributs. Zum Beispiel der Name eines Accounts oder Kontakts. Kann verschiedene Felder der Entität enthalten.

    Datentyp: Objekt

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    lineitems.Attribute.<attribute_name>.Wert Wert des Positionselementattributs.

    Datentyp: Zeichenfolge

    LineItems.Attribute.Account Informationen zum Account, der dem Elementattribut zugeordnet ist.

    Datentyp: Objekt

    "account": { 
      "value": "String" 
    }
    LineItems.Attribute.Account.Wert SYS_ID des Accounts, der dem Positionselementattribut zugeordnet ist.

    Datentyp: Zeichenfolge

    lineItems.characteristics Merkmale der Einzelposition. Kann je nach Entität unterschiedliche Felder enthalten.

    Datentyp: Array von Objekten

    "characteristics": [  
     {  
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
      }  
    ]
    lineItems.characteristics.attributes Attribute der Merkmale des Headerdatensatzes. Beispiel: Name und Wert des Attributs. Kann je nach Entität unterschiedliche Felder enthalten.

    Datentyp: Objekt

    "attributes": { 
     "<field_name>": { 
     "value": "String"
    }
    lineitems.characteristics.attributes.<field_name> Attributname des Merkmalsdatensatzes, der der Position zugeordnet ist.

    Datentyp: Objekt

    "<field_name>": { 
      "value": "String" 
    }
    lineitems.characteristics.attributes.<field_name>.Wert Wert des Attributs, das zum Merkmalsdatensatz einer Entität gehört.

    Datentyp: Zeichenfolge

    lineItems.characteristics.sys_id SYS_ID-Objekt des Merkmalsdatensatzes.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
    }
    lineItems.characteristics.sys_id.value SYS_ID des zugehörigen Merkmalsdatensatzes. Die aktualisierte Tabelle kann zwischen Entitäten variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    lineItems.characteristics.table Name der Tabelle, die den Merkmalsdatensatz enthält.

    Datentyp: Zeichenfolge

    LineItems.lineItems Untergeordnete Einzelposten einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie lineItemsParameter.

    Datentyp: Array von Objekten

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    LineItems.sys_ID SYS_ID des zugehörigen Elementdatensatzes.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    LineItems.sys_ID.Wert SYS_ID eines zugeordneten Elementdatensatzes. Die aktualisierte Tabelle kann zwischen Entitäten wie Bestellung oder Spezifikation variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    LineItems.Tabelle Name der Tabelle, die den Elementdatensatz enthält, der der Lead-to-Cash-Entität zugeordnet ist.

    Datentyp: Zeichenfolge

    Das folgende Beispiel zeigt, wie Sie aufrufen delta() Methode, indem zuerst aufgerufen wird PrimitiveUtil Dienstprogrammmethode und GetPrimitiesEPService() , Und geben dann die Quell- und Ziel-JSON-Objekte an.

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

    Die Ausgabe-JSON zeigt, dass dem verkauften Basisprodukt mehrere Einzelposten hinzugefügt wurden:

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

    Mehrfachauswahl

    Das folgende Beispiel zeigt, wie die Mehrfachauswahl gebildet wird delta() Methode durch ersten Aufruf PrimitiveUtil Und GetPrimitivesEPService Und stellt dann die Quell- und Ziel-JSON-Objekte für mehrere Zeilen- oder Header-IDs bereit. Rufen Sie den Service pro Flow nur einmal ab, und verwenden Sie denselben Service für alle LeadtoCashCore Methoden.

    /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

    Die Ausgabe-JSON zeigt, dass dem verkauften Basisprodukt mehrere Einzelposten hinzugefügt wurden:

    { 
      "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 – Effect(Object sourceJSON, Object targetJSON, Object additionalParams)

    Transformiert die Quell-JSON-Struktur einer bestimmten Entität und wendet sie auf das Ziel-JSON einer anderen Entität an. Sie können dann die geänderte Entität mit der in der Datenbank festschreiben CommitInstance() Methode.

    Sie können die Ausgabe-JSON von verwenden delta() Methode in Effekt() Anforderung. Anschließend können Sie beliebig festlegen Effekt() JSON-Ausgabe an die Datenbank mit CommitInstance() Zum Abschließen des Lead-to-Cash-Workflows.

    Hinweis:
    Die LeadtoCashCore Für die Skripteinbindung müssen Sie zuerst den geskripteten Erweiterungspunkt aufrufen PrimitiveUtil() Mit LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext) Dienstprogrammmethode zum Auslösen der Implementierung vor dem Aufruf Effekt() In Ihrem Skript. Rufen Sie den Service pro Flow nur einmal ab, und verwenden Sie denselben Service für alle LeadtoCashCore Methoden.
    Tabelle : 7. Parameter
    Name Typ Beschreibung
    SourceJSON Objekt JSON mit Details der Quellentität.
    TargetJSON Objekt JSON mit Details der Zielentität.
    additionalParams Objekt Optional. Zusätzliche zu verwendende Parameter.
    AdditionalParams.is_future_State Boolean Optional. Verwenden Sie diese Option, um Anwendungsfälle für die Neukonfiguration zu unterstützen.
    Akzeptierte Werte:
    • Wahr: Stellt Kontextvariablen-Schlüssel anstelle von Wörterbuchfeldnamen bereit. Auf diese Weise können Sie alle Attribute aus der Zielentität angeben, anstatt Attribute von Quelle zu Ziel zuzuordnen.
    • Falsch: Gibt Wörterbuchfeldnamen an.

    Standardwert: false

    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Change, der aufgetreten ist und von der Quelle auf JSON-Objekte der Zielentität in jedem Header der Lead-to-Cash-Entität angewendet wurde.

    Datentyp: Objekt

    {
      "_glide_action": "String",
      "_records_count: {Object},
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String", 
      "table": "String"
    }
    _Glide_action Gibt die Änderung an, die auf Elementebene zwischen Quell- und Ziel-JSON aufgetreten ist.
    Mögliche Werte (Groß-/Kleinschreibung beachten):
    • LÖSCHEN: Informationen zwischen Quell- und Ziel-JSON-Strukturen wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Die Informationen wurden zwischen der Quelle und den JSON-Strukturen geändert.

    Datentyp: Zeichenfolge

    _Records_count Details der neuen Datensätze, die für jede Tabelle eingefügt wurden.

    Datentyp: Objekt

    "_records_count": {
    "tableName": {Object}
    }
    _Records_count.tableName Name der Tabelle, in die neue Datensätze eingefügt werden.

    Datentyp: Objekt

    "tableName": {
          "insert": Number}
    }
    _records_count.tableName.insert Anzahl der neuen Datensätze, die in die Tabelle eingefügt wurden.

    Datentyp: Zahl

    _Source_object JSON-Quell-Objekt, auf das Änderungen angewendet wurden. Die Objektstruktur kann zwischen Entitäten variieren.

    Datentyp: Objekt

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    _Source_object.sys_ID SYS_ID des Quellentitätsdatensatzes, der aktualisiert wurde.

    Datentyp: Zeichenfolge

    _Source_object.table Tabellenspeicherort des Quellentitätsdatensatzes, der aktualisiert wurde. Dieser Wert kann zwischen Entitäten variieren.

    Datentyp: Zeichenfolge

    LineItems._Glide_action Change-Aktion, die für die Position aufgetreten ist.
    Mögliche Werte:
    • LÖSCHEN: Informationen zwischen Quell- und Ziel-JSON-Strukturen wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Die Informationen wurden zwischen der Quelle und den JSON-Strukturen geändert.

    Datentyp: Zeichenfolge

    LineItems._Source_object Details des Quellentitätsdatensatzes, auf den die _Glide_action angewendet wurde. Dieses Objekt kann zwischen Entitäten variieren.

    Datentyp: Objekt

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    LineItems._Source_object.sys_ID SYS_ID des Quellentitätsdatensatzes, der aktualisiert wurde.

    Datentyp: Zeichenfolge

    LineItems._Source_object.table Tabellenspeicherort des Quellentitätsdatensatzes, der aktualisiert wurde. Dieser Wert kann zwischen Entitäten variieren.

    Datentyp: Zeichenfolge

    LineItems._State Status der Entität.

    Datentyp: Objekt

    "_state": {  
     "value": "String" 
    } 
    LineItems._State.value Der aktuelle Status der Entität.
    Mögliche Werte:
    • Aktiv: Das Entitätsobjekt befindet sich in einem aktiven Status.
    • Inaktiv: Das Entitätsobjekt befindet sich nicht in einem aktiven Status.

    Datentyp: Zeichenfolge

    LineItems.Attribute Attribute der Position. Beispiel: Name und Wert des Attributs. Kann je nach Entität unterschiedliche Felder enthalten.

    Datentyp: Objekt

    "attributes": { 
      "<attribute_name>": {Object}
    }
    positionselemente.Attribute.<attribute_name> Name des Positionselementattributs. Zum Beispiel der Name eines Accounts oder Kontakts. Kann verschiedene Felder der Entität enthalten.

    Datentyp: Objekt

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    lineitems.Attribute.<attribute_name>.Wert Wert des Positionselementattributs.

    Datentyp: Zeichenfolge

    LineItems.Attribute.Account Informationen zum Account, der dem Elementattribut zugeordnet ist.

    Datentyp: Objekt

    "account": { 
      "value": "String" 
    }
    LineItems.Attribute.Account.Wert SYS_ID des Accounts, der dem Positionselementattribut zugeordnet ist.

    Datentyp: Zeichenfolge

    LineItems.Attribute.short_description Kurze Beschreibung des Positionselementattributs.

    Datentyp: Zeichenfolge

    lineItems.characteristics Liste der Merkmale, die der Position zugeordnet sind. Merkmale können zwischen Entitäten variieren.

    Datentyp: Array von Objekten

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    lineItems.characteristics._glide_action Change-Aktion, die für die Position aufgetreten ist.
    Mögliche Werte:
    • LÖSCHEN: Informationen zwischen Quell- und Ziel-JSON-Strukturen wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Die Informationen wurden zwischen der Quelle und den JSON-Strukturen geändert.

    Datentyp: Zeichenfolge

    lineItems.characteristics.attributes Mindestens ein Objekt, das Informationen zu Attributen enthält, die dem Merkmalsdatensatz zugeordnet sind.

    Dieses Objekt kann beispielsweise Verweise auf die sys_ID des Attributdatensatzes, zugehörige Merkmalsdatensätze, Accounts oder Kontakte, Merkmalsoptionsdatensätze oder Informationen zu verkauften Produkten enthalten.

    Datentyp: Objekt

    "attributes": {
      "<attribute_type>": {Object}
    }
    lineItems.characteristics.attributes.<attribute_type> Typ des Attributs. Dieser Wert kann verschiedene Werte basierend auf den Datensätzen oder Funktionen enthalten, die dem Merkmal zugeordnet sind.

    Datentyp: Objekt

    "<attribute_type>": {
      "value": "String"
    }
    lineItems.characteristics.attributes.<attribute_type>.Wert Wert des Positionselementattributs.

    Datentyp: Zeichenfolge

    lineitems.characteristics.attributes.<field_name> Attributname des Merkmalsdatensatzes, der der Position zugeordnet ist.

    Datentyp: Objekt

    "<field_name>": { 
      "value": "String" 
    }
    lineitems.characteristics.attributes.<field_name>.Wert Wert des Attributs, das zum Merkmalsdatensatz einer Entität gehört.

    Datentyp: Zeichenfolge

    lineItems.characteristics.sys_id SYS_ID des zugehörigen Merkmalsdatensatzes.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    lineItems.characteristics.sys_id.value SYS_ID des zugehörigen Merkmalsdatensatzes. Die aktualisierte Tabelle kann zwischen Entitäten variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    lineItems.characteristics.table Name der Tabelle, die den Merkmalsdatensatz enthält.

    Datentyp: Zeichenfolge

    LineItems.lineItems Untergeordnete Einzelposten einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie lineItemsParameter.

    Datentyp: Array von Objekten

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    LineItems.sys_ID SYS_ID des zugehörigen Elementdatensatzes.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    LineItems.sys_ID.Wert SYS_ID eines zugeordneten Elementdatensatzes. Die aktualisierte Tabelle kann zwischen Entitäten wie Bestellung oder Spezifikation variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    LineItems.Tabelle Name der Tabelle, die den Elementdatensatz enthält, der der Lead-to-Cash-Entität zugeordnet ist.

    Datentyp: Zeichenfolge

    sys_id SYS_ID der Entität.

    Datentyp: Zeichenfolge

    table Name der Tabelle, in der die Entität gefunden wird.

    Datentyp: Zeichenfolge

    Das folgende Beispiel zeigt, wie die Transformationslogik mithilfe der Ausgabe von angewendet wird delta() Methode:
    Hinweis:
    Dasselbe Skript gilt für Anwendungsfälle mit Einzel- und Mehrfachauswahl, da sich nur das JSON-Quellformat ändert und die Ausgabe für beide gleich bleibt. Für Anwendungsfälle mit Mehrfachauswahl wird ein einzelner Header erstellt, in dem alle Einzelposten demselben Header hinzugefügt werden.
    //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.

    Ausgabe:

    { 
      "sys_id": "-1", 
      "table": "sn_ind_tmt_orm_order", 
      "_glide_action": "INSERT", 
      "_source_object": {}, 
      "lineItems": [ 
        { 
          "sys_id": "-1", 
          "table": "sn_ind_tmt_orm_order_line_item", 
          "attributes": { 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            }, 
            "short_description": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            } 
          }, 
          "_glide_action": "INSERT", 
          "_source_object": { 
            "sys_id": "-1", 
            "table": "sn_install_base_sold_product" 
          }, 
          "lineItems": [ 
            { 
              "sys_id": "-1", 
              "table": "sn_ind_tmt_orm_order_line_item", 
              "attributes": { 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                }, 
                "short_description": { 
                  "value": "Internet and OTT Bundle" 
                } 
              }, 
              "_glide_action": "INSERT", 
              "_source_object": { 
                "sys_id": "-1", 
                "table": "sn_install_base_sold_product" 
              }, 
              "lineItems": [ 
                { 
                  "sys_id": "-1", 
                  "table": "sn_ind_tmt_orm_order_line_item", 
                  "attributes": { 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    }, 
                    "short_description": { 
                      "value": "Solana Sports streaming channel" 
                    } 
                  }, 
                  "_glide_action": "INSERT", 
                  "_source_object": { 
                    "sys_id": "-1", 
                    "table": "sn_install_base_sold_product" 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "sys_id": "-1", 
              "table": "sn_ind_tmt_orm_order_characteristic_value", 
              "attributes": { 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option_value": { 
                  "value": "" 
                } 
              }, 
              "_glide_action": "INSERT", 
              "_source_object": { 
                "sys_id": "-1", 
                "table": "sn_prd_pm_product_characteristics" 
              } 
            } 
          ] 
        }, 
      "_state": {
          "value": "active"
    }
       ],
      "_records_count":
        {
            "sn_ind_tmt_orm_order":
            {
                "insert": 1
            },
            "sn_ind_tmt_orm_order_line_item":
            {
                "insert": 3
            },
            "sn_ind_tmt_orm_order_characteristic_value":
            {
                "insert": 1
            }
        }
    }

    LeadtoCashCore – CommitInstance(Object targetJSON, Object additionalParams)

    Legt die JSON einer bestimmten Lead-to-Cash-Entität an die Instanz fest, gibt eine Statusnachricht mit aktualisierten Informationen zurück und aktualisiert als Ergebnis die Lead-to-Cash-Core-Entitätstabelle.

    Hinweis:
    Die LeadtoCashCore Für die Skripteinbindung müssen Sie zuerst den geskripteten Erweiterungspunkt aufrufen PrimitiveUtil() Mit LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID, Objektkontext) Dienstprogrammmethode zum Auslösen der Implementierung vor dem Aufruf CommitInstance() In Ihrem Skript. Rufen Sie den Service pro Flow nur einmal ab, und verwenden Sie denselben Service für alle LeadtoCashCore Methoden.
    Tabelle : 9. Parameter
    Name Typ Beschreibung
    TargetJSON Objekt JSON-Objekt, das die „Glide_action“ einer Zielentität zum Commit enthält. Sie können die Ausgabe von übergeben Effekt() Methode hier.
    Hinweis:
    „Glide_action“ identifiziert die Change-Aktion, die zwischen der Quell- und dem Ziel-JSON einer Lead-to-Cash-Entität aufgetreten ist.
    additionalParams Objekt Optional. Zusätzliche zu verwendende Parameter.
    additionalParams.useNumberGenerator Boolean Optional. Kennzeichnung, die angibt, ob sys_Numbers als Massengenerierung generiert werden soll.
    Gültige Werte:
    • Wahr: Generieren Sie die sys_numbers in Massen, die während des Datensatzeinfügeprozesses verwendet werden sollen. Reduziert den Bedarf an zusätzlichen Abfragen zum Abrufen von Nummern und verkürzt die Einfügezeit.
    • Falsch: Generieren Sie die sys_number zum Zeitpunkt des Einfügens für jeden Datensatz einzeln.

    Standardwert: false

    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Details zum Zielentitätsdatensatz.

    Datentyp: Objekt

    {
      "dataObject": {Object},
      "displayMessage": "String",
      "error": "String",
      "headerID": "String",
      "message": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }
    Datenobjekt JSON-Objekt, das detaillierte Daten zu den auf jeder Ebene ausgeführten Commit-Vorgängen enthält.

    Datentyp: Objekt

    "dataObject": {
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String",
      "table": "String"
    }
    DataObject._commit ObjectInfo Commit-Status und sys_ID, wenn die Positionsänderung eine EINFÜGEAKTION ist.

    Datentyp: Objekt

    "_commitObjectInfo": {
      "status": "String",
      "sys_id": "String"
    }
    DataObject._commit ObjectInfo.Status Status des Commit-Vorgangs, der für die bestimmte Entität ausgeführt wird.
    Mögliche Werte:
    • Erfolg: Der Commit-Vorgang für die Entität war erfolgreich.
    • Fehler: Der Commit-Vorgang für die Entität war nicht erfolgreich.

    Datentyp: Zeichenfolge

    DataObject._commit ObjectInfo.sys_ID SYS_ID des eingefügten Datensatzes. Die Methode gibt diesen Parameter nur zurück, wenn der dataObject._glide_actionIst EINFÜGEN . Die aktualisierte Tabelle kann zwischen Entitäten variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    DataObject._Glide_action Change-Aktion, die für die Position aufgetreten ist.
    Mögliche Werte:
    • LÖSCHEN: Informationen zwischen Quell- und Ziel-JSON-Strukturen wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Informationen wurden zwischen Quell- und Zielstrukturen geändert.

    Datentyp: Zeichenfolge

    DataObject._Source_object JSON-Quell-Objekt, auf das Änderungen angewendet wurden. Die Objektstruktur kann zwischen Entitäten variieren.

    Datentyp: Objekt

    "_source_object": {
      "sys_id": "String", 
      "table": "String” 
    }
    DataObject._Source_object.sys_ID SYS_ID des Quellentitätsdatensatzes, auf den die _Glide_action angewendet wurde. Die aktualisierte Tabelle kann zwischen Entitäten variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    DataObject._Source_object.table Name der Tabelle, die den Quellentitätsdatensatz enthält, auf den die _Glide_action angewendet wurde. Dies kann zwischen Entitäten variieren.

    Datentyp: Zeichenfolge

    DataObject.lineItems Einzelelementdetails des Entitätsdatensatzes. Zum Beispiel Auftragspositionen oder Angebotspositionen.

    Datentyp: Array von Objekten

    "lineItems": [ 
    { 
      "_action": "String",
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "_state": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String",
    }
    ]
    DataObject.lineItems._action Change-Aktion, die auf die Position der Quell-JSON angewendet wird.
    Mögliche Werte:
    • Hinzufügen: Informationen wurden der Quell-JSON hinzugefügt.
    • Change: Informationen wurden im Quell-JSON aktualisiert.
    • Trennen: Die Verbindung der Informationen mit der Quell-JSON wurde getrennt.
    • NoChange: Für die Quell-JSON ist keine Änderung aufgetreten.

    Datentyp: Zeichenfolge

    DataObject.lineItems._commit ObjectInfo Wird zurückgegeben, wenn der Positionswechsel ein ist EINFÜGEN Aktion. Enthält den Commit-Status und die sys_ID des Objekts

    Datentyp: Objekt

    "_commitObjectInfo": { 
      "status": "String", 
      "sys_id": "String" 
    }
    DataObject.lineItems._commit ObjectInfo.Status Status des Commit-Vorgangs, der für die bestimmte Entität ausgeführt wird.
    Mögliche Werte:
    • Erfolg: Der Commit-Vorgang für die Entität war erfolgreich.
    • Fehler: Der Commit-Vorgang für die Entität war nicht erfolgreich.

    Datentyp: Zeichenfolge

    DataObject.lineItems._commit ObjectInfo.sys_ID SYS_ID des eingefügten Datensatzes. Die aktualisierte Tabelle kann zwischen Entitäten variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    DataObject.lineItems._Glide_action Change-Aktion, die für die Position aufgetreten ist.
    Mögliche Werte:
    • LÖSCHEN: Informationen zwischen Quell- und Ziel-JSON-Strukturen wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Die Informationen wurden zwischen der Quelle und den JSON-Strukturen geändert.

    Datentyp: Zeichenfolge

    DataObject.lineItems._Source_object Details des Quellentitätsdatensatzes, auf den die _Glide_action angewendet wurde. Dieses Objekt kann zwischen Entitäten variieren.

    Datentyp: Objekt

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    DataObject.lineItems._Source_object.sys_ID SYS_ID des Quellentitätsdatensatzes, auf den die _Glide_action angewendet wurde.

    Datentyp: Zeichenfolge

    DataObject.lineItems._Source_object.table Tabellenname des Quellentitätsdatensatzes, auf den die _Glide_action angewendet wurde.

    Datentyp: Zeichenfolge

    DataObject.lineItems._State Status des Objekts.
    Mögliche Werte:
    • Aktiv: Das Entitätsobjekt befindet sich in einem aktiven Status.
    • Inaktiv: Das Entitätsobjekt befindet sich nicht in einem aktiven Status.

    Datentyp: Zeichenfolge

    DataObject.lineItems.Attribute Attribute der Position. Beispiel: Name und Wert des Attributs. Kann je nach Entität unterschiedliche Felder enthalten.

    Datentyp: Objekt

    "attributes": { 
      "<attribute_name>": {Object}
    }
    Datenobjekt.lineElemente.Attribute.<attribute_name> Name des Positionselementattributs. Zum Beispiel der Name eines Accounts oder Kontakts. Kann verschiedene Felder der Entität enthalten.

    Datentyp: Objekt

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    Datenobjekt.lineElemente.Attribute.<attribute_name>.Wert Wert des Positionselementattributs.

    Datentyp: Zeichenfolge

    dataObject.lineItems.characteristics Liste der Merkmale, die der Position zugeordnet sind. Merkmale können zwischen Entitäten variieren.

    Datentyp: Array von Objekten

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    dataObject.lineItems.characteristics._glide_action Change-Aktion, die für die Position aufgetreten ist.
    Mögliche Werte:
    • LÖSCHEN: Informationen zwischen Quell- und Ziel-JSON-Strukturen wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Die Informationen wurden zwischen der Quelle und den JSON-Strukturen geändert.

    Datentyp: Zeichenfolge

    dataObject.lineItems.characteristics.attributes Mindestens ein Objekt, das Informationen zu Attributen enthält, die dem Merkmalsdatensatz zugeordnet sind.

    Dieses Objekt kann beispielsweise Verweise auf die sys_ID des Attributdatensatzes, zugehörige Merkmalsdatensätze, Accounts oder Kontakte, Merkmalsoptionsdatensätze oder Informationen zu verkauften Produkten enthalten.

    Datentyp: Objekt

    "attributes": {
      "<attribute_type>": {Object}
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type> Name des Merkmalsattributs. Kann verschiedene Felder der Entität enthalten.

    Datentyp: Objekt

    "<attributes_type>": { 
     "<attribute_name>": {Object}
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name> Name des Merkmalsattributs.

    Datentyp: Objekt

    "<attribute_name>": { 
     "value": "String"
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name>.Wert Wert des Positionselementattributs.

    Datentyp: Zeichenfolge

    DataObject.lineItems[0].characteristics.sys_ID SYS_ID des zugehörigen Merkmalsdatensatzes.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    DataObject.lineItems[0].characteristics.sys_id.value SYS_ID des zugehörigen Merkmalsdatensatzes. Die aktualisierte Tabelle kann zwischen Entitäten variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    DataObject.lineItems[0].Merkmale.Tabelle Name der Tabelle, die den Merkmalsdatensatz enthält.

    Datentyp: Zeichenfolge

    DataObject.lineItems[0].lineItems Untergeordnete Einzelposten einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie lineItemsParameter.

    Datentyp: Array von Objekten

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    DataObject.lineItems[0].sys_ID SYS_ID des zugehörigen Elementdatensatzes.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    DataObject.lineItems[0].sys_id.Wert SYS_ID eines zugeordneten Elementdatensatzes. Die aktualisierte Tabelle kann zwischen Entitäten wie Bestellung oder Spezifikation variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    DataObject.lineItems[0].table Name der Tabelle, die den Elementdatensatz enthält, der der Lead-to-Cash-Entität zugeordnet ist.

    Datentyp: Zeichenfolge

    DataObject.sys_ID SYS_ID des zugehörigen Einzelposten-Datensatzes. Die aktualisierte Tabelle kann zwischen Entitäten variieren. Beispiel: Reihenfolge [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    Datenobjekt.Tabelle Name der Tabelle, die den Datensatz der Lead-to-Cash-Entität enthält.

    Datentyp: Zeichenfolge

    displayMessage Nachricht, die dem Anwender in der Anwenderoberfläche angezeigt wird. Die Anzeigenachricht ist identisch mit messageZeichenfolgenwert.

    Datentyp: Zeichenfolge

    Fehler Fehlermeldung, die den Fehler von beschreibt CommitInstance Methode. Wenn die Anforderung erfolgreich ist, gibt dieser Parameter eine leere Zeichenfolge zurück.

    Datentyp: Zeichenfolge

    HeaderID SYS_ID des Zielentitätsdatensatzes, der von erstellt oder aktualisiert wurde CommitInstance Methode.

    Gespeichert in: Die zugehörige Tabelle je nach Entitätstyp, z. B. verkauftes Produkt, Bestellung usw.

    Datentyp: Zeichenfolge

    Nachricht Nachricht, die die Erfolgs-, Fehler- oder partiell_success-Szenarien beschreibt. Diese Nachricht ist mit identisch displayMessageZeichenfolgenwert und kann von anderen Anwendungsaufrufen für die API verwendet werden.

    Datentyp: Zeichenfolge

    RootLineIDs Kommagetrennte Liste von sys_IDs der Zielentitätsdatensätze, die von eingefügt, aktualisiert oder gelöscht wurden CommitInstance Methode.

    Gespeichert in: Die zugehörige Tabelle je nach Entitätstyp, z. B. verkauftes Produkt, Bestellung usw.

    Datentyp: Array von Zeichenfolgen

    status Statusnachricht, die den Erfolg des Commits bestätigt.

    Mögliche Werte:

    • Erfolg: Der Commit war erfolgreich.
    • Fehler: Der Glide-Vorgang der Stammzeile oder des Headers ist fehlgeschlagen. Lösen Sie erneut aus Lead-to-Cash Core API-Flow.
    • Partial_success: Fehler beim Verarbeiten des gesamten JSON. Informationen zur Behebung bestimmter Fehler finden Sie unter Verarbeitungsprotokolle.

    Datentyp: Zeichenfolge

    Das folgende Beispiel zeigt, wie jede verwendet wird LeadtoCashCore Methode zum Abrufen, Anwenden und Commit der Details einer Quell-zu-Ziel-Entität. In diesem Beispiel wird die Methode „commit Instance()“ verwendet, um das geänderte JSON für eine Lead-to-Cash-Entität in der Instanz zu bestätigen.

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

    Ausgabe:

    {
      "status": "success",
      "error": "",
      "message": "Commit operation successfully processed.",
      "displayMessage": "Commit operation successfully processed.",
      "dataObject": {
        "sys_id": "-1",
        "table": "sn_ind_tmt_orm_order",
        "_glide_action": "INSERT",
        "_source_object": {},
        "lineItems": [
          {
            "sys_id": "-1",
            "table": "sn_ind_tmt_orm_order_line_item",
            "attributes": {
              "account": {
                "value": "86837a386f0331003b3c498f5d3ee4ca"
              },
              "sold_product": {
                "value": "e4bbf902b7343300ece839a6ee11a937"
              },
              "short_description": {
                "value": "Network Monitoring"
              }
            },
            "_glide_action": "INSERT",
            "_source_object": {
              "sys_id": "e4bbf902b7343300ece839a6ee11a937",
              "table": "sn_install_base_sold_product"
            },
            "lineItems": [
              {
                "sys_id": "-1",
                "table": "sn_ind_tmt_orm_order_line_item",
                "attributes": {
                  "account": {
                    "value": "86837a386f0331003b3c498f5d3ee4ca"
                  },
                  "sold_product": {
                    "value": "23dbbd02b7343300ece839a6ee11a98e"
                  },
                  "short_description": {
                    "value": "Remote Monitoring"
                  }
                },
                "_glide_action": "INSERT",
                "_source_object": {
                  "sys_id": "23dbbd02b7343300ece839a6ee11a98e",
                  "table": "sn_install_base_sold_product"
                },
                "lineItems": [],
                "characteristics": [],
                "coveredProducts": [],
                "_commitObjectInfo": {
                  "sys_id": "d2d5b868488d5610f877a23d5db8922f",
                  "status": "success"
                }
              }
            ],
            "characteristics": [],
            "coveredProducts": [],
            "_commitObjectInfo": {
              "sys_id": "92d5b868488d5610f877a23d5db89229",
              "status": "success"
            }
          }
        ],
        "_commitObjectInfo": {
          "sys_id": "46d5b0a4488d5610f877a23d5db892ef",
          "status": "success"
        }
      },
      "headerID": "46d5b0a4488d5610f877a23d5db892ef",
      "rootLineIDs": [
        "92d5b868488d5610f877a23d5db89229"
      ]
    }