LeadtoCashCore - スコープ対象

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:75分
  • LeadtoCashCore スクリプトインクルードは、Lead-to-Cash Core ライフサイクルで「lead-to-cash」ワークフローを調整するメソッドを提供します。

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

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

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

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

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

    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(String sourceToTargetConfigID, Object context)」を参照してください。スクリプトで PrimitiveUtil()getPrimitivesEPService() を指定すると、ユースケースに応じて createInstance()、delta()、effect()、commitInstance() スクリプトインクルードのいずれかを呼び出すことができます。

    「Lead to Cash Core」ワークフロースクリプトの例

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

    LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, Object context)

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

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

    表 : 1. パラメーター
    名前 タイプ 説明
    context オブジェクト オプション。属性値を表示し、一度に複数のインスタンスを呼び出すための追加パラメーターオプション。
    "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(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams)

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

    createInstance() メソッドの出力 JSON は、delta()、effect()、commitInstance() などの Lead to Cash Core ワークフローの後続のメソッドで使用します。

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

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

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

    デフォルト値:false

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

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

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

    デフォルト値:false

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

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

    注:
    少なくとも 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"
      }
     ]
    }
    _状態 エンティティのアクティビティステータス。

    可能な値:

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

    デフォルト:active

    データタイプ:文字列

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

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

    "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 「見込み顧客から現金へ」エンティティの特性レコードを含むテーブルの名前。

    データタイプ:文字列

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

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

    "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:エンティティは非アクティブです。

    デフォルト:active

    データタイプ:文字列

    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 に加えられた変更を記述する JSON オブジェクトを返します。

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで delta() を呼び出す前に、最初に LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, Object context) ユーティリティメソッドを使用してスクリプト拡張ポイント PrimitiveUtil() を呼び出し、実装をトリガーする必要があります。フローごとにサービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 5. パラメーター
    名前 タイプ 説明
    ソース JSON オブジェクト ソース「Lead-to-Cash」エンティティの JSON オブジェクト。
    注:
    LeadtoCashCore - createInstance(String headerSysIDs, String lineSysIDs, Boolean isTarget, Object additionalParams)メソッドを使用して、エンティティのソース JSON を取得します。
    ダーティJSON オブジェクト 「見込み顧客から現金へ」エンティティの変更されたソース 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] 
    }
    lineItem エンティティレコードの品目の詳細を含む JSON オブジェクト。たとえば、注文品目や見積品目などです。

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

    "lineItems": [ 
     {
      "_action": "String",
      "attributes": {Object}
      "characteristics": [Array]
      "lineItems": [Array],
      "sys_id": {Object},
      "table": "String"
     } 
    ]
    lineItems._action ソース JSON の品目に適用される変更アクション。
    可能な値:
    • add:ソース JSON に情報が追加されました。
    • change:ソース JSON で情報が更新されました。
    • disconnect:情報がソース 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。更新されたテーブルは、エンティティによって異なる場合があります。例:Order [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。更新されたテーブルは、注文や仕様などのエンティティによって異なる場合があります。例:Order [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(String sourceToTargetConfigID, Object context) ユーティリティメソッドを使用してスクリプト拡張ポイント PrimitiveUtil() を呼び出し、実装をトリガーする必要があります。フローごとにサービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 7. パラメーター
    名前 タイプ 説明
    ソース JSON オブジェクト ソースエンティティの詳細を含む JSON。
    注:
    ターゲット JSON オブジェクト ターゲットエンティティの詳細を含む 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 の間のアイテムレベルで発生した変更を示します。
    可能な値 (大文字と小文字を区別):
    • DELETE:ソースとターゲットの 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 品目で発生した変更アクション。
    可能な値:
    • DELETE:ソースとターゲットの 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 品目で発生した変更アクション。
    可能な値:
    • DELETE:ソースとターゲットの 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。更新されたテーブルは、エンティティによって異なる場合があります。例:Order [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。更新されたテーブルは、注文や仕様などのエンティティによって異なる場合があります。例:Order [sn_ind_tmt_orm_order]。

    データタイプ:文字列

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

    データタイプ:文字列

    sys_id エンティティのSys_id。

    データタイプ:文字列

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

    データタイプ:文字列

    次の例は、 delta() メソッドの出力を使用して変換ロジックを適用する方法を示しています。
    注:
    ソース JSON 形式が変更されるだけで、出力は両方で同じままであるため、同じスクリプトが単一選択と複数選択の両方のユースケースに適用できます。複数選択のユースケースでは、すべての品目が同じヘッダーに追加される 1 つのヘッダーが作成されます。
    //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)

    指定された「Lead-to-Cash」エンティティの JSON をインスタンスにコミットし、更新された情報を含むステータスメッセージを返して、結果として「Lead-to-Cash Core エンティティ」テーブルを更新します。

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで commitInstance() を呼び出す前に、最初に LeadtoCashCore - getPrimitivesEPService(String sourceToTargetConfigID, Object context) ユーティリティメソッドを使用してスクリプト拡張ポイント PrimitiveUtil() を呼び出し、実装をトリガーする必要があります。フローごとにサービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 9. パラメーター
    名前 タイプ 説明
    ターゲット JSON オブジェクト コミットするターゲットエンティティの「glide_action」を含む JSON オブジェクト。ここで effect() メソッドの出力を渡すことができます。
    注:
    「glide_action」は、「Lead-to-Cash」エンティティのソース JSON とターゲット 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 の場合にのみこのパラメーターを返します。更新されたテーブルは、エンティティによって異なる場合があります。例:Order [sn_ind_tmt_orm_order]。

    データタイプ:文字列

    dataObject._glide_action 品目で発生した変更アクション。
    可能な値:
    • DELETE:ソースとターゲットの 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。更新されたテーブルは、エンティティによって異なる場合があります。例:Order [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 で情報が更新されました。
    • disconnect:情報がソース 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。更新されたテーブルは、エンティティによって異なる場合があります。例:Order [sn_ind_tmt_orm_order]。

    データタイプ:文字列

    dataObject.lineItems._glide_action 品目で発生した変更アクション。
    可能な値:
    • DELETE:ソースとターゲットの 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 品目で発生した変更アクション。
    可能な値:
    • DELETE:ソースとターゲットの 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。更新されたテーブルは、エンティティによって異なる場合があります。例:Order [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。更新されたテーブルは、注文や仕様などのエンティティによって異なる場合があります。例:Order [sn_ind_tmt_orm_order]。

    データタイプ:文字列

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

    データタイプ:文字列

    dataObject.sys_id 関連付けられた品目レコードのSys_id。更新されたテーブルは、エンティティによって異なる場合があります。例:Order [sn_ind_tmt_orm_order]。

    データタイプ:文字列

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

    データタイプ:文字列

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

    データタイプ:文字列

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

    データタイプ:文字列

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

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

    データタイプ:文字列

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

    データタイプ:文字列

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

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

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

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

    可能な値:

    • success:コミットが成功しました。
    • failure:ルート行またはヘッダーの Glide 操作が失敗しました。Lead to Cash Core 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"
      ]
    }