LeadtoCashCore – Scoped

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 16 Minuten Lesedauer
  • Erstellen Sie Workflows im Lebenszyklus Lead to Cash Core.

    Mit den LeadtoCashCore -Skripteinbindungen können Sie einen Lead-to-Cash-Workflow programmgesteuert orchestrieren. In diesem Workflow ordnen Sie einer Zielentität eine Quellentität zu. Eine Entität ist 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 Inhalt entspricht. Die von dieser API bereitgestellte Funktionalität stellt die Entitätszuordnungsfunktion dar, die in der Lead-to-Cash-Funktion verfügbar ist. Weitere Informationen finden Sie unter Sales and Order Management workflows.

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

    Um einen Lead-to-Cash-API-Workflow abzuschließen, übergeben Sie Rückgabeparameter von einer LeadtoCashCore-Skripteinbindung an die nächste. Normalerweise rufen Sie die Skripteinbindungen in der folgenden Reihenfolge auf:

    1. LeadtoCashCore – createInstance(String headerSysID, String lineSysIDs, Boolean isTarget, Object additionalParams)Ruft die Daten einer bestimmten Entität ab. Zum Beispiel auftragsbezogene Informationen, einschließlich Einzelposten.
    2. LeadtoCashCore –delta(Object sourceJSON, ObjectdirtyJSON, Object additionalParams)Vergleicht zwei JSON-Eingaben und identifiziert alle zwischen ihnen aufgetretenen Änderungen. Zum Beispiel, wenn etwas in einer Entität hinzugefügt, gelöscht oder geändert wird.
    3. LeadtoCashCore – Effekt(Object sourceJSON, Object targetJSON, Object additionalParams)Transformiert das JSON-Quellziel in ein Zielobjekt.
    4. LeadtoCashCore – commitInstance(Object targetJSON, Object additionalParams)– Übernimmt die in der Skripteinbindung „ effect() “ vorgenommene Transformation in die Datenbank.
    Hinweis:
    Bei Bedarf kann Delta () in diesem Workflow übersprungen werden. Der Aufruf dieser APIs in falscher Reihenfolge führt jedoch zu einem nicht erfolgreichen Workflow (z. B. wenn commitInstance() und dann Effekt()aufgerufen werden).

    Erweiterungspunkt

    Jede dieser Skripteinbindungen verwendet den geskripteten Erweiterungspunkt PrimitiveUtil, der Methoden zum Abrufen des Erweiterungspunktservice bereitstellt und die Skripteinbindungen gemäß den verfügbaren Parametern aufruft. Sie müssen diesen Erweiterungspunkt zuerst mit der Methode getPrimitivesEPService() angeben, die die Tabelle angibt, aus der Quell- und Zielinformationen abgerufen werden sollen (weitere Informationen finden Sie unter LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID). Sobald diese beiden Parameter im Skript angegeben sind, können Sie die Skripteinbindungen createInstance(), Delta(), Effekt()oder commitInstance() je nach Bedarf für Ihren Anwendungsfall aufrufen.

    Beispiel „Lead to Cash Core“-Workflow-Skript

    Obwohl jede der verfügbaren Lead-to-Cash-Core-Skripteinbindungen detaillierter dokumentiert ist, können Sie sich auf das folgende Beispiel beziehen, um zu sehen, wie diese Skripts zusammen verwendet werden, um einen Lead-to-Cash-Workflow zu erstellen.

    var util = new sn_l2c_core.PrimitiveUtil(); 
     
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order'); 
     
    //CREATE INSTANCE
    var SPInstance = service.createInstance(null, '06670ba3c3adbd501caee74bb0013166'); 
    gs.info("SPInstance: "+JSON.stringify(SPInstance)); 
     
    // DELTA 
    // construct the dirtyJSON as required 
    var deltaOutput = service.delta(SPInstance, dirtyJSON);/ 
    gs.info("deltaOutput: "+JSON.stringify(deltaOutput)); 
     
    // EFFECT 
    var effectOutput = service.effect(deltaOutput); 
    gs.info("effectOutput: " + JSON.stringify(effectOutput)); 
     
    // COMMIT INSTANCE
    var commitOutput = service.commitInstance(effectOutput); 
    gs.info("commitOutput: " + JSON.stringify(commitOutput)); 
    In unserem Beispiel hat ein Kunde ein verkauftes Produkt erworben, fordert jedoch jetzt eine Änderung des vorhandenen verkauften Produkts an. Die erforderlichen Änderungen werden in Form eines „dirtySJON“ bereitgestellt. Um diese Änderungen anzuwenden, haben wir die Lead to Cash Core-Skripteinbindungen in der folgenden Reihenfolge aufgerufen:
    1. Beim ersten Aufruf werden die vorhandenen Informationen zu verkauften Produkten mit createInstance() abgerufen.
    2. Anschließend vergleichen wir diese sourceJSON mit der unsauberen JSON mithilfe von Delta(), was eine Delta-JSON zurückgibt.
    3. Das Delta-JSON-Objekt wird dann mithilfe von Effekt()in ein JSON-Objekt vom Typ Order umgewandelt.
    4. Die Auftrags-JSON wird mit commitInstance() an die Datenbank übergeben und aktualisiert die Tabelle „Lead to Cash Core Entity“.

    LeadtoCashCore – getPrimitivesEPService(String sourceToTargetConfigID)

    Löst den PrimitivUtil-Erweiterungspunkt aus.

    Um eine der verfügbaren Methoden in den Skripteinbindungen der LeadtoCash Core-API 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
    sourceToTargetConfigID Zeichenfolge Die Zuordnungskonfigurations-ID für die Quelle-zu-Ziel-Zuordnung. Befindet sich in der Tabelle „Lead to Cash – Entitätszuordnung“ [sn_l2c_core_entity_mapping].
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Beispiel ruft den Erweiterungspunkt PrimitiveUtil() auf und wählt eine Implementierung basierend auf sourceToTargetConfigID eines L2C-Flows, der Zuordnungskonfigurations-ID in der Tabelle sn_l2c_core_entity_mapping aus.

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

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

    Gibt die Daten einer bestimmten Lead-to-Cash-Entität mit einem JSON-Objekt zurück, das verschiedene Details wie Header, Linien, untergeordnete Linien, Merkmale und deren Attribute enthält.

    Die Ausgabe-JSON von createInstance() kann in nachfolgenden APIs des Lead-to-Cash-Core-Workflows wie Delta(), Effekt()und CommitInstance() verwendet werden.

    Für die LeadtoCashCore-API müssen Sie zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode getPrimitivesEPService() aufrufen, um die Implementierung auszulösen, bevor Sie createInstance() in Ihrem Skript aufrufen.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    headerSysID Zeichenfolge Die Header-sys_id einer Entität, aus der Entitätsdaten abgerufen werden sollen. Erforderlich, wenn Sie lineIDnicht angeben.
    Hinweis:
    In der Anforderung ist mindestens ein Parameter headerSysID oder LineSysIDs erforderlich.
    lineSysID Zeichenfolge Die sys_id des Einzelpostens einer Entität, aus der Entitätsdaten abgerufen werden sollen. Erforderlich, wenn Sie headerIDnicht angeben.
    Hinweis:
    In der Anforderung ist mindestens ein Parameter headerSysID oder LineSysIDs erforderlich.
    ist Ziel Boolean Optional. Kennzeichnung, die bestimmt, ob Daten der Zielentität abgerufen werden sollen.
    Gültige Werte:
    • true: Ruft Daten der Zielentität ab.
    • false: Ruft keine Daten der Zielentität ab.

    Standardwert: false

    additionalParams Objekt Optional. Gibt zusätzliche zu verwendende Parameter an.
    "additionalParams": { 
        “skipLines”:”Boolean” 
    } 
    zusätzlicheParameter.Zeilen überspringen Boolean

    Optional. Kennzeichnung, die angibt, ob Einzelposten einer Entität abgerufen werden sollen.

    Gültige Werte:
    • true: überspringt die Einzelposten einer Entität.
    • false: überspringt die Einzelposten einer Entität nicht.

    Standardwert: false

    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt, das Details des Entitätsdatensatzes enthält.
    Hinweis:
    Diese JSON wird im Anforderungsparameter sourceJSON von LeadtoCashCore –delta(Object sourceJSON, ObjectdirtyJSON, Object additionalParams)verwendet.

    Datentyp: Objekt

    { 
      "table": "string", 
      "sys_id": { 
        "value": "string" 
      }, 
      "attributes": { 
        "contact": { 
          "value": "string" 
        }, 
        "account": { 
          "value": "string" 
        } 
      }, 
      "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "string" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": {}, 
              "lineItems": [], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    } 
    Tabelle Tabellenname des Header-Datensatzes einer Lead-to-Cash-Entität.

    Datentyp: Zeichenfolge

    sys_id Sys_id des Header-Datensatzes.
    "sys_id": { 
                "value": "string" 
              }

    Datentyp: Objekt

    sys_id.value Der sys_id-Wert des Header-Datensatzes.

    Datentyp: Zeichenfolge

    attributes Attribute des Header-Datensatzes.
    "attributes": { 
            "name": { 
              "value": "string" 
            }

    Datentyp: Objekt

    Attribute.<field_name> Attribute des Header-Datensatzes. Zum Beispiel der Account oder Kontakt usw. Kann unterschiedliche Felder der Entität enthalten.
    
          "attributes": { 
            "name": { 
              "value": "string" 
            }

    Datentyp: Objekt

    Attribute.<field_name> .Wert Wert des Attributs, das zum Header-Datensatz einer Entität gehört.

    Datentyp: Zeichenfolge

    Einzelposten Einzelposten einer Entität. Zum Beispiel Bestellpositionen, Angebotspositionen usw.
    "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "string" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }

    Datentyp: Array

    lineItems.table Tabellenname des Einzelpostens einer Lead-to-Cash-Entität.

    Datentyp: Zeichenfolge

    lineItems.sys_id Sys_id des Einzelposten-Datensatzes.
    "sys_id": { 
                "value": "string" 
              }, 

    Datentyp: Objekt

    lineItems.sys_id.value Der sys_id-Wert des Einzelposten-Datensatzes.

    Datentyp: Zeichenfolge

    lineItems.attributes Attribute des Einzelposten-Datensatzes.
    "attributes": { 
            "name": { 
              "value": "string" 
            }
    }

    Datentyp: Objekt

    lineItems.attributes<field_name> Attribute des Einzelposten-Datensatzes. Zum Beispiel der Account oder Kontakt usw. Kann je nach Entität unterschiedliche Felder enthalten.
    "name": { 
              "value": "string" 
            }

    Datentyp: Objekt

    lineItems.attributes<field_name> .Wert Wert des Attributs, das zum Einzelposten einer Entität gehört.

    Datentyp: Zeichenfolge

    Einzelposten.Einzelposten Untergeordnete Einzelposten einer übergeordneten Einzelposition.
    "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }
    ]

    Datentyp: Objekt

    „lineItems.characteristics“. Merkmale eines Einzelpostens.
    "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                } 
              } 
            } 
          ] 
        } 
      ] 

    Datentyp: Array

    Eigenschaften.Tabelle Tabellenname des Merkmalsdatensatzes einer Lead-to-Cash-Entität.

    Datentyp: Zeichenfolge

    Eigenschaften.sys_id Sys_id eines Merkmalsdatensatzes.
    "sys_id": { 
                "value": "string" 
              }

    Datentyp: Objekt

    Eigenschaften.sys_id.value Der sys_id-Wert eines Merkmalsdatensatzes.

    Datentyp: Zeichenfolge

    Eigenschaften.Attribute Attribute des Merkmaldatensatzes.
    "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }

    Datentyp: Objekt

    Eigenschaften.Attribute<field_name> Attribute des Merkmaldatensatzes. Zum Beispiel der Name oder Merkmalswert usw. Kann je nach Entität unterschiedliche Merkmale enthalten.
    { 
                  "value": "string" 
                }

    Datentyp: Objekt

    Eigenschaften.Attribute<field_name> .Wert Wert des Attributs, das zum Merkmalsdatensatz einer Entität gehört.

    Datentyp: Zeichenfolge

    Das folgende Beispielskript ruft die createInstance- API 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 APIs of the flow such as Delta, Effect and Commit Instance

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

    LeadtoCashCore –delta(Object sourceJSON, ObjectdirtyJSON, Object additionalParams)

    Vergleicht die JSON-Daten der Quelle und der geänderten Quelle einer Lead-to-Cash-Entität und gibt ein JSON-Objekt zurück, in dem alle an der JSON-Quelle vorgenommenen Änderungen aufgeführt sind, z. B. Ergänzungen, Löschungen oder Änderungen.

    Für die LeadtoCashCore-API müssen Sie zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode getPrimitivesEPService() aufrufen, um die Implementierung auszulösen, bevor Sie Delta() in Ihrem Skript aufrufen.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    sourceJSON Objekt Quell-JSON der Entität „Lead-to-Cash“.
    „dirtyJSON“. Objekt Die geänderte Quell-JSON der Entität „Lead-to-Cash“.
    additionalParams Objekt Optional. Gibt zusätzliche zu verwendende Parameter an. Derzeit sind keine zusätzlichen Parameter verfügbar, werden aber in Zukunft verfügbar sein.
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt, das Details des Entitätsdatensatzes enthält.

    Datentyp: Objekt

    { 
      "lineItems": [ 
        { 
          "table": "string", 
          "sys_id": { 
            "value": "number" 
          }, 
          "attributes": { 
            "name": { 
              "value": "string" 
            }, 
            "account": { 
              "value": "string" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "number" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "string" 
                }, 
                "account": { 
                  "value": "string" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "string", 
                  "sys_id": { 
                    "value": "number" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "string" 
                    }, 
                    "account": { 
                      "value": "string" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "string" 
                } 
              ], 
              "characteristics": [], 
              "_action": "string" 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                }, 
                "action": { 
                  "value": "string" 
                } 
              }, 
              "_action": "string" 
            } 
          ], 
          "_action": "string" 
        } 
      ] 
    } 
    _Aktion Die auf das Quell-JSON angewendete Aktion. Mögliche Werte:
    • add: Informationen wurden der JSON-Quelle hinzugefügt.
    • Change-Informationen wurden in der JSON-Quelle aktualisiert.
    • trennen – Informationen wurden von der JSON-Quelle getrennt.
    • no-change: Im Quell-JSON ist keine Änderung aufgetreten.
    Tabelle Tabellenname des Header-Datensatzes einer Lead-to-Cash-Entität.

    Datentyp: Zeichenfolge

    sys_id Sys_id des Header-Datensatzes.
    "sys_id": { 
                "value": "string" 
              }

    Datentyp: Objekt

    sys_id.value Der sys_id-Wert des Header-Datensatzes.

    Datentyp: Zeichenfolge

    attributes Attribute des Header-Datensatzes.
    "attributes": { 
            "name": { 
              "value": "string" 
            }

    Datentyp: Objekt

    Attribute.<field_name> Attribute des Header-Datensatzes. Zum Beispiel der Account oder Kontakt usw. Kann unterschiedliche Felder der Entität enthalten.
    
          "attributes": { 
            "name": { 
              "value": "string" 
            }

    Datentyp: Objekt

    Attribute.<field_name> .Wert Wert des Attributs, das zum Header-Datensatz einer Entität gehört.

    Datentyp: Zeichenfolge

    Einzelposten Einzelposten einer Entität. Zum Beispiel Bestellpositionen, Angebotspositionen usw.
    "lineItems": [ 
                { 
                  "table": "string", 
                  "sys_id": { 
                    "value": "number" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "string" 
                    }, 
                    "account": { 
                      "value": "string" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "string" 
                } 
              ], 
              "characteristics": [], 
              "_action": "string" 
            } 
          ], 

    Datentyp: Array

    lineItems._action Die Aktion, die auf den Einzelposten in der JSON-Quelle angewendet wird. Mögliche Werte:
    • Hinzufügen: Informationen wurden dem Einzelposten hinzugefügt.
    • Change – Informationen wurden für den Einzelposten aktualisiert.
    • trennen – Informationen wurden von der Einzelposition getrennt.
    • Keine Änderung: Für den Einzelposten ist keine Änderung aufgetreten.
    lineItems.table Tabellenname des Einzelpostens einer Lead-to-Cash-Entität.

    Datentyp: Zeichenfolge

    lineItems.sys_id Sys_id des Einzelposten-Datensatzes.
    "sys_id": { 
                "value": "string" 
              }, 

    Datentyp: Objekt

    lineItems.sys_id.value Der sys_id-Wert des Einzelposten-Datensatzes.

    Datentyp: Zeichenfolge

    lineItems.attributes Attribute des Einzelposten-Datensatzes.
    "attributes": { 
            "name": { 
              "value": "string" 
            }
    }

    Datentyp: Objekt

    lineItems.attributes<field_name> Attribute des Einzelposten-Datensatzes. Zum Beispiel der Account oder Kontakt usw. Kann je nach Entität unterschiedliche Felder enthalten.
    "name": { 
              "value": "string" 
            }

    Datentyp: Objekt

    lineItems.attributes<field_name> .Wert Wert des Attributs, das zum Einzelposten einer Entität gehört.

    Datentyp: Zeichenfolge

    Einzelposten.Einzelposten Untergeordnete Einzelposten einer übergeordneten Einzelposition.
    "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }
    ]

    Datentyp: Objekt

    „lineItems.characteristics“. Merkmale eines Einzelpostens.
    "characteristics": [ 
            { 
              "table": "string", 
              "sys_id": { 
                "value": "string" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "string" 
                }, 
                "characteristic_option": { 
                  "value": "string" 
                }, 
                "sold_product": { 
                  "value": "string" 
                }, 
                "action": { 
                  "value": "string" 
                } 
              }, 
              "_action": "string" 
            } 
          ], 

    Datentyp: Array

    Eigenschaften._Aktion Die auf das Merkmal angewendete Aktion. Mögliche Werte:
    • add: Dem Merkmal wurden Informationen hinzugefügt.
    • Change-Informationen wurden für das Merkmal aktualisiert.
    • trennen – Informationen wurden vom Merkmal getrennt.
    • Keine Änderung: Am Merkmal ist keine Änderung aufgetreten.
    Eigenschaften.Tabelle Tabellenname des Merkmalsdatensatzes einer Lead-to-Cash-Entität.

    Datentyp: Zeichenfolge

    Eigenschaften.sys_id Sys_id eines Merkmalsdatensatzes.
    "sys_id": { 
                "value": "string" 
              }

    Datentyp: Objekt

    Eigenschaften.sys_id.value Der sys_id-Wert eines Merkmalsdatensatzes.

    Datentyp: Zeichenfolge

    Eigenschaften.Attribute Attribute des Merkmaldatensatzes.
    "attributes": { 
                "sys_id": { 
                  "value": "string" 
                }

    Datentyp: Objekt

    Eigenschaften.Attribute<field_name> Attribute des Merkmaldatensatzes. Zum Beispiel der Name oder Merkmalswert usw. Kann je nach Entität unterschiedliche Merkmale enthalten.
    { 
                  "value": "string" 
                }

    Datentyp: Objekt

    Eigenschaften.Attribute<field_name> .Wert Wert des Attributs, das zum Merkmalsdatensatz einer Entität gehört.

    Datentyp: Zeichenfolge

    Das folgende Beispiel zeigt, wie die Delta-API erstellt wird, indem zuerst PrimitivUtil und getPrimitiesEPService aufgerufen und dann die Quell- und Ziel-JSON-Objekte 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" 
        } 
      ] 
    } 

    LeadtoCashCore – Effekt(Object sourceJSON, Object targetJSON, Object additionalParams)

    Transformiert die JSON-Quellstruktur einer bestimmten Lead-to-Cash-Entität und wendet sie auf das targetJSON der anderen Lead-to-Cash-Entität an. Das zurückgegebene JSON-Objekt kann dann mithilfe der commitInstance()-Skripteinbindung in die Datenbank einer Lead-to-Cash-Entität übernommen werden.

    Die Ausgabe-JSON von Delta() kann in der Anforderung „effect()“ verwendet werden. Dann kann jede JSON-Ausgabe von „effect()“ mit commitInstance() an die Datenbank übergeben werden, um den Lead-to-Cash-Workflow abzuschließen.

    Für die LeadtoCashCore-API müssen Sie zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode getPrimitivesEPService() aufrufen, um die Implementierung auszulösen, bevor Sie in Ihrem Skript „effect() “ aufrufen.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    sourceJSON Objekt JSON mit den Details der Quellentität.
    targetJSON Objekt JSON mit Details zur Zielentität.
    additionalParams Objekt Optional. Gibt zusätzliche zu verwendende Parameter an. Derzeit sind keine zusätzlichen Parameter verfügbar, werden aber in Zukunft verfügbar sein.
    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt, das den Change enthält, der aufgetreten ist und von der Quelle auf die Zielentität angewendet wurde. JSON-Objekte bei jedem der Objekte, Header/Zeilen/untergeordneten Zeilen/Merkmale der Lead-to-Cash-Entität. Mögliche Werte:
    • Einfügen: Informationen wurden zwischen Quell- und Ziel-JSON-Strukturen hinzugefügt.
    • Update: Informationen wurden zwischen Quell- und JSON-Strukturen geändert.
    • Löschen: Informationen zwischen Quell- und Ziel-JSON-Strukturen wurden entfernt.

    Das folgende Beispiel zeigt, wie Transformationslogik mit der Ausgabe der Delta() -API angewendet wird:

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

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

    LeadtoCashCore – commitInstance(Object targetJSON, Object additionalParams)

    Übernimmt das JSON-Objekt einer bestimmten Lead-to-Cash-Entität in die Datenbank und gibt eine Statusmeldung mit aktualisierten Informationen zurück. Durch diesen Commit werden Änderungen an der Kernentitätstabelle „Lead to Cash“ automatisch angewendet.

    Für die LeadtoCashCore-API müssen Sie zuerst den geskripteten Erweiterungspunkt PrimitiveUtil() mit der Dienstprogrammmethode getPrimitivesEPService() aufrufen, um die Implementierung auszulösen, bevor Sie commitInstance() in Ihrem Skript aufrufen.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    targetJSON Objekt Das JSON-Objekt, das „glide_action“ einer Zielentität für den Commit enthält. Die Ausgabe der Effekt-()- API kann hier übergeben werden.
    Hinweis:
    „glide_action“ identifiziert die Change-Aktion, die zwischen der Quell- und Ziel-JSON einer Lead-to-Cash-Entität aufgetreten ist. Weitere Informationen finden Sie im Abschnitt „Rückgaben“ in LeadtoCashCore – Effekt(Object sourceJSON, Object targetJSON, Object additionalParams).
    additionalParams Objekt Optional. Gibt zusätzliche zu verwendende Parameter an. Derzeit sind keine zusätzlichen Parameter verfügbar, werden aber in Zukunft verfügbar sein.
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    JSON-Objekt Ein JSON-Objekt mit Details zum Zielentitätsdatensatz.
    { 
      "status": "string", 
      "error": "string", 
      "headerID": "string", 
      "rootLineIDs": [ 
        "string" 
      ] 
    }

    Datentyp: Objekt

    status Statusmeldung mit dem Wert „Erfolg/Fehler“ der commitInstance- API.

    Datentyp: Zeichenfolge

    Fehler Fehlermeldung bei Fehler der commitInstance- API.

    Datentyp: Zeichenfolge

    Header-ID Header-ID des Zielentitätsdatensatzes, der mit der commitInstance- API erstellt oder aktualisiert wurde.

    Datentyp: Zeichenfolge

    rootLineIDs Stammzeilen-IDs der Zielentitätsdatensätze, die mit der commitInstance- API eingefügt, aktualisiert oder gelöscht wurden.

    Datentyp: Array von Zeichenfolgen

    Das folgende Beispiel zeigt, wie jede Lead-to-Cash-Core-API zum Abrufen, Anwenden und Festlegen der Details einer Quelle-zu-Ziel-Entität verwendet wird.

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