LeadtoCashCore - スコープ指定
LeadtoCashCore スクリプトインクルードは、Lead to Cash Core ライフサイクルで見込み顧客から現金へのワークフローを調整するためのメソッドを提供します。
LeadtoCashCore スクリプトインクルードをインスタンスで使用できるようにするには、Lead to Cash Core (com.snd.l2c.core) プラグインをアクティブ化する必要があります。このスクリプトインクルードは sn_l2c_core 名前空間に属し、admin ロールが必要です。
「見込み顧客から現金へ」ワークフローでは、ソースエンティティをターゲットエンティティにマッピングします。エンティティはテーブルの集合として定義されます。ソースからターゲットへのマッピングを使用すると、ソースエンティティの構造またはコンテンツを変換して、ターゲットエンティティに必要な構造またはコンテンツに適合させることができます。このスクリプトインクルードによって提供される機能は、見込み顧客から現金へ 機能で利用可能なエンティティマッピング機能を表します。詳細については、「Sales and Order Management workflows」を参照してください。
LeadtoCash スクリプトインクルードを使用してワークフローを完了するには、あるメソッドから次のメソッドにリターンパラメーターを渡します。通常、これらのメソッドは次の順序で呼び出します。
- LeadtoCashCore - createInstance(文字列 headerSysIDs, 文字列 lineSysIDs, ブール値 isTarget, オブジェクト additionalParams, オブジェクト コンテキスト) - 指定されたエンティティのデータをフェッチします。たとえば、品目とその関連データを含む顧客の注文関連情報などです。
context パラメーターを使用して、スクリプト内の 1 つ以上のヘッダーまたは行 ID を宣言します。このような複数選択のユースケースでは、出力 JSON には、各エントリが 1 つのエンティティを表すキーアイテムアレイが含まれます。
- LeadtoCashCore - delta(オブジェクトsourceJSON、オブジェクトdirtyJSON、オブジェクトadditionalParams、オブジェクトコンテキスト) - 2 つの JSON 入力を比較し、それらの間で発生した変更を識別します。たとえば、エンティティで何かが追加、削除、または変更されたときなどです。
- LeadtoCashCore - effect(オブジェクトsourceJSON、オブジェクトtargetJSON、オブジェクトadditionalParams、オブジェクトコンテキスト) - ソース JSON ターゲットをターゲット オブジェクトに変換します。
- LeadtoCashCore - commitInstance(オブジェクトtargetJSON, オブジェクト additionalParams) - effect() スクリプトインクルードで行われた変換をデータベースにコミットします。
前提条件
これらの各メソッドには、拡張ポイント sn_l2c_core がバンドルされています。LeadToCashServiceEPです。PrimitiveUtil() は、拡張ポイントサービスを取得するためのメソッドを提供し、使用可能なパラメーターに従ってスクリプトインクルードを呼び出すユーティリティです。まず、ソースおよびターゲット情報を取得するテーブルを指定する getPrimitivesEPService() メソッドを PrimitiveUtil() に指定する必要があります。詳細については、「LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」を参照してください。スクリプトで PrimitiveUtil() と getPrimitivesEPService() を指定したら、ユースケースに応じて、createInstance()、delta()、effect()、または commitInstance() スクリプトインクルードを呼び出すことができます。
「見込み顧客から現金へ」コアワークフロースクリプトの例
利用可能な各 Lead to Cash Core スクリプトインクルードは個別に文書化されていますが、次の例を参照して、これらのメソッドを一緒に使用して Lead to Cash ワークフローを生成する方法を確認できます。
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));
- 最初の呼び出しでは、 createInstance() メソッドを使用して既存の販売済み製品情報を取得します。
- 次に、デルタ JSON を返す delta() メソッドを使用して、このソース JSON をダーティ JSON と比較します。
- delta() JSON は、effect() メソッドを使用して、order 型の JSON に変換されます。
- 順序 JSON は、 commitInstance() メソッドを使用してデータベースにコミットされます。
LeadtoCashCore - createInstance(文字列 headerSysIDs, 文字列 lineSysIDs, ブール値 isTarget, オブジェクト additionalParams, オブジェクト コンテキスト)
ヘッダー、行、子行、特性、属性などのさまざまな詳細を含む JSON オブジェクトを使用して、指定された 1 つ以上のエンティティのデータを返します。
createInstance() メソッドの出力 JSON は、delta()、effect()、commitInstance() などのリードから現金へコアワークフローの後続のメソッドで使用します。
getPrimitivesEPService() ブール パラメータ context.isMultiSelect を true に設定して、createInstance() がカンマで区切られた複数の headerID または lineID を一度に渡すことができるようにします。それ以外の場合は、一度に 1 つの ID のみを渡すことができます。詳細については、「LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」を参照してください。複数の lineID を持つ単一の headerIDusecase は、「context.isMultiSelect」を true に設定しなくてもサポートされます。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| headerSysID | 文字列 | データを取得するエンティティのヘッダー sys_id。lineSysIDs パラメーターを指定しない場合は必須です。ヘッダー sys_idsを渡さない場合は null を渡します。スクリプトで 1 つ以上のヘッダー sys_idsを指定するには、getPrimitivesEPService() ユーティリティメソッドで 注: 少なくとも 1 つの headerSysID または lineSysIDs パラメーターが必要です。 |
| lineSysID | 文字列 | エンティティデータを取得するエンティティの行アイテムsys_id。headerSysIDsを指定せず、エンティティ構造が販売済み製品などの品目で始まる場合は必須です。 スクリプトで 1 つ以上のライン アイテム sys_idsを指定するには、getPrimitivesEPService() ユーティリティ メソッドで 注: 少なくとも 1 つの headerSysID または lineSysIDs パラメーターが必要です。複数の lineSysIDs渡す場合は、すべてのレコードが同じ headerSysIDに属している必要があります。 |
| isTarget | ブーリアン | オプション。ターゲットエンティティデータをフェッチするかどうかを決定するフラグ。 有効な値:
デフォルト値:false |
| additionalParams | オブジェクト | オプション。使用する追加パラメーター。 |
| additionalParams.skipLines | ブーリアン | オプション。指定されたエンティティの品目をフェッチするかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| context | オブジェクト | オプション。context.isMultiSelect パラメーターを使用して複数のインスタンスを呼び出すオプションを提供します。 |
| context.isMultiSelect | ブール | オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| タイプ | Description (説明) |
|---|---|
| JSON オブジェクト | エンティティレコードの詳細を含む JSON。 データタイプ: オブジェクト |
| アイテム | context.isMultiSelect が true に設定されている場合に選択されたオブジェクトのアレイが含まれます。 データタイプ: オブジェクト |
| items._state | オブジェクトのステータスを表すオブジェクト。 データタイプ: オブジェクト |
| items._state.value | オブジェクトの現在のステータス。 可能な値:
データタイプ:文字列 |
| items.attributes | ヘッダーレコードの属性。 データタイプ: オブジェクト |
| items.attributes.account | アイテム属性に関連付けられたアカウントに関する情報。 |
| items.attributes.account.value | アイテム属性に関連付けられたアカウントのSys_id。 データタイプ:文字列 |
| items.attributes.name | ヘッダーレコードのエンティティ属性の名前。たとえば、連絡先のアカウントなどです。エンティティのさまざまなフィールドを含めることができます。 データタイプ: オブジェクト |
| items.attributes.name.value | エンティティのヘッダーレコードに属するアイテム属性の名前。 データタイプ:文字列 |
| items.sys_id | 関連するアイテムレコードに関するsys_id情報を含むオブジェクト。 データタイプ: オブジェクト |
| items.sys_id.value | 関連アイテムレコードのSys_id。 データタイプ:文字列 |
| items.table | 「見込み顧客から現金へ」エンティティに関連付けられたアイテムレコードを含むテーブルの名前。 データタイプ:文字列 |
| lineItem | エンティティレコードの品目の詳細を含む JSON オブジェクト。 注: このオブジェクトは、LeadtoCashCore - delta(オブジェクトsourceJSON、オブジェクトdirtyJSON、オブジェクトadditionalParams、オブジェクトコンテキスト)メソッドのsourceJSON要求パラメーターで使用します。 エンティティの品目。たとえば、注文品目や見積品目などです。 データタイプ:オブジェクトのアレイ |
| lineItems.attributes | 品目レコードの属性。属性はエンティティ間で異なる場合があります。データタイプ: オブジェクト |
| lineItems.attributes.account | 品目属性に関連付けられたアカウントに関する情報。 |
| lineItems.attributes.account.value | 品目属性に関連付けられたアカウントのSys_id。 データタイプ:文字列 |
| lineItems.attributes.name | 品目属性の名前に関する情報。データタイプ: オブジェクト |
| lineItems.attributes.name.value | 属性の名前。 データタイプ:文字列 |
| lineItems.characteristics | アイテムに関連付けられた特性のリスト。チャラセリストはエンティティによって異なる場合があります。 データタイプ:オブジェクトのアレイ |
| lineItems.characteristics | 品目に関連付けられた特性のリスト。チャラセリストはエンティティによって異なる場合があります。 データタイプ:オブジェクトのアレイ |
| lineItems.characteristics.attributes | 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。<属性タイプ>は、特性に関連付けられたレコード/機能に基づいて異なる値にすることができます。たとえば、このオブジェクトには、属性レコードのsys_id、関連する特性レコード、アカウントまたは連絡先、特性オプションレコード、または販売済み製品情報への参照を含めることができます。 データタイプ: オブジェクト |
| lineItems.characteristics.attributes.<attribute_type>.value | 通常は関連付け属性レコードのsys_idですが、関連付けられた属性タイプを説明する意味のあるテキスト文字列にすることができます。 データタイプ:文字列 |
| lineItems.characteristics.sys_id | 関連する特性レコードのsys_idを含むオブジェクト。 データタイプ: オブジェクト |
| lineItems.characteristics.sys_id.value | 関連付けられた特性レコードのSys_id。 データタイプ:文字列 |
| lineItems.characteristics.table | 「見込み顧客から現金へ」エンティティの特性レコードを含むテーブルの名前。 データタイプ:文字列 |
| lineItems.lineItems | 親品目の子品目。このオブジェクトの形式は、 lineItems パラメーターと同じです。 データタイプ: オブジェクト |
| lineItems.sys_id | 関連する品目レコードに関するsys_id情報を含むオブジェクト。 データタイプ: オブジェクト |
| lineItems.sys_id.value | 関連する品目レコードのSys_id。 データタイプ:文字列 |
| lineItems.table | 「見込み顧客から現金へ」エンティティに関連付けられた品目レコードを含むテーブルの名前。 データタイプ:文字列 |
次のサンプルスクリプトは、 createInstance() メソッドを呼び出して、販売済み製品、その階層全体、およびその特性のデータをロードします。
//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()
出力:
{
"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"
}
}
}
]
}
]
}
複数選択
次のスクリプトは、 isMultiSelect を使用して createInstance() メソッドを呼び出し、2 つの販売済み製品のデータを、その階層全体と特性とともにロードする方法を示しています。
//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
応答:
{
"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(オブジェクトtargetJSON, オブジェクト additionalParams)
指定された「見込み顧客から現金へ」エンティティの JSON をインスタンスにコミットし、更新された情報を含むステータスメッセージを返し、結果として「見込み顧客から現金へ」コアエンティティテーブルを更新します。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| ターゲット JSON | オブジェクト | コミットするターゲットエンティティの「glide_action」を含む JSON オブジェクト。ここで effect() メソッドの出力を渡すことができます。 注: 「glide_action」は、「見込み顧客から現金へ」エンティティのソースとターゲットの JSON の間で発生した変更アクションを識別します。 |
| ターゲット JSON | オブジェクト | オプション。使用する追加パラメーター。 注: commitInstance() の追加パラメーターは、今後のリリースまで使用できません。 |
| タイプ | Description (説明) |
|---|---|
| JSON オブジェクト | ターゲットエンティティレコードに関する詳細を含む JSON オブジェクト。データタイプ: オブジェクト |
| エラー | commitInstance メソッドの失敗を説明するエラーメッセージ。 データタイプ:文字列 |
| ヘッダー ID | commitInstance メソッドによって作成または更新されたターゲットエンティティレコードのSys_id。 データタイプ:文字列 |
| rootLineID | commitInstance メソッドによって挿入、更新、または削除されたターゲットエンティティレコードのSys_ids。 データタイプ:文字列のアレイ |
| status | 「成功」または「失敗」の値を含むステータスメッセージ。 データタイプ:文字列 |
次の例は、各 LeadtoCashCore メソッドを使用して、ソースからターゲットへのエンティティの詳細を取得、適用、およびコミットする方法を示しています。
//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.
出力:
{
"status": "success",
"error": "",
"headerID": "cc9b3db665e73510f877d71ec56bf7ed",
"rootLineIDs": [
"0c9b3db665e73510f877d71ec56bf7f1"
]
}
LeadtoCashCore - delta(オブジェクトsourceJSON、オブジェクトdirtyJSON、オブジェクトadditionalParams、オブジェクトコンテキスト)
「見込み顧客から現金へ」エンティティのソースと変更されたソース JSON オブジェクトを比較し、追加、削除、変更など、ソース JSON に加えられた変更を記述する JSON オブジェクトを返します。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| ソース JSON | オブジェクト | ソースの「見込み顧客から現金へ」エンティティの JSON オブジェクト。 注: LeadtoCashCore - createInstance(文字列 headerSysIDs, 文字列 lineSysIDs, ブール値 isTarget, オブジェクト additionalParams, オブジェクト コンテキスト) メソッドを使用して、エンティティのソース JSON を取得します。 |
| ダーティJSON | オブジェクト | 「見込み顧客から現金へ」エンティティの変更されたソース JSON。 |
| additionalParams | オブジェクト | オプション。使用する追加パラメーター。 |
| additionalParams.delta_ignore_attributes | オブジェクト | ソースと dirtyJSON の比較中に無視するテーブル属性。再構成ユースケースのサポートを有効にします。 |
| additionalParams.delta_ignore_attributes.<table_name> | 文字列 | 無視するテーブルの名前とそれに関連する属性。 例: |
| additionalParams.loadDisplayValue | ブーリアン | オプション。各属性の表示値をロードするかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| context | オブジェクト | オプション。context.isMultiSelect パラメーターを使用して複数のインスタンスを呼び出すオプションを提供します。 |
| context.isMultiSelect | ブール | オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| タイプ | Description (説明) |
|---|---|
| JSON オブジェクト | sourceJSON と dirtyJSON の間で発生した変更を含むエンティティレコードの詳細を含むオブジェクト。 データタイプ: オブジェクト |
| _アクション | ソース JSON オブジェクトに適用される変更アクション。 可能な値:
データタイプ:文字列 |
| 特性 | ヘッダーエンティティレコードの特性。エンティティに基づいてさまざまなフィールドが含まれる場合があります。 データタイプ:オブジェクトのアレイ |
| characteristics.table | 特性レコードのテーブル名。 データタイプ:文字列 |
| characteristics.sys_id | 特性レコードのSys_idオブジェクト。 データタイプ: オブジェクト |
| characteristics.sys_id.value | 特性レコードのSys_id。 データタイプ:文字列 |
| characteristics.attributes | ヘッダーレコード特性の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドが含まれる場合があります。 データタイプ: オブジェクト |
| characteristics.attributes.<attribute_name> | 特性に関連付けられた属性の名前。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドが含まれる場合があります。 データタイプ: オブジェクト |
| characteristics.attributes.<attribute_name>.value | 指定された属性の値。 データタイプ:文字列 |
| characteristics._action | ヘッダーエンティティレコードに関連付けられた特性に適用されるアクション。 可能な値:
|
| lineItem | エンティティの品目。たとえば、注文品目や見積品目などです。 データタイプ:オブジェクトのアレイ |
| lineItems._action | ソース JSON の品目に適用される変更アクション。 可能な値:
|
| lineItems.attributes | 品目の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドが含まれる場合があります。 データタイプ: オブジェクト |
| lineitems.attributes.<attribute_name> | 品目属性の名前を含むオブジェクト。たとえば、アカウントや連絡先の名前などです。エンティティのさまざまなフィールドを含めることができます。 データタイプ: オブジェクト |
| lineitems.attributes.<attribute_name>.value | 品目属性の名前値。 データタイプ: オブジェクト |
| lineItems.attributes.account | アイテム属性に関連付けられたアカウントに関する情報。 データタイプ: オブジェクト |
| lineItems.attributes.account.value | 品目属性に関連付けられたアカウントのSys_id。 データタイプ:文字列 |
| lineItems.characteristics | 品目に関連付けられた特性のリスト。特性はエンティティによって異なる場合があります。 データタイプ:オブジェクトのアレイ |
| lineitems.characteristics._action | 品目に属する特性レコードに適用されるアクション。 可能な値:
|
| lineItems.characteristics.attributes | 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。<属性タイプ>は、特性に関連付けられたレコードまたは機能に基づいて異なる値にすることができます。 たとえば、このオブジェクトには、属性レコードのsys_id、関連する特性レコード、アカウントまたは連絡先、特性オプションレコード、または販売済み製品情報への参照を含めることができます。 データタイプ: オブジェクト |
| lineitems.characteristics.attributes.<field_name> | 品目に関連付けられた特性レコードの属性名。 データタイプ: オブジェクト |
| lineitems.characteristics.attributes.<field_name>.value | エンティティの特性レコードに属する属性の値。 データタイプ:文字列 |
| lineItems.characteristics.sys_id | 関連する特性レコードのsys_idを含むオブジェクト。 データタイプ: オブジェクト |
| lineItems.characteristics.sys_id.value | 関連付けられた特性レコードのSys_id値。 データタイプ:文字列 |
| lineItems.characteristics.table | 「見込み顧客から現金へ」エンティティの特性レコードを含むテーブルの名前。 データタイプ:文字列 |
| lineItems.lineItems | 親品目の子品目。このオブジェクトの形式は、 lineItems パラメーターと同じです。 データタイプ: オブジェクト |
| lineItems.sys_id | 関連するアイテムレコードのsys_idを含むオブジェクト。 データタイプ: オブジェクト |
| lineItems.sys_id.value | 関連付けられたアイテムレコードのSys_id値。 データタイプ:文字列 |
| lineItems.table | 「見込み顧客から現金へ」エンティティに関連付けられたアイテムレコードを含むテーブルの名前。 データタイプ:文字列 |
次の例は、最初に PrimitiveUtil ユーティリティ メソッドと getPrimitiesEPService() を呼び出し、次にソースおよびターゲットの JSON オブジェクトを指定することによって、delta() メソッドを呼び出す方法を示しています。
//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
出力 JSON は、販売済み基本製品に複数の品目が追加されたことを示しています。
{
"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"
}
]
}
複数選択
次の例は、最初に PrimitiveUtil と getPrimitivesEPService を呼び出し、次に複数の行またはヘッダー ID のソースとターゲットの JSON オブジェクトを指定することによって、複数選択の delta() メソッドを形成する方法を示しています。各フローごとに、サービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
/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
出力 JSON は、販売済み基本製品に複数の品目が追加されたことを示しています。
{
"items": [
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "4e03cda2ec873110f87727ef5883a2cf"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "9e0301e2ec873110f87727ef5883a23a"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [],
"characteristics": [],
"_action": "disconnect"
}
],
"characteristics": [],
"_action": "disconnect"
}
]
},
{
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "036a2349284d0210f877b68370fb2e93"
},
"attributes": {
"name": {
"value": "Quadplay Home Tech Hub Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [
{
"table": "sn_install_base_sold_product",
"sys_id": {
"value": "4b6a2349284d0210f877b68370fb2e9c"
},
"attributes": {
"name": {
"value": "Internet and OTT Bundle"
},
"account": {
"value": "9e2fd2ee11b43110f877366201dea674"
}
},
"lineItems": [],
"characteristics": [],
"_action": "disconnect"
}
],
"characteristics": [],
"_action": "disconnect"
}
]
}
]
}
LeadtoCashCore - effect(オブジェクトsourceJSON、オブジェクトtargetJSON、オブジェクトadditionalParams、オブジェクトコンテキスト)
指定されたエンティティのソース JSON 構造を別のエンティティのターゲット JSON に変換して適用します。その後、 commitInstance() メソッドを使用して、変更されたエンティティをデータベースにコミットできます。
delta() メソッドの出力 JSON を effect() リクエストで使用できます。次に、commitInstance() を使用して effect() JSON 出力をデータベースにコミットし、見込み顧客から現金へワークフローを完了します。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| ソース JSON | オブジェクト | ソースエンティティの詳細を含む JSON。 注: |
| ターゲット JSON | オブジェクト | ターゲットエンティティの詳細を含む JSON。 |
| additionalParams | オブジェクト | オプション。使用する追加パラメーター。 |
| additionalParams.is_future_state | ブーリアン | オプション。これを使用して、再構成のユースケースをサポートします。 受け入れ可能な値:
デフォルト値:false |
| context | オブジェクト | オプション。context.isMultiSelect パラメーターを使用して複数のインスタンスを呼び出すオプションを提供します。 |
| context.isMultiSelect | ブール | オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| タイプ | Description (説明) |
|---|---|
| JSON オブジェクト | 「見込み顧客から現金へ」エンティティの各オブジェクト、ヘッダー品目、子品目、および特性レベルで、ソースからターゲットエンティティの JSON オブジェクトに発生し、適用された変更。 データタイプ: オブジェクト |
| glide_action | ソース JSON とターゲット JSON の間でアイテムレベルで発生した変更を示します。 可能な値:
|
| lineItem | エンティティの品目。たとえば、注文品目や見積品目などです。 データタイプ:オブジェクトのアレイ |
| lineItems._glide_action | 品目で発生した変更アクション。 可能な_glide_action値:
|
| lineItems._source_object | glide_actionが適用されたソースエンティティレコードの JSON オブジェクト。このオブジェクトはエンティティ間で異なる場合があります。 データタイプ: オブジェクト |
| lineItems._state | オブジェクトのステータスを表すオブジェクト。 データタイプ: オブジェクト |
| lineItems._state.value | オブジェクトの現在のステータス。 可能な値:
データタイプ:文字列 |
| lineItems.attributes | 品目の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドが含まれる場合があります。 データタイプ: オブジェクト |
| lineitems.attributes.<attribute_name> | 品目属性の名前を含むオブジェクト。たとえば、アカウントや連絡先の名前などです。エンティティのさまざまなフィールドを含めることができます。 データタイプ: オブジェクト |
| lineitems.attributes.<attribute_name>.value | 品目属性の名前値。 データタイプ: オブジェクト |
| lineItems.attributes.account | アイテム属性に関連付けられたアカウントに関する情報。 データタイプ: オブジェクト |
| lineItems.attributes.account.value | 品目属性に関連付けられたアカウントのSys_id。 データタイプ:文字列 |
| lineItems.attributes.short_description | 品目属性の簡単な説明。 データタイプ:文字列 |
| lineItems.characteristics | 品目に関連付けられた特性のリスト。特性はエンティティによって異なる場合があります。 データタイプ:オブジェクトのアレイ |
| lineItems.characteristics.attributes | 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。<属性タイプ>は、特性に関連付けられたレコードまたは機能に基づいて異なる値にすることができます。 たとえば、このオブジェクトには、属性レコードのsys_id、関連する特性レコード、アカウントまたは連絡先、特性オプションレコード、または販売済み製品情報への参照を含めることができます。 データタイプ: オブジェクト |
| lineItems.characteristics.attributes.<attribute_type>.value | 通常は関連付け属性レコードのsys_idですが、関連付けられた属性タイプを説明する意味のあるテキスト文字列にすることができます。 データタイプ:文字列 |
| lineitems.characteristics.attributes.<field_name> | 品目に関連付けられた特性レコードの属性名。 データタイプ: オブジェクト |
| lineitems.characteristics.attributes.<field_name>.value | エンティティの特性レコードに属する属性の値。 データタイプ:文字列 |
| lineItems.characteristics.sys_id | 関連する特性レコードのsys_idを含むオブジェクト。 データタイプ: オブジェクト |
| lineItems.characteristics.sys_id.value | 関連付けられた特性レコードのSys_id値。 データタイプ:文字列 |
| lineItems.characteristics.table | 「見込み顧客から現金へ」エンティティの特性レコードを含むテーブルの名前。 データタイプ:文字列 |
| lineItems.lineItems | 親品目の子品目。このオブジェクトの形式は、 lineItems パラメーターと同じです。 データタイプ: オブジェクト |
| lineItems.sys_id | 関連するアイテムレコードのsys_idを含むオブジェクト。 データタイプ: オブジェクト |
| lineItems.sys_id.value | 関連付けられたアイテムレコードのSys_id値。 データタイプ:文字列 |
| lineItems.table | 「見込み顧客から現金へ」エンティティに関連付けられたアイテムレコードを含むテーブルの名前。 データタイプ:文字列 |
| _source_object | 変更が適用されたソース JSON オブジェクト。オブジェクトの構造はエンティティ間で異なる場合があります。 データタイプ: オブジェクト |
| sys_id | エンティティのSys_id。 データタイプ:文字列 |
| テーブル | エンティティが見つかるテーブルの名前。 データタイプ:文字列 |
//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.
出力:
{
"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(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)
PrimitiveUtil() ユーティリティメソッドをトリガーします。
LeadtoCashCore スクリプトインクルードで使用可能なメソッドを使用するには、まずスクリプト内でスクリプト拡張ポイント PrimitiveUtil() を呼び出し、getPrimitivesEPService() ユーティリティメソッドを使用して実装をトリガーする必要があります。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| sourceToTargetConfigID | 文字列 | ソースからターゲットへのマッピングのマッピング構成 ID。「見込み顧客から現金へ」エンティティマッピング [sn_l2c_core_entity_mapping] テーブルにあります。 |
| context | オブジェクト | オプション。属性値を表示し、一度に複数のインスタンスを呼び出すための追加のパラメーターオプション。 |
| context.loadDisplayValue | ブーリアン | オプション。各属性の表示値をロードするかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| context.isMultiSelect | ブール | オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、 PrimitiveUtil() を呼び出し、Lead To Cash エンティティマッピング [sn_l2c_core_entity_mapping] テーブルのマッピング構成 ID である sn_l2c_cust_flows_sp_to_order に基づいて実装を選択します。
//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)