LeadtoCashCore: Bereichsbezogen
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:
- 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.
- 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.
- LeadtoCashCore – Wirkung (Objekt sourceJSON, Objekt targetJSON, Object zusätzlicheParams, Objekt Kontext) Transformiert das JSON-Quellziel in ein Zielobjekt.
- LeadtoCashCore – commitInstance(Object targetJSON, Object zusätzlicheParams) – Legt die in der Skripteinbindung „ effect() “ vorgenommene Transformation in der Datenbank fest.
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));
- Beim ersten Aufruf werden die vorhandenen Informationen zu verkauften Produkten mit der Methode createInstance() abgerufen.
- Anschließend vergleichen wir dieses Quell-JSON mit dem geänderten JSON mithilfe der Delta() -Methode, die ein Delta-JSON zurückgibt.
- Das JSON-Objekt delta() wird dann mithilfe der Wirkung () -Methode in ein JSON-Objekt vom Typ „Reihenfolge“ umgewandelt.
- 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().
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.
| 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() 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() 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:
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:
Standardwert: false |
| context | Objekt | Optional. Bietet die Option, mehrere Instanzen mit dem Parameter context.isMultiSelect aufzurufen. |
| Kontext.istMehrfachauswahl | Boolean | Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe zum Erstellen der Instanz übergeben werden sollen. Gültige Werte:
Standardwert: false |
| Typ | Beschreibung |
|---|---|
| JSON-Objekt | Ein JSON-Objekt, das Details des Entitätsdatensatzes enthält. Datentyp: Objekt |
| items | Enthält ein Array ausgewählter Objekte, wenn context.isMultiSelect auf „wahr“ festgelegt ist. Datentyp: Objekt |
| elemente._status | Ein Objekt, das den Status des Objekts darstellt. Datentyp: Objekt |
| elemente._status.wert | Der aktuelle Status des Objekts. Mögliche Werte:
Datentyp: Zeichenfolge |
| elemente.attribute | Attribute des Header-Datensatzes. Datentyp: Objekt |
| elemente.attribute.account | Informationen zum Account, der dem Artikelattribut zugeordnet ist. |
| 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 |
| 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 |
| 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 |
| Positionselemente.Attribute | Attribute des Einzelposten-Datensatzes. Attribute können zwischen Entitäten variieren.Datentyp: Objekt |
| Positionselemente.Attribute.Account | Informationen zum Account, der dem Einzelpostenattribut zugeordnet ist. |
| Positionselemente.Attribute.Account.Wert | Sys_id des Accounts, der dem Einzelpostenattribut zugeordnet ist. Datentyp: Zeichenfolge |
| lineItems.attributes.name | Informationen zum Namen des Positionsattributs.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 |
| Positionselemente.Merkmale | Liste der Merkmale, die dem Einzelposten zugeordnet sind. Die Merkmale können zwischen Entitäten variieren. Datentyp: Array von Objekten |
| 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 |
| 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 |
| 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 |
| Positionselemente.sys_id | Objekt mit sys_id-Informationen zum zugeordneten Einzelposten-Datensatz. Datentyp: Objekt |
| 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“.
| 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. |
| Typ | Beschreibung |
|---|---|
| JSON-Objekt | JSON-Objekt, das Details zum Zielentitätsdatensatz enthält.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.
| Name | Typ | Beschreibung |
|---|---|---|
| sourceJSON | Objekt | JSON-Objekt der Entität „Lead-to-Cash“ der Quelle. Hinweis: Verwenden Sie die Methode LeadtoCashCore – createInstance(Zeichenfolge „headerSysIDs“, Zeichenfolge „lineSysIDs“, boolesches Ziel, zusätzlichesParam-Objekt, Objektkontext), um das Quell-JSON einer Entität abzurufen. |
| 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. |
| zusätzlicheParams.delta_ignore_attributes<table_name> | Zeichenfolge | Der Name der Tabelle und die zugehörigen Attribute, die ignoriert werden sollen. Beispiel: |
| ZusätzlicheParams.loadDisplayValue | Boolean | Optional. Kennzeichnung, die angibt, ob der Anzeigewert für jedes Attribut geladen werden soll. Gültige Werte:
Standardwert: false |
| context | Objekt | Optional. Bietet die Option, mehrere Instanzen mit dem Parameter context.isMultiSelect aufzurufen. |
| Kontext.istMehrfachauswahl | Boolean | Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe zum Erstellen der Instanz übergeben werden sollen. Gültige Werte:
Standardwert: false |
| 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 |
| _action | Die auf das JSON-Quellobjekt angewendete Change-Aktion. Mögliche Werte:
Datentyp: Zeichenfolge |
| Merkmale | Merkmale des Header-Entitätsdatensatzes. Kann je nach Entität variierende Felder enthalten. Datentyp: Array von Objekten |
| eigenschaften.tabelle | Tabellenname des Merkmaldatensatzes. Datentyp: Zeichenfolge |
| eigenschaften.sys_id | Sys_id-Objekt des Merkmaldatensatzes. Datentyp: Objekt |
| 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 |
| 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 |
| 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:
|
| Einzelposten | Einzelposten einer Entität. Zum Beispiel Bestellpositionen oder Angebotspositionen. Datentyp: Array von Objekten |
| Positionselemente._Aktion | Die Change-Aktion, die auf das Positionselement der Quell-JSON angewendet wird. Mögliche Werte:
|
| Positionselemente.Attribute | Attribute des Einzelpostens. Zum Beispiel der Name und Wert des Attributs. Kann je nach Entität variierende Felder enthalten. Datentyp: Objekt |
| 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 |
| Einzelposten.Attribute<attribute_name> .Wert | Namenswert des Positionsattributs. Datentyp: Objekt |
| Positionselemente.Attribute.Account | Informationen zum Account, der dem Artikelattribut zugeordnet ist. Datentyp: Objekt |
| 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 |
| Positionselemente.Merkmale._Aktion | Die Aktion, die auf den Merkmalsdatensatz angewendet wird, der zu dem Einzelposten gehört. Mögliche Werte:
|
| 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 |
| Positionselemente.Merkmale.Attribute<field_name> | Attributname des Merkmaldatensatzes, der der Position zugeordnet ist. Datentyp: Objekt |
| 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 |
| 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 |
| Positionselemente.sys_id | Objekt, das die sys_id des zugeordneten Artikeldatensatzes enthält. Datentyp: Objekt |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| sourceJSON | Objekt | JSON mit Details der Quellentität. Hinweis: Verwenden Sie LeadtoCashCore – createInstance(Zeichenfolge „headerSysIDs“, Zeichenfolge „lineSysIDs“, boolesches Ziel, zusätzlichesParam-Objekt, Objektkontext), um die JSON-Quelldatei einer Entität abzurufen. |
| 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:
Standardwert: false |
| context | Objekt | Optional. Bietet die Option, mehrere Instanzen mit dem Parameter context.isMultiSelect aufzurufen. |
| Kontext.istMehrfachauswahl | Boolean | Optional. Kennzeichnung, die angibt, ob mehrere Entitäten als Eingabe zum Erstellen der Instanz übergeben werden sollen. Gültige Werte:
Standardwert: false |
| 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 |
| glide_action | Gibt die Änderung an, die auf Elementebene zwischen Quell- und Ziel-JSON aufgetreten ist. Mögliche Werte:
|
| Einzelposten | Einzelposten einer Entität. Zum Beispiel Bestellpositionen oder Angebotspositionen. Datentyp: Array von Objekten |
| Positionselemente._glide_aktion | Change-Aktion, die für den Einzelposten aufgetreten ist. Mögliche _glide_action-Werte:
|
| 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 |
| Positionselemente._Status.Wert | Der aktuelle Status des Objekts. Mögliche Werte:
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 |
| 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 |
| Einzelposten.Attribute<attribute_name> .Wert | Namenswert des Positionsattributs. Datentyp: Objekt |
| Positionselemente.Attribute.Account | Informationen zum Account, der dem Artikelattribut zugeordnet ist. Datentyp: Objekt |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| Positionselemente.sys_id | Objekt, das die sys_id des zugeordneten Artikeldatensatzes enthält. Datentyp: Objekt |
| 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_object | Das 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 |
//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.
| 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:
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:
Standardwert: false |
| 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)