LeadtoCashCore - スコープ対象
見込み客から現金へのコアライフサイクルでワークフローを作成します。
LeadtoCashCore API は、リードから現金へのワークフローを作成できる 4 つの API のセットで構成されています。LeadtoCashCore API をインスタンスで使用するには、Lead to Cash Core (com.snd.l2c.core) プラグインを有効にする必要があります。これらの API は sn_l2c_core 名前空間に属しています。
リードから現金へのワークフローを完了するには、ある API から次の API にリターン パラメーターを渡す必要があります。通常、API は次の順序で呼び出します。
- Createinstance
- Delta
- 効果
- インスタンスのコミット
PrimitiveUtil 拡張ポイントは、拡張ポイント サービスを取得し、使用可能なパラメーターを使用して各 API を呼び出すメソッドを提供します。
Lead to Cash コア製品の詳細については、以下を参照してください。
LeadToCashCore - getPrimitivesEPService(文字列 table)
PrimitivUtil 拡張ポイントを呼び出します。
| 名前 | タイプ | 説明 |
|---|---|---|
| テーブル | 文字列 | テーブル名。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、PrimitiveUtil() 拡張ポイントを呼び出し、L2C フローの sourceToTargetConfigID (sn_l2c_core_entity_mappingテーブルのマッピング構成 ID) に基づいて実装を選択します。
//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(オブジェクト targetJSON, オブジェクト additionalParms)
ヘッダー、明細、子明細、特性、属性などのさまざまな詳細を含む JSON オブジェクトを使用して、指定された Lead to Cash エンティティのデータを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ヘッダー ID | 文字列 | 必須です。要求で lineID を使用しない場合は、ヘッダー ID を使用します。エンティティのヘッダー sys_id。たとえば、注文ヘッダー sys_id、見積もりヘッダー sys_idなどです。 ヘッダー ID またはライン ID は必須です。 |
| 行 ID | 文字列 | 必須です。要求でヘッダー ID を使用しない場合は、行 ID を使用します。エンティティの品目sys_id。たとえば、注文ヘッダー sys_id、見積依頼明細行sys_id、販売済み製品sys_idなどです。 |
| isTarget | ブール | オプション。ターゲットエンティティのデータをフェッチするかどうかを決定するフラグ。 有効な値:
デフォルト:false |
| additionalParams | オブジェクト | オプション。使用する追加のパラメーターを指定します。 |
| additionalParams.skipLines | ブール |
オプション。エンティティの品目をフェッチするかどうかを示すフラグ。 有効な値:
デフォルト:false |
| タイプ | 説明 |
|---|---|
| JSON オブジェクト | エンティティレコードの詳細を含む JSON。データタイプ: オブジェクト |
| テーブル | リードから入金エンティティのヘッダーレコードのテーブル名。 データタイプ:文字列 |
| sys_id | ヘッダーレコードのSys_id。データタイプ: オブジェクト |
| sys_id.value | ヘッダーレコードのsys_id値。 データタイプ:文字列 |
| 属性 | ヘッダーレコードの属性。データタイプ: オブジェクト |
| attributes.<field_name> | ヘッダーレコードの属性。たとえば、アカウントや連絡先などです。エンティティのさまざまなフィールドを含めることができます。データタイプ: オブジェクト |
| attributes.<field_name>.value | エンティティのヘッダーレコードに属する属性の値。 データタイプ:文字列 |
| 品目 | エンティティの品目。たとえば、注文品目、見積品目などです。データタイプ:アレイ |
| LineItems.table | リードから現金へのエンティティの品目のテーブル名。 データタイプ:文字列 |
| lineItems.sys_id | 品目レコードのSys_id。データタイプ: オブジェクト |
| lineItems.sys_id.value | 品目レコードのsys_id値。 データタイプ:文字列 |
| LineItems.attributes | 品目レコードの属性。データタイプ: オブジェクト |
| LineItems.attributes.<field_name> | 品目レコードの属性。たとえば、アカウントや連絡先などです。エンティティに基づいてさまざまなフィールドを含めることができます。データタイプ: オブジェクト |
| LineItems.attributes.<field_name>.value | エンティティのヘッダーレコードに属する属性の値。 データタイプ:文字列 |
| LineItems.LineItems | 親品目の子品目。データタイプ: オブジェクト |
| LineItems.characteristics | 品目の特性。データタイプ:アレイ |
| characteristics.table | 潜在顧客から入金へのエンティティの特性レコードのテーブル名。 データタイプ:文字列 |
| characteristics.sys_id | 特性レコードのSys_id。データタイプ: オブジェクト |
| characteristics.sys_id.value | 特性レコードのsys_id値。 データタイプ:文字列 |
| characteristics.attributes | 特性レコードの属性。データタイプ: オブジェクト |
| characteristics.attributes.<field_name> | 特性レコードの属性。たとえば、名称や特性値などです。エンティティに基づいてさまざまな特性を含めることができます。データタイプ: オブジェクト |
| characteristics.attributes.<field_name>.value | エンティティの特性レコードに属する属性の値。 データタイプ:文字列 |
以下のサンプルスクリプトは、 createInstance API を呼び出して、販売済み製品のデータ、その階層全体、およびその特性をロードします。
//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
出力:
{
"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(オブジェクト sourceJSON, オブジェクト dirtyJSON, オブジェクト additionalParms)
Lead to Cash エンティティの sourceJSON と dirtyJSON の 2 つの JSONを比較し、sourceJSON と dirtyJSON の両方からの詳細を含む JSON を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| sourceJSON | オブジェクト | 潜在顧客から現金へのエンティティのソース JSON。 |
| dirtyJSON | オブジェクト | 潜在顧客から現金へのエンティティの変更されたソース JSON。 |
| additionalParams | オブジェクト |
| タイプ | 説明 |
|---|---|
| JSON オブジェクト | エンティティレコードの詳細を含む JSON。データタイプ: オブジェクト |
| テーブル | リードから入金エンティティのヘッダーレコードのテーブル名。 データタイプ:文字列 |
| sys_id | ヘッダーレコードのSys_id。データタイプ: オブジェクト |
| sys_id.value | ヘッダーレコードのsys_id値。 データタイプ:文字列 |
| 属性 | ヘッダーレコードの属性。データタイプ: オブジェクト |
| attributes.<field_name> | ヘッダーレコードの属性。たとえば、アカウントや連絡先などです。エンティティのさまざまなフィールドを含めることができます。データタイプ: オブジェクト |
| attributes.<field_name>.value | エンティティのヘッダーレコードに属する属性の値。 データタイプ:文字列 |
| 品目 | エンティティの品目。たとえば、注文品目、見積品目などです。データタイプ:アレイ |
| LineItems.table | リードから現金へのエンティティの品目のテーブル名。 データタイプ:文字列 |
| lineItems.sys_id | 品目レコードのSys_id。データタイプ: オブジェクト |
| lineItems.sys_id.value | 品目レコードのsys_id値。 データタイプ:文字列 |
| LineItems.attributes | 品目レコードの属性。データタイプ: オブジェクト |
| LineItems.attributes.<field_name> | 品目レコードの属性。たとえば、アカウントや連絡先などです。エンティティに基づいてさまざまなフィールドを含めることができます。データタイプ: オブジェクト |
| LineItems.attributes.<field_name>.value | エンティティのヘッダーレコードに属する属性の値。 データタイプ:文字列 |
| LineItems.LineItems | 親品目の子品目。データタイプ: オブジェクト |
| LineItems.characteristics | 品目の特性。データタイプ:アレイ |
| characteristics.table | 潜在顧客から入金へのエンティティの特性レコードのテーブル名。 データタイプ:文字列 |
| characteristics.sys_id | 特性レコードのSys_id。データタイプ: オブジェクト |
| characteristics.sys_id.value | 特性レコードのsys_id値。 データタイプ:文字列 |
| characteristics.attributes | 特性レコードの属性。データタイプ: オブジェクト |
| characteristics.attributes.<field_name> | 特性レコードの属性。たとえば、名称や特性値などです。エンティティに基づいてさまざまな特性を含めることができます。データタイプ: オブジェクト |
| characteristics.attributes.<field_name>.value | エンティティの特性レコードに属する属性の値。 データタイプ:文字列 |
//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
出力:
{
"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 - effect(オブジェクト sourceJSON, オブジェクト targetJSON, オブジェクト additionalParms)
指定されたリードから現金エンティティの sourceJSON を、他のリードから現金エンティティの targetJSON に変換して適用します。返された JSON は、潜在顧客から現金へのエンティティのデータベースにコミットできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| sourceJSON | オブジェクト | ソースエンティティの詳細を含む JSON。 |
| ターゲット JSON | オブジェクト | ターゲットエンティティの詳細を含む JSON。 |
| additionalParams | オブジェクト |
| タイプ | 説明 |
|---|---|
| JSON オブジェクト | 現金化エンティティへのリードの各オブジェクト、ヘッダー/明細/子明細/特性に「glide_action」を含む JSON。 |
//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’.
出力:
{
"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(オブジェクト targetJSON, オブジェクト additionalParms)
指定されたリードから現金エンティティの JSON をデータベースにコミットし、ステータスメッセージと更新された情報を含む JSON を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| ターゲット JSON | オブジェクト | ターゲットエンティティの「glide_action」を含む JSON。エフェクト API の出力はここに渡すことができます。 |
| additionalParams | オブジェクト |
| タイプ | 説明 |
|---|---|
| JSON オブジェクト | ターゲットエンティティレコードに関する詳細を含む JSON。データタイプ: オブジェクト |
| ステータス | commitInstance API の「success/failure」という値を持つステータスメッセージ。 データタイプ:文字列 |
| エラー | commitInstance API の失敗に関するエラーメッセージ。 データタイプ:文字列 |
| ヘッダー ID | commitInstance API で作成または更新されたターゲットエンティティレコードのヘッダー ID。 データタイプ:文字列 |
| rootLineID | commitInstance API で挿入、更新、または削除されたターゲットエンティティレコードのルート行 ID。 データタイプ:文字列のアレイ |
//Utility to invoke commitInstance 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 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"
]
}