LeadtoCashCore - スコープ対象

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:75分
  • LeadtoCashCore スクリプトインクルードは、「見込み顧客から現金へ」コアライフサイクルにおける「見込み顧客から現金へ」のワークフローを調整するためのメソッドを提供します。

    LeadtoCashCore スクリプトインクルードをインスタンスで使用できるようにするには、Lead to Cash Core (com.snd.l2c.core) プラグインを有効にする必要があります。このスクリプトインクルードは sn_l2c_core 名前空間に属しており、admin ロールが必要です。

    「見込み顧客から現金へ」ワークフローでは、ソースエンティティをターゲットエンティティにマッピングします。エンティティはテーブルの集合として定義されます。ソースからターゲットへのマッピングを使用すると、ターゲットエンティティに必要な構造またはコンテンツに合わせて、ソースエンティティの構造またはコンテンツを変換できます。このスクリプトインクルードによって提供される機能は、「見込み顧客から現金へ」機能で使用できるエンティティマッピング機能を表します。詳細については、「Lead to Cash」を参照してください。

    LeadtoCash スクリプトインクルードを使用してワークフローを完了するには、あるメソッドから次のメソッドに戻りパラメーターを渡します。通常、これらのメソッドは次の順序で呼び出します。

    1. LeadtoCashCore - createInstance(文字列 headerSysIDs, 文字列 lineSysIDs, ブール値 isTarget, オブジェクト additionalParams) - 指定されたエンティティのデータをフェッチします。たとえば、品目とその関連データを含む顧客の注文関連情報などです。

      context パラメーターを使用して、スクリプト内で 1 つ以上のヘッダーまたは行 ID を宣言します。このような複数選択のユースケースでは、出力 JSON には、各エントリが単一のエンティティを表すキーアイテムアレイが含まれています。

    2. LeadtoCashCore:delta(オブジェクト sourceJSON, オブジェクト dirtyJSON, オブジェクト additionalParams) - 2 つの JSON 入力を比較し、それらの間に発生した変更を識別します。たとえば、エンティティで何かが追加、削除、または変更された場合などです。
    3. LeadtoCashCore:effect(オブジェクト sourceJSON, オブジェクト targetJSON, オブジェクト additionalParams) - ソース JSON ターゲットをターゲット オブジェクトに変換します。
    4. LeadtoCashCore:commitInstance(オブジェクト targetJSON, オブジェクト additionalParams) - effect() スクリプトインクルードで行われた変換をデータベースにコミットします。
    注:
    必要に応じて、このワークフローでは delta() をスキップできます。ただし、これらのメソッドを順序どおりに呼び出すと、ワークフローが失敗します (たとえば、 commitInstance() を呼び出してから effect() を呼び出す場合)。

    必須条件

    これらの各メソッドには、拡張ポイント sn_l2c_core がバンドルされています。LeadToCashServiceEP。PrimitiveUtil() は、拡張ポイントサービスを取得するメソッドを提供し、使用可能なパラメーターに従ってスクリプトインクルードを呼び出すユーティリティです。最初に、ソースとターゲットの情報を取得するテーブルを指定するgetPrimitivesEPService()メソッドをPrimitiveUtil()に提供する必要があります。詳細については、「LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」を参照してください。PrimitiveUtil() および getPrimitivesEPService() がスクリプトで指定されると、ユースケースの必要に応じて、createInstance()delta()、effect()または commitInstance() スクリプトインクルードを呼び出すことができます。

    「見込み顧客から現金へ」コアワークフロースクリプトの例

    利用可能な「見込み顧客から現金へ」コアスクリプトインクルードはそれぞれ個別に文書化されていますが、次の例を参照して、これらのメソッドを組み合わせて「見込み顧客から現金へ」ワークフローを生成する方法を確認できます。

    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));
    この例では、顧客が販売済み製品を購入しましたが、既存の販売済み製品の変更を要求しました。必要な変更は dirtyJSON の形式で提供されます。これらの変更を適用するために、Lead to Cash Core メソッドを次の順序で呼び出します。
    1. 最初の呼び出しでは、 createInstance() メソッドを使用して既存の販売済み製品情報を取得します。
    2. 次に、 delta() メソッドを使用して、このソース JSON をダーティ JSON と比較します。このメソッドはデルタ JSON を返します。
    3. 次に、 delta() JSON は、 effect() メソッドを使用して順序型の JSON に変換されます。
    4. 注文 JSON は、 commitInstance() メソッドを使用してデータベースにコミットされます。

    LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)

    PrimitiveUtil() ユーティリティメソッドをトリガーします。

    LeadtoCashCore スクリプトインクルードで使用可能なメソッドを使用するには、まず、getPrimitivesEPService() ユーティリティメソッドを使用してスクリプト内のスクリプト拡張ポイント PrimitiveUtil() を常に呼び出して実装をトリガーする必要があります。

    表 : 1. パラメーター
    名前 タイプ 説明
    コンテキスト オブジェクト オプション。属性値を表示し、一度に複数のインスタンスを呼び出すための追加のパラメーターオプション。
    "context": {
      "isMultiSelect": "Boolean"
      "loadDisplayValue": "Boolean"
    }
    context.isMultiSelect ブール オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。
    有効な値:
    • true:複数のエンティティを入力として渡すことができます。true の場合、複数の品目をカンマ区切りリストで渡すことができます。
    • false:複数のエンティティを入力として渡すことはできません。API スクリプトで渡すことができる入力は 1 つだけです。

    デフォルト値:false

    context.loadDisplayValue ブール オプション。各属性の表示値をロードするかどうかを示すフラグ。
    有効な値:
    • true:属性の表示値のロードを有効にします。
    • false:属性の表示値のロードを有効にしません。

    デフォルト値:false

    sourceToTargetConfigID 文字列 ソースからターゲットへのマッピングのマッピング構成 ID。

    テーブル:「Lead-to-Cash」エンティティマッピング [sn_l2c_core_entity_mapping]

    表 : 2. 戻り値
    タイプ 説明
    なし

    次の例では、 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)

    LeadtoCashCore - createInstance(文字列 headerSysIDs, 文字列 lineSysIDs, ブール値 isTarget, オブジェクト additionalParams)

    ヘッダー、行、子行、特性、それらの属性などのさまざまな詳細を含む JSON オブジェクトを使用して、1 つ以上の指定されたエンティティのデータを返します。

    createInstance() メソッドの出力 JSON は、delta()effect()、commitInstance() などの「見込み顧客から現金へ」コアワークフローの後続のメソッドで使用します。

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで createInstance() を呼び出す前に、最初にスクリプトユーティリティメソッド PrimitiveUtil()LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト) ユーティリティメソッドで呼び出して実装をトリガーする必要があります。フローごとにサービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。

    getPrimitivesEPService() ブールパラメーター context.isMultiSelect を true に設定すると、createInstance() が複数のカンマ区切りの headerID または lineID を一度に渡すことができます。それ以外の場合は、一度に 1 つの ID しか渡せません。詳細は、「LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」を参照してください。複数の lineID を持つ単一の headerID のユースケースは、 context.isMultiSelect を true に設定しなくてもサポートされます。

    表 : 3. パラメーター
    名前 タイプ 説明
    additionalParams オブジェクト オプション。使用する追加パラメーター。
    additionalParams.skipLines ブール オプション。指定したエンティティの品目をフェッチするかどうかを示すフラグ。
    有効な値:
    • true:エンティティの品目情報の返却をスキップします。
    • false:エンティティの品目情報を返します。

    デフォルト値:false

    headerSysID 文字列 データを取得するエンティティのヘッダー sys_id。lineSysIDsパラメーターを指定しない場合は必須です。ヘッダー sys_idsを渡さない場合は null を渡します。

    スクリプトで 1 つ以上のヘッダー sys_idsを指定するには、getPrimitivesEPService() ユーティリティメソッドで context.isMultiSelect = true を設定します。詳細については、「 LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」のパラメーターテーブルを参照してください。

    注:
    少なくとも 1 つの headerSysID または lineSysIDs パラメーターが必要です。
    isTarget ブール オプション。ターゲットエンティティデータをフェッチするかどうかを決定するフラグ。
    有効な値:
    • true:ターゲットエンティティのデータをフェッチします。
    • false:ターゲットエンティティのデータをフェッチしません。

    デフォルト値:false

    lineSysID 文字列 エンティティデータを取得するエンティティの品目sys_id。headerSysIDsを指定せず、エンティティ構造が [販売済み製品] などの品目で始まる場合は必須です。

    スクリプトで 1 つ以上の品目sys_idsを指定するには、getPrimitivesEPService() ユーティリティメソッドで context.isMultiSelect = true を設定します。詳細については、「 LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」のパラメーターテーブルを参照してください。

    注:
    少なくとも 1 つの headerSysID または lineSysIDs パラメーターが必要です。複数の lineSysIDsを渡す場合は、すべてのレコードが同じ headerSysIDに属している必要があります。
    表 : 4. 戻り値
    タイプ 説明
    JSON オブジェクト エンティティレコードの詳細を含む JSON。

    データタイプ:オブジェクトのアレイ

    {
    "items": [
      {
      "attributes": {Object},
      "sys_id": {Object},
      "table": "String",
      "lineItems": [
        {
         "attributes": {Object},
         "sys_id": {Object},
         "table": "String",
         "characteristics": [Array],
         "lineItems": [Array]
         }
        ],
      "characteristics": [Array],
      "_state": "String"
      }
     ]
    }
    _state エンティティのアクティビティステータス。

    可能な値:

    • active:エンティティはアクティブです。
    • inactive:エンティティは非アクティブです。

    デフォルト:アクティブ

    データタイプ:文字列

    特性 エンティティ特性のリスト。特性はエンティティによって異なる場合があります。

    データタイプ:オブジェクトのアレイ

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    characteristics.attributes 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。<属性タイプ> は、特性に関連付けられたレコード/機能に基づいて、さまざまな値にすることができます。たとえば、このオブジェクトには、属性レコードのsys_id、関連する特性レコード、特性オプションレコード、または販売済み製品情報への参照を含めることができます。

    データタイプ:オブジェクト

    "attributes": {
      "<attribute_type>": {Object}
    }
    characteristics.attributes.<attribute_type> アイテム属性のキー名に関する情報。
    "<key_name>": { 
      "value": "String" 
    }

    データタイプ:オブジェクト

    characteristics.attributes.<attribute_type>.value 通常は、関連付けられた属性レコードのsys_idですが、関連付けられた属性タイプを説明する任意のテキスト文字列にすることもできます。

    データタイプ:文字列

    characteristics.sys_id 関連付けられた特性レコードのsys_idを含むオブジェクト。

    データタイプ:オブジェクト

    "sys_id": { 
      "value": "String" 
     }
    characteristics.sys_id.value 関連付けられた特性レコードのSys_id。

    データタイプ:文字列

    characteristics.table 「見込み顧客から現金へ」エンティティの特性レコードを含むテーブルの名前。

    データタイプ:文字列

    アイテム context.isMultiSelect が true に設定されている場合、選択されたオブジェクトのアレイが含まれます。

    データタイプ:オブジェクトのアレイ

    "items": [
    { 
      "attributes": {Object}, 
      "sys_id": {Object}, 
      "table": "String",
      "lineItems": [Array]
     }, 
    ]
    items.attributes アイテムレコードの属性。属性はエンティティによって異なる場合があります。
    "attributes": {
      "account": {Object},
      "name": {Object}
    }

    データタイプ:オブジェクト

    items.attributes.account アイテム属性に関連付けられているアカウントに関する情報。
    "account": { 
      "value": "String" 
    }
    items.attributes.account.value アイテムの属性。属性はエンティティによって異なる場合があります。
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    データタイプ:オブジェクト

    items.attributes.<key_name> アイテム属性のキー名に関する情報。
    "<key_name>": { 
      "value": "String" 
    }

    データタイプ:オブジェクト

    items.attributes.<key_name>.value キー名属性の値。

    データタイプ:文字列

    items.sys_id エンティティアイテムに関するsys_id情報を含むオブジェクト。値はエンティティによって異なります。

    データタイプ:オブジェクト

    "sys_id": {
      "value": "String"
    }
    items.sys_id.value 関連アイテムのSys_id。

    データタイプ:文字列

    items.table 「見込み顧客から現金へ」エンティティに関連付けられた品目レコードを含むテーブルの名前。

    データタイプ:文字列

    items.lineItems エンティティレコードの品目の詳細を含む JSON オブジェクト。

    データタイプ:オブジェクトのアレイ

    "lineItems": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": "String",
        "sys_id": {Object},
        "table": "String"
      }
    ]
    items.lineItems._state 品目エンティティのアクティビティステータス。

    可能な値:

    • active:エンティティはアクティブです。
    • inactive:エンティティは非アクティブです。

    デフォルト:アクティブ

    データタイプ:文字列

    items.lineItems.attributes 品目レコードの属性。属性はエンティティによって異なる場合があります。
    "attributes": {
      "account": {Object},
      "<key_name>": {Object}
    }

    データタイプ:オブジェクト

    items.lineItems.attributes.<key_name> 品目属性のキー名に関する情報。
    "<key_name>": { 
      "value": "String" 
    }

    データタイプ:オブジェクト

    items.lineItems.attributes.<key_name>.value キー名属性の値。

    データタイプ:文字列

    items.lineItems.attributes.account 品目属性に関連付けられたアカウントに関する情報。
    "account": { 
      "value": "String" 
    }
    items.lineItems.attributes.account.value 品目属性に関連付けられたアカウントのSys_id。

    データタイプ:文字列

    items.lineItems.characteristics 品目に関連付けられた特性のリスト。特性はエンティティによって異なる場合があります。

    データタイプ:オブジェクトのアレイ

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    items.lineItems.characteristics.attributes 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。<属性タイプ> は、特性に関連付けられたレコード/機能に基づいて、さまざまな値にすることができます。たとえば、このオブジェクトには、属性レコードのsys_id、関連する特性レコード、特性オプションレコード、または販売済み製品情報への参照を含めることができます。

    データタイプ:オブジェクト

    "attributes": {
      "<attribute_type>": {Object}
    }
    items.lineItems.characteristics.attributes.<attribute_type>.value 通常は、関連付けられた属性レコードのsys_idですが、関連付けられた属性タイプを説明する任意のテキスト文字列にすることもできます。

    データタイプ:文字列

    items.lineItems.characteristics.sys_id 関連付けられた特性レコードのsys_idを含むオブジェクト。

    データタイプ:オブジェクト

    "sys_id": { 
      "value": "String" 
     }
    items.lineItems.characteristics.sys_id.value 関連付けられた特性レコードのSys_id。

    データタイプ:文字列

    items.lineItems.characteristics.table 「見込み顧客から現金へ」エンティティの特性レコードを含むテーブルの名前。

    データタイプ:文字列

    items.lineItems.lineItems 親品目の子品目。このオブジェクトの形式は lineItems パラメーターと同じです。

    データタイプ:オブジェクト

    "lineItems": [
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "_state": {Object},
        "sys_id": {Object},
        "table": "String"
      }
    ] 
    items.lineItems.sys_id 関連する品目レコードに関するsys_id情報を含むオブジェクト。

    データタイプ:オブジェクト

    "sys_id": {
      "value": "String"
    }
    items.lineItems.sys_id.value 関連する品目レコードのSys_id。

    データタイプ:文字列

    items.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" 
                }, 
              "_state": "active",
              "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "8d669b6665ebf110f877d71ec56bf75c" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "8d669b6665ebf110f87d71ec56bf75c" 
                },
              "_state": "active", 
              "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": [],
              "_state": "active" 
            } 
          ] 
        } 
      ] 
    }

    LeadtoCashCore:delta(オブジェクト sourceJSON, オブジェクト dirtyJSON, オブジェクト additionalParams)

    「見込み顧客から現金へ」エンティティのソースオブジェクトと変更されたソース JSON オブジェクトを比較し、追加、削除、変更など、ソース JSON に加えられた変更を記述する JSON オブジェクトを返します。

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで delta() を呼び出す前に、最初にスクリプト拡張ポイント PrimitiveUtil()LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト) ユーティリティメソッドで呼び出して実装をトリガーする必要があります。フローごとにサービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 5. パラメーター
    名前 タイプ 説明
    ソース JSON オブジェクト ソース「見込み顧客から現金へ」エンティティの JSON オブジェクト。
    注:
    ダーティ JSON オブジェクト 「Lead-to-Cash」エンティティの変更済みソース JSON。
    additionalParams オブジェクト オプション。使用する追加パラメーター。
    additionalParams.delta_ignore_attributes オブジェクト ソースと dirtyJSON の比較中に無視するテーブル属性。再構成ユースケースのサポートを有効にします。
    {  
    “<table_name>”: [<attribute_name1>, attribute_name2>] 
    }
    additionalParams.delta_ignore_attributes.<table_name> 文字列 無視するテーブルの名前とそれに関連する属性。

    たとえば、次のようになります:

    {  
    “sn_install_base_sold_product”: [“state”,”unit_price”]  
    }
    additionalParams.loadDisplayValue ブール オプション。各属性の表示値をロードするかどうかを示すフラグ。
    有効な値:
    • true:属性の表示値のロードを有効にします。
    • false:属性の表示値のロードを有効にしません。

    デフォルト値:false

    表 : 6. 戻り値
    タイプ 説明
    JSON オブジェクト sourceJSON と dirtyJSON の間で発生した変更を含むエンティティレコードの詳細を含むオブジェクト。

    データタイプ:オブジェクト

    {
    "lineItems": [Array] 
    }
    ラインアイテム エンティティレコードの品目の詳細を含む JSON オブジェクト。たとえば、注文品目や見積品目などです。

    データタイプ:オブジェクトのアレイ

    "lineItems": [ 
     {
      "_action": "String",
      "attributes": {Object}
      "characteristics": [Array]
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    lineItems._action ソース JSON の品目に適用された変更アクション。
    可能な値:
    • add:ソース JSON に情報が追加されました。
    • change:ソース JSON 内の情報が更新されました。
    • 切断:情報がソース JSON から切断されました。
    • nochange:ソース JSON に変更は発生しませんでした。

    データタイプ:文字列

    lineItems.attributes 品目の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "attributes": { 
      "<attribute_name>": {Object}
    }
    lineitems.attributes.<attribute_name> 品目属性の名前。たとえば、アカウントまたは連絡先の名前です。エンティティのさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    lineitems.attributes.<attribute_name>.value 品目属性の値。

    データタイプ:文字列

    lineItems.attributes.account アイテム属性に関連付けられているアカウントに関する情報。

    データタイプ:オブジェクト

    "account": { 
      "value": "String" 
    }
    lineItems.attributes.account.value 品目属性に関連付けられたアカウントのSys_id。

    データタイプ:文字列

    lineItems.characteristics 品目の特性。エンティティに基づいてさまざまなフィールドを含めることができます。

    データタイプ:オブジェクトのアレイ

    "characteristics": [  
     {  
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
      }  
    ]
    lineItems.characteristics.attributes ヘッダーレコード特性の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "attributes": { 
     "<field_name>": { 
     "value": "String"
    }
    lineitems.characteristics.attributes.<field_name> 品目に関連付けられた特性レコードの属性名。

    データタイプ:オブジェクト

    "<field_name>": { 
      "value": "String" 
    }
    lineitems.characteristics.attributes.<field_name>.value エンティティの特性レコードに属する属性の値。

    データタイプ:文字列

    lineItems.characteristics.sys_id 特性レコードのSys_idオブジェクト。

    データタイプ:オブジェクト

    "sys_id": { 
      "value": "String" 
    }
    lineItems.characteristics.sys_id.value 関連付けられた特性レコードのSys_id。更新されるテーブルはエンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    lineItems.characteristics.table 特性レコードを含むテーブルの名前。

    データタイプ:文字列

    lineItems.lineItems 親品目の子品目。このオブジェクトの形式は lineItems パラメーターと同じです。

    データタイプ:オブジェクトのアレイ

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    lineItems.sys_id 関連付けられたアイテムレコードのSys_id。

    データタイプ:オブジェクト

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 関連アイテムレコードのSys_id。更新されるテーブルは、注文や仕様など、エンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

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

    複数選択

    次の例は、最初に PrimitiveUtilgetPrimitivesEPService を呼び出し、次に複数の行またはヘッダー 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 出力をデータベースにコミットし、「見込み顧客から現金へ」ワークフローを完了します。

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで effect() を呼び出す前に、LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)ユーティリティメソッドを使用してスクリプト拡張ポイント PrimitiveUtil() を呼び出して実装をトリガーする必要があります。フローごとにサービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 7. パラメーター
    名前 タイプ 説明
    ソース JSON オブジェクト ソースエンティティの詳細を含む JSON。
    targetJSON オブジェクト ターゲットエンティティの詳細を含む JSON。
    additionalParams オブジェクト オプション。使用する追加パラメーター。
    additionalParams.is_future_state ブール オプション。これは、再構成のユースケースをサポートするために使用します。
    許容値:
    • true:辞書フィールド名の代わりにコンテキスト変数キーを提供します。これにより、ソースからターゲットに属性をマッピングする代わりに、ターゲットエンティティからすべての属性を指定できます。
    • false:辞書フィールド名を指定します。

    デフォルト値:false

    表 : 8. 戻り値
    タイプ 説明
    JSON オブジェクト 「見込み顧客から現金へ」エンティティの各ヘッダーで、ソースからターゲットエンティティ JSON オブジェクトに発生し、適用された変更。

    データタイプ:オブジェクト

    {
      "_glide_action": "String",
      "_records_count: {Object},
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String", 
      "table": "String"
    }
    _glide_action ソース JSON とターゲット JSON の間のアイテムレベルで発生した変更を示します。
    可能な値 (大文字と小文字を区別):
    • 削除:ソースとターゲットの JSON 構造の間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE:ソースとターゲットの JSON 構造の間に変更はありませんでした。
    • 更新:ソース構造と JSON 構造の間で情報が変更されました。

    データタイプ:文字列

    _records_count 各テーブルに挿入された新しいレコードの詳細。

    データタイプ:オブジェクト

    "_records_count": {
    "tableName": {Object}
    }
    _records_count.tableName 新しいレコードが挿入されるテーブルの名前。

    データタイプ:オブジェクト

    "tableName": {
          "insert": Number}
    }
    _records_count.tableName.insert テーブルに挿入された新しいレコードの数。

    データタイプ:数値

    _source_object 変更が適用されたソース JSON オブジェクト。オブジェクト構造はエンティティによって異なる場合があります。

    データタイプ:オブジェクト

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    _source_object.sys_id 更新されたソースエンティティレコードのSys_id。

    データタイプ:文字列

    _source_object.table 更新されたソースエンティティレコードのテーブルの場所。この値はエンティティによって異なる場合があります。

    データタイプ:文字列

    lineItems._glide_action 品目で発生した変更アクション。
    可能な値:
    • 削除:ソースとターゲットの JSON 構造の間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE:ソースとターゲットの JSON 構造の間に変更はありませんでした。
    • 更新:ソース構造と JSON 構造の間で情報が変更されました。

    データタイプ:文字列

    lineItems._source_object _glide_actionが適用されたソースエンティティレコードの詳細。このオブジェクトはエンティティによって異なる場合があります。

    データタイプ:オブジェクト

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    lineItems._source_object.sys_id 更新されたソースエンティティレコードのSys_id。

    データタイプ:文字列

    lineItems._source_object.table 更新されたソースエンティティレコードのテーブルの場所。この値はエンティティによって異なる場合があります。

    データタイプ:文字列

    lineItems._state エンティティのステータス。

    データタイプ:オブジェクト

    "_state": {  
     "value": "String" 
    } 
    lineItems._state.value エンティティの現在のステータス。
    可能な値:
    • active:エンティティオブジェクトはアクティブステータスです。
    • inactive:エンティティオブジェクトはアクティブステータスではありません。

    データタイプ:文字列

    lineItems.attributes 品目の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "attributes": { 
      "<attribute_name>": {Object}
    }
    lineitems.attributes.<attribute_name> 品目属性の名前。たとえば、アカウントまたは連絡先の名前です。エンティティのさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    lineitems.attributes.<attribute_name>.value 品目属性の値。

    データタイプ:文字列

    lineItems.attributes.account アイテム属性に関連付けられているアカウントに関する情報。

    データタイプ:オブジェクト

    "account": { 
      "value": "String" 
    }
    lineItems.attributes.account.value 品目属性に関連付けられたアカウントのSys_id。

    データタイプ:文字列

    lineItems.attributes.short_description 品目属性の簡単な説明。

    データタイプ:文字列

    lineItems.characteristics 品目に関連付けられた特性のリスト。特性はエンティティによって異なる場合があります。

    データタイプ:オブジェクトのアレイ

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    lineItems.characteristics._glide_action 品目で発生した変更アクション。
    可能な値:
    • 削除:ソースとターゲットの JSON 構造の間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE:ソースとターゲットの JSON 構造の間に変更はありませんでした。
    • 更新:ソース構造と JSON 構造の間で情報が変更されました。

    データタイプ:文字列

    lineItems.characteristics.attributes 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。

    たとえば、このオブジェクトには、属性レコードのsys_id、関連する特性レコード、アカウントまたは連絡先、特性オプションレコード、または販売済み製品情報への参照を含めることができます。

    データタイプ:オブジェクト

    "attributes": {
      "<attribute_type>": {Object}
    }
    lineItems.characteristics.attributes.<attribute_type> 属性のタイプ。この値には、特性に関連付けられたレコードまたは機能に基づいて、さまざまな値を含めることができます。

    データタイプ:オブジェクト

    "<attribute_type>": {
      "value": "String"
    }
    lineItems.characteristics.attributes.<attribute_type>.value 品目属性の値。

    データタイプ:文字列

    lineitems.characteristics.attributes.<field_name> 品目に関連付けられた特性レコードの属性名。

    データタイプ:オブジェクト

    "<field_name>": { 
      "value": "String" 
    }
    lineitems.characteristics.attributes.<field_name>.value エンティティの特性レコードに属する属性の値。

    データタイプ:文字列

    lineItems.characteristics.sys_id 関連付けられた特性レコードのSys_id。

    データタイプ:オブジェクト

    "sys_id": { 
      "value": "String" 
     }
    lineItems.characteristics.sys_id.value 関連付けられた特性レコードのSys_id。更新されるテーブルはエンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    lineItems.characteristics.table 特性レコードを含むテーブルの名前。

    データタイプ:文字列

    lineItems.lineItems 親品目の子品目。このオブジェクトの形式は lineItems パラメーターと同じです。

    データタイプ:オブジェクトのアレイ

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    lineItems.sys_id 関連付けられたアイテムレコードのSys_id。

    データタイプ:オブジェクト

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 関連アイテムレコードのSys_id。更新されるテーブルは、注文や仕様など、エンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    lineItems.table 「見込み顧客から現金へ」エンティティに関連付けられたアイテムレコードを含むテーブルの名前。

    データタイプ:文字列

    sys_id エンティティのSys_id。

    データタイプ:文字列

    テーブル エンティティが見つかったテーブルの名前。

    データタイプ:文字列

    次の例は、 delta() メソッドの出力を使用して変換ロジックを適用する方法を示しています。
    注:
    ソースの 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 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"
    }
       ],
      "_records_count":
        {
            "sn_ind_tmt_orm_order":
            {
                "insert": 1
            },
            "sn_ind_tmt_orm_order_line_item":
            {
                "insert": 3
            },
            "sn_ind_tmt_orm_order_characteristic_value":
            {
                "insert": 1
            }
        }
    }

    LeadtoCashCore:commitInstance(オブジェクト targetJSON, オブジェクト additionalParams)

    指定された「見込み顧客から現金へ」エンティティの JSON をインスタンスにコミットし、更新された情報を含むステータスメッセージを返して、結果として「見込み顧客から現金へ」コアエンティティテーブルを更新します。

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで commitInstance() を呼び出す前に、最初にスクリプト拡張ポイント PrimitiveUtil()LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト) ユーティリティメソッドで呼び出して実装をトリガーする必要があります。フローごとにサービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 9. パラメーター
    名前 タイプ 説明
    targetJSON オブジェクト コミットするターゲットエンティティの「glide_action」を含む JSON オブジェクト。ここに effect() メソッドの出力を渡すことができます。
    注:
    「glide_action」は、「見込み顧客から現金へ」エンティティのソースとターゲット JSON の間で発生した変更アクションを示します。
    additionalParams オブジェクト オプション。使用する追加パラメーター。
    additionalParams.useNumberGenerator ブール オプション。sys_numbersを一括で生成するかどうかを示すフラグ。
    有効な値:
    • true:レコード挿入プロセス中に使用するsys_numbersを一括で生成します。番号をフェッチするための追加のクエリの必要性を減らし、挿入時間を短縮します。
    • false:各レコードの挿入時にsys_numberを個別に生成します。

    デフォルト値:false

    表 : 10. 戻り値
    タイプ 説明
    JSON オブジェクト ターゲットエンティティレコードに関する詳細。

    データタイプ:オブジェクト

    {
      "dataObject": {Object},
      "displayMessage": "String",
      "error": "String",
      "headerID": "String",
      "message": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }
    データオブジェクト 各レベルで実行されたコミット操作に関する詳細データを含む JSON オブジェクト。

    データタイプ:オブジェクト

    "dataObject": {
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "lineItems": [Array],
      "sys_id": "String",
      "table": "String"
    }
    dataObject._commitObjectInfo 品目の変更が INSERT アクションである場合は、ステータスをコミットしてsys_idします。

    データタイプ:オブジェクト

    "_commitObjectInfo": {
      "status": "String",
      "sys_id": "String"
    }
    dataObject._commitObjectInfo.status 特定のエンティティで実行されたコミット操作のステータス。
    可能な値:
    • success:エンティティコミット操作は成功しました。
    • failure:エンティティのコミット操作は成功しませんでした。

    データタイプ:文字列

    dataObject._commitObjectInfo.sys_id 挿入されたレコードのSys_id。このメソッドは、 dataObject._glide_actionINSERT の場合にのみこのパラメーターを返します。更新されるテーブルはエンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    dataObject._glide_action 品目で発生した変更アクション。
    可能な値:
    • 削除:ソースとターゲットの JSON 構造の間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE:ソースとターゲットの JSON 構造の間に変更はありませんでした。
    • 更新:ソース構造とターゲット構造の間で情報が変更されました。

    データタイプ:文字列

    dataObject._source_object 変更が適用されたソース JSON オブジェクト。オブジェクト構造はエンティティによって異なる場合があります。

    データタイプ:オブジェクト

    "_source_object": {
      "sys_id": "String", 
      "table": "String” 
    }
    dataObject._source_object.sys_id _glide_actionが適用されたソースエンティティレコードのSys_id。更新されるテーブルはエンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    dataObject._source_object.table _glide_actionが適用されたソースエンティティレコードを含むテーブルの名前。これはエンティティによって異なる場合があります。

    データタイプ:文字列

    dataObject.lineItems エンティティレコードの品目の詳細。たとえば、注文品目や見積品目などです。

    データタイプ:オブジェクトのアレイ

    "lineItems": [ 
    { 
      "_action": "String",
      "_commitObjectInfo": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "_state": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String",
    }
    ]
    dataObject.lineItems._action ソース JSON の品目に適用された変更アクション。
    可能な値:
    • add:ソース JSON に情報が追加されました。
    • change:ソース JSON 内の情報が更新されました。
    • 切断:情報がソース JSON から切断されました。
    • nochange:ソース JSON に変更は発生しませんでした。

    データタイプ:文字列

    dataObject.lineItems._commitObjectInfo 品目の変更が INSERT アクションの場合は返されます。オブジェクトのコミットステータスとsys_idが含まれます。

    データタイプ:オブジェクト

    "_commitObjectInfo": { 
      "status": "String", 
      "sys_id": "String" 
    }
    dataObject.lineItems._commitObjectInfo.status 特定のエンティティで実行されたコミット操作のステータス。
    可能な値:
    • success:エンティティコミット操作は成功しました。
    • failure:エンティティのコミット操作は成功しませんでした。

    データタイプ:文字列

    dataObject.lineItems._commitObjectInfo.sys_id 挿入されたレコードのSys_id。更新されるテーブルはエンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    dataObject.lineItems._glide_action 品目で発生した変更アクション。
    可能な値:
    • 削除:ソースとターゲットの JSON 構造の間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE:ソースとターゲットの JSON 構造の間に変更はありませんでした。
    • 更新:ソース構造と JSON 構造の間で情報が変更されました。

    データタイプ:文字列

    dataObject.lineItems._source_object _glide_actionが適用されたソースエンティティレコードの詳細。このオブジェクトはエンティティによって異なる場合があります。

    データタイプ:オブジェクト

    "_source_object": { 
      "sys_id": "String",
      "table": "String" 
    }
    dataObject.lineItems._source_object.sys_id _glide_actionが適用されたソースエンティティレコードのSys_id。

    データタイプ:文字列

    dataObject.lineItems._source_object.table _glide_actionが適用されたソースエンティティレコードのテーブル名。

    データタイプ:文字列

    dataObject.lineItems._state オブジェクトのステータス。
    可能な値:
    • active:エンティティオブジェクトはアクティブステータスです。
    • inactive:エンティティオブジェクトはアクティブステータスではありません。

    データタイプ:文字列

    dataObject.lineItems.attributes 品目の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "attributes": { 
      "<attribute_name>": {Object}
    }
    dataObject.lineItems.attributes.<attribute_name> 品目属性の名前。たとえば、アカウントまたは連絡先の名前です。エンティティのさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "attributes": { 
     "<attribute_name>": { 
       "value": "String"
     }
    }
    dataObject.lineItems.attributes.<attribute_name>.value 品目属性の値。

    データタイプ:文字列

    dataObject.lineItems.characteristics 品目に関連付けられた特性のリスト。特性はエンティティによって異なる場合があります。

    データタイプ:オブジェクトのアレイ

    "characteristics": [  
     {
      "_glide_action: "String",
      "attributes": {Object},
      "sys_id": {Object},  
      "table": "String"
     }  
    ]
    dataObject.lineItems.characteristics._glide_action 品目で発生した変更アクション。
    可能な値:
    • 削除:ソースとターゲットの JSON 構造の間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE:ソースとターゲットの JSON 構造の間に変更はありませんでした。
    • 更新:ソース構造と JSON 構造の間で情報が変更されました。

    データタイプ:文字列

    dataObject.lineItems.characteristics.attributes 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。

    たとえば、このオブジェクトには、属性レコードのsys_id、関連する特性レコード、アカウントまたは連絡先、特性オプションレコード、または販売済み製品情報への参照を含めることができます。

    データタイプ:オブジェクト

    "attributes": {
      "<attribute_type>": {Object}
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type> 特性属性の名前。エンティティのさまざまなフィールドを含めることができます。

    データタイプ:オブジェクト

    "<attributes_type>": { 
     "<attribute_name>": {Object}
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name> 特性属性の名前。

    データタイプ:オブジェクト

    "<attribute_name>": { 
     "value": "String"
    }
    dataObject.lineItems.characteristics.attributes.<attribute_type>.<attribute_name>.value 品目属性の値。

    データタイプ:文字列

    dataObject.lineItems[0].characteristics.sys_id 関連付けられた特性レコードのSys_id。

    データタイプ:オブジェクト

    "sys_id": { 
      "value": "String" 
     }
    dataObject.lineItems[0].characteristics.sys_id.value 関連付けられた特性レコードのSys_id。更新されるテーブルはエンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    dataObject.lineItems[0].characteristics.table 特性レコードを含むテーブルの名前。

    データタイプ:文字列

    dataObject.lineItems[0].lineItems 親品目の子品目。このオブジェクトの形式は lineItems パラメーターと同じです。

    データタイプ:オブジェクトのアレイ

    "lineItems": [  
     {  
      "_glide_action": "String",
      "attributes": {Object},
      "characteristics": [Array],
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    dataObject.lineItems[0].sys_id 関連付けられたアイテムレコードのSys_id。

    データタイプ:オブジェクト

    "sys_id": {
      "value": "String"
    }
    dataObject.lineItems[0].sys_id.value 関連アイテムレコードのSys_id。更新されるテーブルは、注文や仕様など、エンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    dataObject.lineItems[0].table 「見込み顧客から現金へ」エンティティに関連付けられたアイテムレコードを含むテーブルの名前。

    データタイプ:文字列

    dataObject.sys_id 関連する品目レコードのSys_id。更新されるテーブルはエンティティによって異なる場合があります。たとえば、注文 [sn_ind_tmt_orm_order] です。

    データタイプ:文字列

    dataObject.table 「見込み顧客から現金へ」エンティティのレコードを含むテーブルの名前。

    データタイプ:文字列

    displayMessage UI でユーザーに表示されるメッセージ。表示メッセージは、 message 文字列値と同じです。

    データタイプ:文字列

    エラー commitInstance メソッドの失敗を説明するエラーメッセージ。要求が成功した場合、このパラメーターは空の文字列を返します。

    データタイプ:文字列

    headerID commitInstance メソッドによって作成または更新されたターゲットエンティティレコードのSys_id。

    保存場所:販売済み製品、注文などのエンティティタイプに応じた関連テーブル。

    データタイプ:文字列

    メッセージ 成功、エラー、またはpartially_successシナリオを説明するメッセージ。このメッセージは displayMessage 文字列値と同じであり、API に対する他のアプリケーション呼び出しで使用できます。

    データタイプ:文字列

    rootLineID commitInstance メソッドによって挿入、更新、または削除されたターゲットエンティティレコードのsys_idsのカンマ区切りリスト。

    保存場所:販売済み製品、注文などのエンティティタイプに応じた関連テーブル。

    データタイプ:文字列のアレイ

    ステータス コミットの成功を確認するステータスメッセージ。

    可能な値:

    • success:コミットは成功しました。
    • failure:ルート行またはヘッダーの Glide 操作に失敗しました。見込み顧客から現金へのコア API フローを再トリガーします。
    • partial_success:JSON 全体の処理中にエラーが発生しました。特定のエラーのトラブルシューティングについては、「ログの処理」を参照してください。

    データタイプ:文字列

    次の例は、各 LeadtoCashCore メソッドを使用して、ソースからターゲットへのエンティティの詳細を取得、適用、およびコミットする方法を示しています。この例では、commitInstance() メソッドを使用して、変更された JSON をインスタンスの [見込み顧客から現金へ] エンティティにコミットします。

    //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));  
    

    出力:

    {
      "status": "success",
      "error": "",
      "message": "Commit operation successfully processed.",
      "displayMessage": "Commit operation successfully processed.",
      "dataObject": {
        "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": "86837a386f0331003b3c498f5d3ee4ca"
              },
              "sold_product": {
                "value": "e4bbf902b7343300ece839a6ee11a937"
              },
              "short_description": {
                "value": "Network Monitoring"
              }
            },
            "_glide_action": "INSERT",
            "_source_object": {
              "sys_id": "e4bbf902b7343300ece839a6ee11a937",
              "table": "sn_install_base_sold_product"
            },
            "lineItems": [
              {
                "sys_id": "-1",
                "table": "sn_ind_tmt_orm_order_line_item",
                "attributes": {
                  "account": {
                    "value": "86837a386f0331003b3c498f5d3ee4ca"
                  },
                  "sold_product": {
                    "value": "23dbbd02b7343300ece839a6ee11a98e"
                  },
                  "short_description": {
                    "value": "Remote Monitoring"
                  }
                },
                "_glide_action": "INSERT",
                "_source_object": {
                  "sys_id": "23dbbd02b7343300ece839a6ee11a98e",
                  "table": "sn_install_base_sold_product"
                },
                "lineItems": [],
                "characteristics": [],
                "coveredProducts": [],
                "_commitObjectInfo": {
                  "sys_id": "d2d5b868488d5610f877a23d5db8922f",
                  "status": "success"
                }
              }
            ],
            "characteristics": [],
            "coveredProducts": [],
            "_commitObjectInfo": {
              "sys_id": "92d5b868488d5610f877a23d5db89229",
              "status": "success"
            }
          }
        ],
        "_commitObjectInfo": {
          "sys_id": "46d5b0a4488d5610f877a23d5db892ef",
          "status": "success"
        }
      },
      "headerID": "46d5b0a4488d5610f877a23d5db892ef",
      "rootLineIDs": [
        "92d5b868488d5610f877a23d5db89229"
      ]
    }