LeadtoCashCore : Bereichsbezogen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 30 Minuten Lesedauer
  • Die LeadtoCashCore- Skripteinbindung bietet Methoden zur Orchestrierung eines Lead-to-Cash-Workflows im Lead-to-Cash Core-Lebenszyklus.

    Das Plugin „Lead-to-Cash Core“ (com.snd.l2c.core) muss aktiviert sein, damit LeadtoCashCore -Skripteinbindungen in einer Instanz verfügbar sind. Diese Skripteinbindung gehört zum Namespace sn_l2c_core und erfordert die Rolle admin.

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

    Um einen Workflow mithilfe der LeadtoCash- Skripteinbindung abzuschließen, übergeben Sie Rückgabeparameter von einer Methode zur nächsten. Normalerweise rufen Sie diese Methoden in der folgenden Reihenfolge auf:

    1. LeadtoCashCore – createInstance(Zeichenfolge „headerSysIDs“, Zeichenfolge „lineSysIDs“, Boolesches „isTarget“, „ZusätzlichesParams-Objekt“) Ruft die Daten einer bestimmten Entität ab. Zum Beispiel auftragsbezogene Informationen, einschließlich Bestellpositionen und zugehöriger Daten.

      Verwenden Sie den Parameter context, um eine oder mehrere Header- oder Zeilen-IDs im Skript zu deklarieren. Für solche Anwendungsfälle mit Mehrfachauswahl enthält die Ausgabe-JSON ein Array mit Schlüsselelementen, in dem jeder Eintrag eine einzelne Entität darstellt.

    2. LeadtoCashCore – Delta(Objekt sourceJSON, Objekt dirtyJSON, Objekt zusätzlicheParams) Vergleicht zwei JSON-Eingaben und identifiziert alle Änderungen, die zwischen ihnen aufgetreten sind. Zum Beispiel, wenn in einer Entität etwas hinzugefügt, gelöscht oder geändert wird.
    3. LeadtoCashCore – Wirkung (Objekt sourceJSON, Objekt targetJSON, Object zusätzlicheParams) Transformiert das JSON-Quellziel in ein Zielobjekt.
    4. LeadtoCashCore – commitInstance(Object targetJSON, Object zusätzlicheParams) – Legt die in der Skripteinbindung „effect()“ vorgenommene Transformation in der Datenbank fest.
    Hinweis:
    Bei Bedarf kann Delta () in diesem Workflow übersprungen werden. Der Aufruf dieser Methoden in falscher Reihenfolge führt jedoch zu einem nicht erfolgreichen Workflow (wenn z. B. commitInstance() und dann Wirkung()aufgerufen werden).

    Voraussetzungen

    Jede dieser Methoden ist mit einem Erweiterungspunkt gebündelt: sn_l2c_core.LeadToCashServiceEP. PrimitiveUtil() ist ein Dienstprogramm, das Methoden zum Abrufen des Erweiterungspunktservice bereitstellt und die Skripteinbindungen gemäß ihren verfügbaren Parametern aufruft. Sie müssen PrimitiveUtil() zuerst mit der Methode getPrimitivesEPService() bereitstellen, die die Tabelle angibt, aus der Quell- und Zielinformationen abgerufen werden sollen. Weitere Informationen finden Sie unter LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext). Sobald PrimitiveUtil() und getPrimitivesEPService() im Skript bereitgestellt wurden, können Sie je nach Bedarf eine der Skripteinbindungen createInstance(), Delta(), Effekt()oder CommitInstance() aufrufen.

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

    Obwohl jede der verfügbaren Core-Skripteinbindungen für Lead-to-Cash einzeln dokumentiert ist, können Sie im folgenden Beispiel sehen, wie Sie diese Methoden zusammen 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, nennen wir die Lead-to-Cash-Core-Methoden in der folgenden Reihenfolge:
    1. Beim ersten Aufruf werden die vorhandenen Informationen zu verkauften Produkten mit der Methode createInstance() abgerufen.
    2. Anschließend vergleichen wir dieses Quell-JSON mit dem geänderten JSON mithilfe der Delta()- Methode, die ein Delta-JSON zurückgibt.
    3. Das JSON-Objekt delta() wird dann mithilfe der Wirkung () -Methode in ein JSON-Objekt vom Typ „Reihenfolge“ umgewandelt.
    4. Die Auftrags-JSON wird mit der commitInstance()- Methode in die Datenbank committet.

    LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext)

    Löst die Dienstprogrammmethode PrimitiveUtil() aus

    Um eine der verfügbaren Methoden in der Skripteinbindung LeadtoCashCore zu verwenden, müssen Sie in Ihrem Skript immer zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode getPrimitivesEPService() aufrufen, um die Implementierung auszulösen.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    context Objekt Optional. Zusätzliche Parameteroptionen zum Anzeigen von Attributwerten und zum gleichzeitigen Aufrufen von mehr als einer Instanz.
    "context": {
      "isMultiSelect": "Boolean"
      "loadDisplayValue": "Boolean"
    }
    Kontext.istMehrfachauswahl Boolean Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe zum Erstellen der Instanz übergeben werden sollen.
    Gültige Werte:
    • wahr: Aktiviert die Übergabe mehrerer Entitäten als Eingabe. Bei „wahr“ können Sie mehrere Positionen in einer durch Kommas getrennten Liste übergeben.
    • „false“: Aktiviert nicht die Übergabe mehrerer Entitäten als Eingabe. Im API-Skript kann nur eine Eingabe übergeben werden.

    Standardwert: false

    context.loadDisplayValue Boolean Optional. Kennzeichnung, die angibt, ob der Anzeigewert für jedes Attribut geladen werden soll.
    Gültige Werte:
    • true: Aktiviert das Laden des Anzeigewerts eines Attributs.
    • „false“: Aktiviert nicht das Laden des Anzeigewerts eines Attributs.

    Standardwert: false

    sourceToTargetConfigID Zeichenfolge Zuordnungskonfigurations-ID für die Quelle-zu-Ziel-Zuordnung.

    Tabelle: Entitätszuordnung für Lead-to-Cash [sn_l2c_core_entity_mapping]

    Tabelle : 2. Rückgaben
    Typ Beschreibung
    Keine

    Das folgende Beispiel ruft PrimitiveUtil() auf und wählt eine Implementierung basierend auf sn_l2c_cust_flows_sp_to_order aus, bei der es sich um eine Zuordnungskonfigurations-ID in der Tabelle „Lead-to-Cash-Entitätszuordnung“ [sn_l2c_core_entity_mapping] handelt.

    //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(Zeichenfolge „headerSysIDs“, Zeichenfolge „lineSysIDs“, Boolesches „isTarget“, „ZusätzlichesParams-Objekt“)

    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 deren Attribute enthält.

    Verwenden Sie das Ausgabe-JSON der Methode createInstance() in nachfolgenden Methoden des Core-Workflows für Lead-to-Cash, wie z. B. Delta(), Effekt()und CommitInstance().

    Hinweis:
    Für die LeadtoCashCore- Skripteinbindung müssen Sie zuerst die Skriptdienstprogrammmethode PrimitiveUtil() mit der Dienstprogrammmethode LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext) aufrufen, um die Implementierung auszulösen, bevor Sie createInstance() in Ihrem Skript aufrufen. Rufen Sie den Service pro Flow nur einmal ab und verwenden Sie denselben Service für alle LeadtoCashCore -Methoden.

    Legen Sie den booleschen Parameter „getPrimitivesEPService()context.isMultiSelect “ auf „wahr“ fest, damit createInstance() mehrere, durch Kommas getrennte Header-IDs oder Zeilen-IDs gleichzeitig übergeben kann. Andernfalls können Sie jeweils nur eine ID übergeben. Unter LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext) finden Sie weitere Details. Der Anwendungsfall mit einer einzelnen Header-ID und mehreren Zeilen-IDs wird unterstützt, ohne dass context.isMultiSelect auf „true“ festgelegt wird.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    additionalParams Objekt Optional. Zusätzlich zu verwendende Parameter.
    zusätzlicheParameter.ÜberspringenZeilen Boolean Optional. Kennzeichnung, die angibt, ob Einzelposten für die angegebene Entität abgerufen werden sollen.
    Gültige Werte:
    • „wahr“: Überspringen der Rückgabe von Einzelposteninformationen für die Entität.
    • „falsch“: Gibt Informationen zu Einzelposten für die Entität zurück.

    Standardwert: false

    HeaderSysIDs Zeichenfolge Header-sys_id(s) einer Entität, von der Daten abgerufen werden sollen. Erforderlich, wenn Sie den Parameter lineSysIDs nicht angeben. Übergeben Sie „null“, wenn Sie keine Header-sys_ids übergeben.

    Um eine oder mehrere Header-sys_ids in Ihrem Skript anzugeben, legen Sie in der Dienstprogrammmethode getPrimitivesEPService()context.isMultiSelect = true fest. Weitere Informationen finden Sie in der Parametertabelle in LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext).

    Hinweis:
    Mindestens ein Parameter headerSysID oder lineSysIDs ist erforderlich.
    istZiel Boolean Optional. Kennzeichnung, die bestimmt, ob Zielentitätsdaten abgerufen werden sollen.
    Gültige Werte:
    • „wahr“: Daten der Zielentität abrufen.
    • „falsch“: Es werden keine Daten der Zielentität abgerufen.

    Standardwert: false

    LinieSysIDs Zeichenfolge sys_id(s) des Positionselements einer Entität, von der Entitätsdaten abgerufen werden sollen. Erforderlich, wenn Sie headerSysIDs nicht angeben und die Entitätsstruktur mit Einzelposten wie dem verkauften Produkt beginnt.

    Um eine oder mehrere Einzelposten-sys_ids in Ihrem Skript anzugeben, legen Sie in der Dienstprogrammmethode getPrimitivesEPService()context.isMultiSelect = true fest. Weitere Informationen finden Sie in der Parametertabelle in LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext).

    Hinweis:
    Mindestens ein Parameter headerSysID oder lineSysIDs ist erforderlich. Wenn mehrere lineSysIDsübergeben werden, müssen alle Datensätze zu demselben headerSysIDgehören.
    Tabelle : 4. Rückgaben
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt, das Details des Entitätsdatensatzes enthält.

    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"
      }
     ]
    }
    _state Aktivitätsstatus der Entität.

    Mögliche Werte:

    • active: Die Entität ist aktiv.
    • inaktiv: Die Entität ist inaktiv.

    Standard: aktiv

    Datentyp: Zeichenfolge

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

    Datentyp: Array von Objekten

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    eigenschaften.attribute Ein oder mehrere Objekte, die Informationen zu Attributen enthalten, die dem Merkmalsdatensatz zugeordnet sind. Die<attribute type> kann je nach Datensatz/Funktionalität, die dem Merkmal zugeordnet sind, unterschiedliche Werte haben. Beispielsweise könnte dieses Objekt 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}
    }
    eigenschaften.attribute<attribute_type> Informationen zum Schlüsselnamen des Elementattributs.
    "<key_name>": { 
      "value": "String" 
    }

    Datentyp: Objekt

    eigenschaften.attribute<attribute_type> .Wert Normalerweise die sys_id des zugeordneten Attributdatensatzes, kann jedoch eine beliebige aussagekräftige Textzeichenfolge sein, die den zugeordneten Attributtyp beschreibt.

    Datentyp: Zeichenfolge

    eigenschaften.sys_id Objekt, das die sys_id des zugeordneten Merkmaldatensatzes enthält.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    eigenschaften.sys_id.wert Sys_id des zugeordneten Merkmaldatensatzes.

    Datentyp: Zeichenfolge

    eigenschaften.tabelle Name der Tabelle, die den Merkmalsdatensatz für die Entität Lead-to-Cash enthält.

    Datentyp: Zeichenfolge

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

    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 Artikelattribut zugeordnet ist.
    "account": { 
      "value": "String" 
    }
    elemente.Attribute.Account.Wert Attribute des Artikels. 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

    item.sys_id Objekt mit sys_id-Informationen zum Entitätselement. Die Werte variieren zwischen Entitäten.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    elemente.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.positionselemente JSON-Objekt, das die Einzelpostendetails des Entitätsdatensatzes enthält.

    Datentyp: Array von Objekten

    "lineItems": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": "String",
        "sys_id": {Object},
        "table": "String"
      }
    ]
    elemente.positionselemente._status Aktivitätsstatus der Einzelpostenentität.

    Mögliche Werte:

    • active: Die Entität ist aktiv.
    • inaktiv: Die Entität ist inaktiv.

    Standard: aktiv

    Datentyp: Zeichenfolge

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

    Datentyp: Objekt

    elemente.positionselemente.attribute<key_name> Informationen zum Schlüsselnamen des Einzelpostenattributs.
    "<key_name>": { 
      "value": "String" 
    }

    Datentyp: Objekt

    elemente.positionselemente.attribute<key_name> .Wert Wert des Schlüsselnamenattributs.

    Datentyp: Zeichenfolge

    elemente.positionselemente.attribute.account Informationen zum Account, der dem Einzelpostenattribut zugeordnet ist.
    "account": { 
      "value": "String" 
    }
    elemente.positionselemente.attribute.account.wert Sys_id des Accounts, der dem Einzelpostenattribut zugeordnet ist.

    Datentyp: Zeichenfolge

    elemente.positionselemente.merkmale Liste der Merkmale, die dem Einzelposten zugeordnet sind. Die Merkmale können zwischen Entitäten variieren.

    Datentyp: Array von Objekten

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    elemente.positionselemente.merkmale.attribute Ein oder mehrere Objekte, die Informationen zu Attributen enthalten, die dem Merkmalsdatensatz zugeordnet sind. Die<attribute type> kann je nach Datensatz/Funktionalität, die dem Merkmal zugeordnet sind, unterschiedliche Werte haben. Beispielsweise könnte dieses Objekt 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}
    }
    elemente.positionselemente.merkmale.attribute<attribute_type> .Wert Normalerweise die sys_id des zugeordneten Attributdatensatzes, kann jedoch eine beliebige aussagekräftige Textzeichenfolge sein, die den zugeordneten Attributtyp beschreibt.

    Datentyp: Zeichenfolge

    elemente.positionselemente.merkmale.sys_id Objekt, das die sys_id des zugeordneten Merkmaldatensatzes enthält.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    elemente.positionselemente.merkmale.sys_id.wert Sys_id des zugeordneten Merkmaldatensatzes.

    Datentyp: Zeichenfolge

    elemente.positionselemente.merkmale.tabelle Name der Tabelle, die den Merkmalsdatensatz für die Entität Lead-to-Cash enthält.

    Datentyp: Zeichenfolge

    elemente.positionselemente.positionselemente Untergeordnete Positionen einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie der Parameter lineItems.

    Datentyp: Objekt

    "lineItems": [
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": {Object},
        "sys_id": {Object},
        "table": "String"
      }
    ] 
    elemente.positionselemente.sys_id Objekt mit sys_id-Informationen zum zugeordneten Einzelposten-Datensatz.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    elemente.positionselemente.sys_id.wert Sys_id eines zugeordneten Einzelposten-Datensatzes.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    Das folgende Beispielskript ruft die Methode createInstance() auf, um die Daten eines verkauften Produkts, seine gesamte Hierarchie und seine Eigenschaften zu laden.

    //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 zeigt, wie isMultiSelect verwendet wird, um die Methode createInstance() aufzurufen und die Daten von zwei verkauften Produkten mit ihrer gesamten Hierarchie und ihren Eigenschaften zu laden.

    //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(Objekt sourceJSON, Objekt dirtyJSON, Objekt zusätzlicheParams)

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

    Hinweis:
    Für die LeadtoCashCore- Skripteinbindung müssen Sie zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext) aufrufen, um die Implementierung auszulösen, bevor Sie Delta() in Ihrem Skript aufrufen. 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 Entität „Lead-to-Cash“ der Quelle.
    dirtyJSON Objekt Geändertes Quell-JSON der Lead-to-Cash-Entität.
    additionalParams Objekt Optional. Zusätzlich zu verwendende Parameter.
    zusätzlicheParams.delta_ignore_attributes Objekt Tabellenattribute, die während des Vergleichs zwischen der Quelle und dem Drittwert-JSON ignoriert werden sollen. Aktiviert die Unterstützung von Anwendungsfällen für die Neukonfiguration von.
    {  
    “<table_name>”: [<attribute_name1>, attribute_name2>] 
    }
    zusätzlicheParams.delta_ignore_attributes<table_name> Zeichenfolge Der Name der Tabelle und die zugehörigen Attribute, die ignoriert werden sollen.

    Zum Beispiel:

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

    Standardwert: false

    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Ein Objekt, das Details des Entitätsdatensatzes mit allen Changes enthält, die zwischen der Quell-JSON und der von ihnen geänderten JSON aufgetreten sind.

    Datentyp: Objekt

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

    Datentyp: Array von Objekten

    "lineItems": [ 
     {
      "_action": "String",
      "attributes": {Object}
      "characteristics": [Array]
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    Positionselemente._Aktion Change-Aktion, die auf das Positionselement der Quell-JSON angewendet wird.
    Mögliche Werte:
    • add: Dem Quell-JSON wurden Informationen hinzugefügt.
    • change: Informationen wurden im Quell-JSON aktualisiert.
    • trennen: Die Informationen wurden vom Quell-JSON getrennt.
    • nochange: Im Quell-JSON ist keine Änderung aufgetreten.

    Datentyp: Zeichenfolge

    Positionselemente.Attribute Attribute des Einzelpostens. Zum Beispiel der Name und Wert des Attributs. Kann je nach Entität variierende Felder enthalten.

    Datentyp: Objekt

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

    Datentyp: Objekt

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    Einzelposten.Attribute<attribute_name> .Wert Wert des Einzelpostenattributs.

    Datentyp: Zeichenfolge

    Positionselemente.Attribute.Account Informationen zum Account, der dem Artikelattribut zugeordnet ist.

    Datentyp: Objekt

    "account": { 
      "value": "String" 
    }
    Positionselemente.Attribute.Account.Wert Sys_id des Accounts, der dem Einzelpostenattribut zugeordnet ist.

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale Merkmale des Einzelpostens. Kann je nach Entität variierende Felder enthalten.

    Datentyp: Array von Objekten

    "characteristics": [  
     {  
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
      }  
    ]
    Positionselemente.Merkmale.Attribute Attribute der Merkmale des Header-Datensatzes. Zum Beispiel der Name und Wert des Attributs. Kann je nach Entität variierende Felder enthalten.

    Datentyp: Objekt

    "attributes": { 
     "<field_name>": { 
     "value": "String"
    }
    Positionselemente.Merkmale.Attribute<field_name> Attributname des Merkmaldatensatzes, der der Position zugeordnet ist.

    Datentyp: Objekt

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

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale.sys_id Sys_id-Objekt des Merkmaldatensatzes.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
    }
    Positionselemente.Merkmale.sys_id.Wert Sys_id des zugeordneten Merkmaldatensatzes. Die aktualisierte Tabelle kann je nach Entität variieren. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale.Tabelle Name der Tabelle, die den Merkmalsdatensatz enthält.

    Datentyp: Zeichenfolge

    Positionselemente.Positionselemente Untergeordnete Positionen einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie der Parameter lineItems.

    Datentyp: Array von Objekten

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    Positionselemente.sys_id Sys_id des zugeordneten Elementdatensatzes.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    Positionselemente.sys_id.Wert Sys_id eines zugeordneten Elementdatensatzes. Die aktualisierte Tabelle kann je nach Entität variieren, z. B. Bestellung oder Spezifikation. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    Im folgenden Beispiel wird veranschaulicht, wie die Methodedelta () aufgerufen wird, indem zuerst die Dienstprogrammmethode PrimitiveUtil und getPrimitiesEPService()aufgerufen und dann die JSON-Quell- und Zielobjekte bereitgestellt werden.

    //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 Sie die Mehrfachauswahl- delta() -Methode bilden, indem Sie zuerst PrimitiveUtil und getPrimitivesEPService aufrufen und dann die Quell- und Ziel-JSON-Objekte für mehrere Zeilen- oder Header-IDs bereitstellen. 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 – Wirkung (Objekt sourceJSON, Objekt targetJSON, Object zusätzlicheParams)

    Transformiert die JSON-Quellstruktur einer bestimmten Entität und wendet sie auf die JSON-Zielstruktur einer anderen Entität an. Anschließend können Sie die geänderte Entität mit der commitInstance()- Methode in die Datenbank committen.

    Sie können die Ausgabe-JSON der Delta () -Methode in der Wirkung () -Anforderung verwenden. CommitInstance() verwenden, um den Lead - to-Cash-Workflow abzuschließen.

    Hinweis:
    Für die LeadtoCashCore- Skripteinbindung müssen Sie zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext) aufrufen, um die Implementierung auszulösen, bevor Sie Wirkung () in Ihrem Skript aufrufen. 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ätzlich zu verwendende Parameter.
    zusätzlicheParameter.is_future_state Boolean Optional. Verwenden Sie diese Option, um Anwendungsfälle für die Neukonfiguration zu unterstützen.
    Akzeptierte Werte:
    • „wahr“: Gibt Kontextvariablenschlüssel anstelle von Wörterbuchfeldnamen an. Auf diese Weise können Sie alle Attribute aus der Zielentität bereitstellen, anstatt Attribute von der Quelle dem Ziel zuzuordnen.
    • „falsch“: Stellt Wörterbuchfeldnamen bereit.

    Standardwert: false

    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Change, der aufgetreten ist und von der Quelle auf die 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 der Quell- und Ziel-JSON-Struktur wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen der Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen den Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Informationen wurden zwischen der Quell- und JSON-Struktur 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 der 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-Quellobjekt, auf das die Änderungen angewendet wurden. Die Objektstruktur kann je nach Entität 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 aktualisierten Quellentitätsdatensatzes. Dieser Wert kann zwischen Entitäten variieren.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    Positionselemente._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" 
    }
    Positionselemente._Quelle_Objekt.sys_id Sys_id des Quellentitätsdatensatzes, der aktualisiert wurde.

    Datentyp: Zeichenfolge

    Positionselemente._Quelle_Objekt.Tabelle Tabellenspeicherort des aktualisierten Quellentitätsdatensatzes. Dieser Wert kann zwischen Entitäten variieren.

    Datentyp: Zeichenfolge

    Positionselemente._Status Status der Entität.

    Datentyp: Objekt

    "_state": {  
     "value": "String" 
    } 
    Positionselemente._Status.Wert Der aktuelle Status der Entität.
    Mögliche Werte:
    • active: Das Entitätsobjekt befindet sich im Status „Aktiv“.
    • inaktiv: Das Entitätsobjekt befindet sich nicht im Status „Aktiv“.

    Datentyp: Zeichenfolge

    Positionselemente.Attribute Attribute des Einzelpostens. Zum Beispiel der Name und Wert des Attributs. Kann je nach Entität variierende Felder enthalten.

    Datentyp: Objekt

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

    Datentyp: Objekt

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    Einzelposten.Attribute<attribute_name> .Wert Wert des Einzelpostenattributs.

    Datentyp: Zeichenfolge

    Positionselemente.Attribute.Account Informationen zum Account, der dem Artikelattribut zugeordnet ist.

    Datentyp: Objekt

    "account": { 
      "value": "String" 
    }
    Positionselemente.Attribute.Account.Wert Sys_id des Accounts, der dem Einzelpostenattribut zugeordnet ist.

    Datentyp: Zeichenfolge

    Positionselemente.Attribute.Kurzbeschreibung Kurze Beschreibung des Einzelpostenattributs.

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale Liste der Merkmale, die dem Einzelposten zugeordnet sind. Die Merkmale können zwischen Entitäten variieren.

    Datentyp: Array von Objekten

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

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale.Attribute Ein oder mehrere Objekte, die Informationen zu Attributen enthalten, 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}
    }
    Positionselemente.Merkmale.Attribute<attribute_type> Typ des Attributs. Dieser Wert kann je nach den Datensätzen oder der Funktionalität, die dem Merkmal zugeordnet sind, unterschiedliche Werte enthalten.

    Datentyp: Objekt

    "<attribute_type>": {
      "value": "String"
    }
    Positionselemente.Merkmale.Attribute<attribute_type> .Wert Wert des Einzelpostenattributs.

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale.Attribute<field_name> Attributname des Merkmaldatensatzes, der der Position zugeordnet ist.

    Datentyp: Objekt

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

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale.sys_id Sys_id des zugeordneten Merkmaldatensatzes.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    Positionselemente.Merkmale.sys_id.Wert Sys_id des zugeordneten Merkmaldatensatzes. Die aktualisierte Tabelle kann je nach Entität variieren. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    Positionselemente.Merkmale.Tabelle Name der Tabelle, die den Merkmalsdatensatz enthält.

    Datentyp: Zeichenfolge

    Positionselemente.Positionselemente Untergeordnete Positionen einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie der Parameter lineItems.

    Datentyp: Array von Objekten

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    Positionselemente.sys_id Sys_id des zugeordneten Elementdatensatzes.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    Positionselemente.sys_id.Wert Sys_id eines zugeordneten Elementdatensatzes. Die aktualisierte Tabelle kann je nach Entität variieren, z. B. Bestellung oder Spezifikation. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    sys_id Sys_id der Entität.

    Datentyp: Zeichenfolge

    Tabelle Name der Tabelle, in der sich die Entität befindet.

    Datentyp: Zeichenfolge

    Das folgende Beispiel zeigt, wie Transformationslogik mithilfe der Ausgabe der Delta()- Methode angewendet wird:
    Hinweis:
    Dasselbe Skript gilt für Einzelauswahl- und Mehrfachauswahl-Anwendungsfälle, da sich nur das JSON-Quellformat ändert und die Ausgabe für beide gleich bleibt. Bei Anwendungsfällen mit Mehrfachauswahl wird ein einzelner Header erstellt, wobei 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 zusätzlicheParams)

    Legt das JSON-Objekt einer bestimmten Lead-to-Cash-Entität in der Instanz fest, gibt eine Statusnachricht mit aktualisierten Informationen zurück und aktualisiert entsprechend die Tabelle „Lead-to-Cash-Core-Entität“.

    Hinweis:
    Für die LeadtoCashCore- Skripteinbindung müssen Sie zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode LeadtoCashCore – getPrimitivesEPService(Zeichenfolge sourceToTargetConfigID, Objektkontext) aufrufen, um die Implementierung auszulösen, bevor Sie commitInstance() in Ihrem Skript aufrufen. 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 für einen Commit enthält. Sie können die Ausgabe der Wirkung () -Methode hier übergeben.
    Hinweis:
    „glide_action“ identifiziert die Change-Aktion, die zwischen der Quell- und der Ziel-JSON einer Lead-to-Cash-Entität aufgetreten ist.
    additionalParams Objekt Optional. Zusätzlich zu verwendende Parameter.
    zusätzlicheParameter.verwendenNummerngenerator Boolean Optional. Kennzeichnung, die angibt, ob sys_numbers massenweise generiert werden sollen.
    Gültige Werte:
    • „wahr“: Massengenerieren Sie die sys_numbers, die während des Prozesses zum Einfügen von Datensätzen verwendet werden sollen. Verringert den Bedarf an zusätzlichen Abfragen zum Abrufen von Zahlen und verkürzt die Einfügezeit.
    • „falsch“: Generiert die sys_number einzeln zum Zeitpunkt des Einfügens für jeden Datensatz.

    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"
    }
    dataObject JSON-Objekt, das detaillierte Daten zu den auf jeder Ebene durchgefü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._commitObjectInfo Commit-Status und sys_id, wenn die Einzelpostenänderung eine EINFÜGEN-Aktion ist.

    Datentyp: Objekt

    "_commitObjectInfo": {
      "status": "String",
      "sys_id": "String"
    }
    dataObject._commitObjectInfo.status Status des Commit-Vorgangs, der für die jeweilige Entität ausgeführt wurde.
    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._commitObjectInfo.sys_id Sys_id des eingefügten Datensatzes. Die Methode gibt diesen Parameter nur zurück, wenn dataObject._glide_action auf INSERT festgelegtist. Die aktualisierte Tabelle kann je nach Entität variieren. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    Datenobjekt._source_object JSON-Quellobjekt, auf das die Änderungen angewendet wurden. Die Objektstruktur kann je nach Entität 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 je nach Entität variieren. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    dataObject._source_object.table Name der Tabelle, die den Quellentitätsdatensatz enthält, auf den „_glide_action“ angewendet wurde. Dies kann zwischen Entitäten variieren.

    Datentyp: Zeichenfolge

    dataObject.lineItems Positionsdetails des Entitätsdatensatzes. Zum Beispiel Bestellpositionen 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 das Positionselement der Quell-JSON angewendet wird.
    Mögliche Werte:
    • add: Dem Quell-JSON wurden Informationen hinzugefügt.
    • change: Informationen wurden im Quell-JSON aktualisiert.
    • trennen: Die Informationen wurden vom Quell-JSON getrennt.
    • nochange: Im Quell-JSON ist keine Änderung aufgetreten.

    Datentyp: Zeichenfolge

    dataObject.lineItems._commitObjectInfo Wird zurückgegeben, wenn die Änderung des Einzelpostens eine EINFÜGEN -Aktion ist. Enthält den Commit-Status und die sys_id des Objekts.

    Datentyp: Objekt

    "_commitObjectInfo": { 
      "status": "String", 
      "sys_id": "String" 
    }
    dataObject.lineItems._commitObjectInfo.status Status des Commit-Vorgangs, der für die jeweilige Entität ausgeführt wurde.
    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._commitObjectInfo.sys_id Sys_id des eingefügten Datensatzes. Die aktualisierte Tabelle kann je nach Entität variieren. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    dataObject.lineItems._glide_action Change-Aktion, die für den Einzelposten aufgetreten ist.
    Mögliche Werte:
    • LÖSCHEN: Informationen zwischen der Quell- und Ziel-JSON-Struktur wurden entfernt.
    • EINFÜGEN: Informationen wurden zwischen der Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • NO_CHANGE: Zwischen den Quell- und Ziel-JSON-Strukturen ist keine Änderung aufgetreten.
    • UPDATE: Informationen wurden zwischen der Quell- und JSON-Struktur 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 _glide_action angewendet wurde.

    Datentyp: Zeichenfolge

    dataObject.lineItems._state Status des Objekts.
    Mögliche Werte:
    • active: Das Entitätsobjekt befindet sich im Status „Aktiv“.
    • inaktiv: Das Entitätsobjekt befindet sich nicht im Status „Aktiv“.

    Datentyp: Zeichenfolge

    dataObject.lineItems.attributes Attribute des Einzelpostens. Zum Beispiel der Name und Wert des Attributs. Kann je nach Entität variierende Felder enthalten.

    Datentyp: Objekt

    "attributes": { 
      "<attribute_name>": {Object}
    }
    dataObject.lineItems.attributes<attribute_name> Name des Positionsattributs. Zum Beispiel der Name eines Accounts oder Kontakts. Kann variierende Felder der Entität enthalten.

    Datentyp: Objekt

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    dataObject.lineItems.attributes<attribute_name> .Wert Wert des Einzelpostenattributs.

    Datentyp: Zeichenfolge

    Datenobjekt.Einzelposten.Merkmale Liste der Merkmale, die dem Einzelposten zugeordnet sind. Die Merkmale können zwischen Entitäten variieren.

    Datentyp: Array von Objekten

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

    Datentyp: Zeichenfolge

    dataObject.lineItems.Merkmale.Attribute Ein oder mehrere Objekte, die Informationen zu Attributen enthalten, 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.Merkmale.Attribute<attribute_type> Name des Merkmalattributs Kann variierende Felder der Entität enthalten.

    Datentyp: Objekt

    "<attributes_type>": { 
     "<attribute_name>": {Object}
    }
    dataObject.lineItems.Merkmale.Attribute<attribute_type> .<attribute_name> Name des Merkmalattributs

    Datentyp: Objekt

    "<attribute_name>": { 
     "value": "String"
    }
    dataObject.lineItems.Merkmale.Attribute<attribute_type> .<attribute_name> .Wert Wert des Einzelpostenattributs.

    Datentyp: Zeichenfolge

    sys_id Sys_id des zugeordneten Merkmaldatensatzes.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    dataObject.lineItems[0].charakteristika.sys_id.wert Sys_id des zugeordneten Merkmaldatensatzes. Die aktualisierte Tabelle kann je nach Entität variieren. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    dataObject.lineItems[0].features.table Name der Tabelle, die den Merkmalsdatensatz enthält.

    Datentyp: Zeichenfolge

    dataObject.lineItems[0].lineItems Untergeordnete Positionen einer übergeordneten Position. Dieses Objekt hat das gleiche Format wie der Parameter lineItems.

    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 zugeordneten Elementdatensatzes.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    dataObject.lineItems[0].sys_id.value Sys_id eines zugeordneten Elementdatensatzes. Die aktualisierte Tabelle kann je nach Entität variieren, z. B. Bestellung oder Spezifikation. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    dataObject.sys_id Sys_id des zugeordneten Einzelposten-Datensatzes. Die aktualisierte Tabelle kann je nach Entität variieren. Beispiel: Auftrag [sn_ind_tmt_orm_order].

    Datentyp: Zeichenfolge

    dataObject.table 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 dem Zeichenfolgenwert message.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    Header-ID Sys_id des Zielentitätsdatensatzes, der von der commitInstance- Methode erstellt oder aktualisiert wurde.

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

    Datentyp: Zeichenfolge

    Nachricht Nachricht, die die Szenarien „Erfolg“, „Fehler“ oder „Teilweise erfolgreich“ beschreibt. Diese Nachricht ist mit dem Zeichenfolgenwert displayMessage identisch und kann von anderen Anwendungsaufrufen an die API verwendet werden.

    Datentyp: Zeichenfolge

    rootLineIDs Kommagetrennte Liste der sys_ids der Zielentitätsdatensätze, die von der commitInstance- Methode eingefügt, aktualisiert oder gelöscht wurden.

    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:

    • erfolgreich: Der Commit war erfolgreich.
    • Fehler: Der Glide-Vorgang für die Stammzeile oder den Header ist fehlgeschlagen. Lösen Sie den API-Flow Lead to Cash Core erneut aus.
    • Partial_success: Bei der Verarbeitung der gesamten JSON sind Fehler aufgetreten. Lesen Sie die Verarbeitung von Protokollen zur Behebung bestimmter Fehler.

    Datentyp: Zeichenfolge

    Das folgende Beispiel zeigt, wie die einzelnen LeadtoCashCore -Methoden verwendet werden, um die Details einer Quell-Ziel-Entität abzurufen, anzuwenden und zu bestätigen. In diesem Beispiel wird die Methode commitInstance() verwendet, um die geänderte JSON an eine Lead-to-Cash-Entität in der Instanz zu committen.

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