LeadtoCashCore: Bereichsbezogen

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 26 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 Sales and Order Management workflows.

    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 Ziel, zusätzlichesParam-Objekt, Objektkontext) 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, Objektkontext) 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, Objekt Kontext) 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 – createInstance(Zeichenfolge „headerSysIDs“, Zeichenfolge „lineSysIDs“, boolesches Ziel, zusätzlichesParam-Objekt, Objektkontext)

    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 für eine einzelne Header-ID mit mehreren Zeilen-IDs wird unterstützt, ohne dass „context.isMultiSelect“ auf „wahr“ festgelegt wird.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    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.
    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.
    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

    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

    context Objekt Optional. Bietet die Option, mehrere Instanzen mit dem Parameter context.isMultiSelect aufzurufen.
    "context": [
    {
     "isMultiSelect": "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

    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt, das Details des Entitätsdatensatzes enthält.

    Datentyp: Objekt

    {
      "items": {Object},
      "lineItems": [Array]
    }
    items Enthält ein Array ausgewählter Objekte, wenn context.isMultiSelect auf „wahr“ festgelegt ist.

    Datentyp: Objekt

    "items": {
        "attributes": {Object},
        "sys_id": {Object},
        "table": "String"
        },
    elemente._status Ein Objekt, das den Status des Objekts darstellt.

    Datentyp: Objekt

    "_state": {  
     "value": "String" 
    } 
    elemente._status.wert Der aktuelle 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

    elemente.attribute Attribute des Header-Datensatzes.

    Datentyp: Objekt

    "attributes": {
       "name": {
         "value": "String"
       }
    elemente.attribute.account Informationen zum Account, der dem Artikelattribut zugeordnet ist.
    "account": { 
      "value": "String" 
    }
    elemente.Attribute.Account.Wert Sys_id des Accounts, der dem Artikelattribut zugeordnet ist.

    Datentyp: Zeichenfolge

    items.attributes.name Name des Entitätsattributs des Headerdatensatzes. Zum Beispiel der Account bei Kontakt. Kann variierende Felder der Entität enthalten.

    Datentyp: Objekt

    "name": { 
      "value": "String" 
    }
    elemente.Attribute.Name.Wert Name des Elementattributs, das zum Header-Datensatz einer Entität gehört.

    Datentyp: Zeichenfolge

    item.sys_id Objekt mit sys_id-Informationen zum zugeordneten Artikeldatensatz.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    elemente.sys_id.wert Sys_id eines zugeordneten Elementdatensatzes.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    Einzelposten JSON-Objekt, das die Einzelpostendetails des Entitätsdatensatzes enthält.
    Hinweis:
    Verwenden Sie dieses Objekt im Anforderungsparameter sourceJSON für die Methode LeadtoCashCore – Delta(Objekt sourceJSON, Objekt „dirtyJSON“, Objekt zusätzlicheParams, Objektkontext).

    Einzelposten einer Entität. Zum Beispiel Bestellpositionen oder Angebotspositionen.

    Datentyp: Array von Objekten

    "lineItems": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "sys_id": {Object},
        "table": "String"
      }
    ]
    Positionselemente.Attribute Attribute des Einzelposten-Datensatzes. Attribute können zwischen Entitäten variieren.
    "attributes": {
      "account": {Object},
      "name": {Object}
    }

    Datentyp: Objekt

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

    Datentyp: Zeichenfolge

    lineItems.attributes.name Informationen zum Namen des Positionsattributs.
    "name": { 
      "value": "String" 
    }

    Datentyp: Objekt

    Positionselemente.Attribute.Name.Wert Name des Attributs.

    Datentyp: Zeichenfolge

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

    Datentyp: Array von Objekten

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    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"
            }  
          ]
    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. 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> .Wert Normalerweise die sys_id des zugeordneten Attributdatensatzes, kann jedoch eine beliebige aussagekräftige Textzeichenfolge sein, die den zugeordneten Attributtyp beschreibt.

    Datentyp: Zeichenfolge

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

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    Positionselemente.Merkmale.sys_id.Wert Sys_id des zugeordneten Merkmaldatensatzes.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

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

    Datentyp: Objekt

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    Positionselemente.sys_id Objekt mit sys_id-Informationen zum zugeordneten Einzelposten-Datensatz.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    Positionselemente.sys_id.Wert Sys_id eines zugeordneten Einzelposten-Datensatzes.

    Datentyp: Zeichenfolge

    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" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "8d669b6665ebf110f877d71ec56bf75c" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "8d669b6665ebf110f87d71ec56bf75c" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "sold_product": { 
                  "value": "4e03cda2ec873110f87727ef5883a2cf" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    } 

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

    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 : 3. 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.
    targetJSON Objekt Optional. Zusätzlich zu verwendende Parameter.
    Hinweis:
    Zusätzliche Parameter für commitInstance() sind erst für eine spätere Version verfügbar.
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    JSON-Objekt JSON-Objekt, das Details zum Zielentitätsdatensatz enthält.
    { 
      "error": "String",
      "headerID": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }

    Datentyp: Objekt

    Fehler Fehlermeldung, die den Fehler der commitInstance- Methode beschreibt.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

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

    Datentyp: Array von Zeichenfolgen

    status Statusnachricht mit dem Wert „Erfolg“ oder „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.

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

    Ausgabe:

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

    LeadtoCashCore – Delta(Objekt sourceJSON, Objekt „dirtyJSON“, Objekt zusätzlicheParams, Objektkontext)

    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.

    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

    context Objekt Optional. Bietet die Option, mehrere Instanzen mit dem Parameter context.isMultiSelect aufzurufen.
    "context": [
    {
     "isMultiSelect": "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

    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": [ 
        { 
          "table": "String", 
          "sys_id": {Object}, 
          "attributes": {Object}
          }, 
          "lineItems": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object} 
         ],
     "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ], 
     "_action": "String" 
        } 
      ] 
    } 
    _action Die auf das JSON-Quellobjekt angewendete Change-Aktion.

    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.
    • no-change: Im Quell-JSON ist keine Änderung aufgetreten.

    Datentyp: Zeichenfolge

    Merkmale Merkmale des Header-Entitätsdatensatzes. Kann je nach Entität variierende Felder enthalten.

    Datentyp: Array von Objekten

    "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ]
    eigenschaften.tabelle Tabellenname des Merkmaldatensatzes.

    Datentyp: Zeichenfolge

    eigenschaften.sys_id Sys_id-Objekt des Merkmaldatensatzes.

    Datentyp: Objekt

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

    Datentyp: Zeichenfolge

    eigenschaften.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": { 
     "<attribute_name>": { 
     "value": "String"
    }
    eigenschaften.attribute<attribute_name> Name des Attributs, das dem Merkmal zugeordnet ist. Zum Beispiel der Name und Wert des Attributs. Kann je nach Entität variierende Felder enthalten.

    Datentyp: Objekt

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    eigenschaften.attribute<attribute_name> .Wert Wert des angegebenen Attributs.

    Datentyp: Zeichenfolge

    eigenschaften._aktion Die Aktion, die auf das Merkmal angewendet wird, das dem Header-Entitätsdatensatz zugeordnet ist.

    Mögliche Werte:

    • add: Dem Merkmal wurden Informationen hinzugefügt.
    • change: Informationen wurden für das Merkmal aktualisiert.
    • trennen: Informationen wurden vom Merkmal getrennt.
    • no-change: Am Merkmal wurde keine Änderung vorgenommen.
    Einzelposten Einzelposten einer Entität. Zum Beispiel Bestellpositionen oder Angebotspositionen.

    Datentyp: Array von Objekten

    "lineItems": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    Positionselemente._Aktion Die 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.
    • no-change: Im Quell-JSON ist keine Änderung aufgetreten.
    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>": { 
     "value": "String"
    }
    Einzelposten.Attribute<attribute_name> Objekt, das den Namen des Einzelpostenattributs enthält. Zum Beispiel der Name eines Accounts oder Kontakts. Kann variierende Felder der Entität enthalten.

    Datentyp: Objekt

    "attributes": { 
      "name": {Object}
    Einzelposten.Attribute<attribute_name> .Wert Namenswert des Positionsattributs.

    Datentyp: Objekt

    "attributes": { 
      "name": { 
      "value": "String" 
    }
    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 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"
            }  
          ]
    Positionselemente.Merkmale._Aktion Die Aktion, die auf den Merkmalsdatensatz angewendet wird, der zu dem Einzelposten gehört.

    Mögliche Werte:

    • add: Dem Merkmal wurden Informationen hinzugefügt.
    • change: Informationen wurden für das Merkmal aktualisiert.
    • trennen: Informationen wurden vom Merkmal getrennt.
    • no-change: Am Merkmal wurde keine Änderung vorgenommen.
    Positionselemente.Merkmale.Attribute Ein oder mehrere Objekte, die Informationen zu Attributen enthalten, die dem Merkmalsdatensatz zugeordnet sind. Die<attribute type> können je nach Datensätzen oder Funktionalität, die dem Merkmal zugeordnet sind, unterschiedliche Werte sein.

    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<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 Objekt, das die sys_id des zugeordneten Merkmaldatensatzes enthält.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    Positionselemente.Merkmale.sys_id.Wert Sys_id-Wert des zugeordneten Merkmaldatensatzes.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

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

    Datentyp: Objekt

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    Positionselemente.sys_id Objekt, das die sys_id des zugeordneten Artikeldatensatzes enthält.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    Positionselemente.sys_id.Wert Sys_id-Wert eines zugeordneten Elementdatensatzes.

    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() aufgerufenund 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, Objekt Kontext)

    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

    context Objekt Optional. Bietet die Option, mehrere Instanzen mit dem Parameter context.isMultiSelect aufzurufen.
    "context": [
    {
     "isMultiSelect": "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

    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Change, der aufgetreten ist und von der Quelle auf die Zielentitäts-JSON-Objekte auf jeder Objekt-, Header-Zeile, untergeordneten Zeilen und Merkmalsebene der Lead-to-Cash-Entität angewendet wurde.

    Datentyp: Objekt

    { 
      "sys_id": "String", 
      "table": "String", 
      "_glide_action": "String", 
      "_source_object": {Object}, 
      "lineItems": [ 
        { 
          "sys_id": "String", 
          "table": "String", 
          "attributes": { 
            "account": {Object}, 
            "short_description": {Object} 
          }, 
          "_glide_action": "String", 
          "_source_object": { 
            "sys_id": "String", 
            "table": "String" 
          }, 
          "lineItems": [Array], 
          "characteristics": [ 
            { 
              "sys_id": "String", 
              "table": "String", 
              "attributes": {Object}
                "<attribue_name>": {Object}
                  "value": "String" 
              "_glide_action": "INSERT", 
              "_source_object": {Object} 
            } 
          ] 
        }, 
      "state": {Object}
       ]
    }
    glide_action Gibt die Änderung an, die auf Elementebene zwischen Quell- und Ziel-JSON 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.
    Einzelposten Einzelposten einer Entität. Zum Beispiel Bestellpositionen oder Angebotspositionen.

    Datentyp: Array von Objekten

    "lineItems": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    Positionselemente._glide_aktion Change-Aktion, die für den Einzelposten aufgetreten ist.
    Mögliche _glide_action-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.
    Positionselemente._source_object Das JSON-Objekt des Quellentitätsdatensatzes, auf den glide_action angewendet wurde. Dieses Objekt kann zwischen Entitäten variieren.

    Datentyp: Objekt

    Positionselemente._Status Ein Objekt, das den Status des Objekts darstellt.

    Datentyp: Objekt

    "_state": {  
     "value": "String" 
    } 
    Positionselemente._Status.Wert Der aktuelle 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

    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>": { 
     "value": "String"
    }
    Einzelposten.Attribute<attribute_name> Objekt, das den Namen des Einzelpostenattributs enthält. Zum Beispiel der Name eines Accounts oder Kontakts. Kann variierende Felder der Entität enthalten.

    Datentyp: Objekt

    "attributes": { 
      "name": {Object}
    Einzelposten.Attribute<attribute_name> .Wert Namenswert des Positionsattributs.

    Datentyp: Objekt

    "attributes": { 
      "name": { 
      "value": "String" 
    }
    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 Eine 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": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    Positionselemente.Merkmale.Attribute Ein oder mehrere Objekte, die Informationen zu Attributen enthalten, die dem Merkmalsdatensatz zugeordnet sind. Die<attribute type> können je nach Datensätzen oder Funktionalität, die dem Merkmal zugeordnet sind, unterschiedliche Werte sein.

    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> .Wert Normalerweise die sys_id des zugeordneten Attributdatensatzes, kann jedoch eine beliebige aussagekräftige Textzeichenfolge sein, die den zugeordneten Attributtyp beschreibt.

    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 Objekt, das die sys_id des zugeordneten Merkmaldatensatzes enthält.

    Datentyp: Objekt

    "sys_id": { 
      "value": "String" 
     }
    Positionselemente.Merkmale.sys_id.Wert Sys_id-Wert des zugeordneten Merkmaldatensatzes.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

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

    Datentyp: Objekt

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    Positionselemente.sys_id Objekt, das die sys_id des zugeordneten Artikeldatensatzes enthält.

    Datentyp: Objekt

    "sys_id": {
      "value": "String"
    }
    Positionselemente.sys_id.Wert Sys_id-Wert eines zugeordneten Elementdatensatzes.

    Datentyp: Zeichenfolge

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

    Datentyp: Zeichenfolge

    _source_objectDas JSON-Quellobjekt, auf das die Änderungen angewendet wurden. Die Objektstruktur kann je nach Entität variieren.

    Datentyp: Objekt

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

    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 : 9. Parameter
    Name Typ Beschreibung
    sourceToTargetConfigID Zeichenfolge Zuordnungskonfigurations-ID für die Quelle-zu-Ziel-Zuordnung. Befindet sich in der Tabelle „Lead-to-Cash – Entitätszuordnung“ [sn_l2c_core_entity_mapping].
    context Objekt Optional. Zusätzliche Parameteroptionen zum Anzeigen von Attributwerten und zum gleichzeitigen Aufrufen von mehr als einer Instanz.
    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

    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

    Tabelle : 10. Ergebnisse
    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)