LeadtoCashCore - スコープ対象

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

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

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

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

    1. LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト) - スクリプトの呼び出しに使用される拡張ポイントを取得するためのユーティリティが含まれています。すべてのメソッド呼び出しで指定する必要があります。詳細については、このトピックの「前提条件」セクションを参照してください。
    2. LeadtoCashCore - createInstance(文字列 headerSysIDs, 文字列 lineSysIDs, ブール値 isTarget, オブジェクト additionalParams) - 指定されたエンティティのデータをフェッチします。たとえば、品目とその関連データを含む顧客の注文関連情報などです。

      context パラメーターを使用して、スクリプト内で「複数選択」と呼ばれる 1 つ以上のヘッダーまたは行 ID を宣言します。context.entityConfigIdパラメーターを渡して、マッピングを定義せずにスクリプトを呼び出します。このような複数選択のユースケースでは、出力 JSON には、各エントリが単一のエンティティを表すキーアイテムアレイが含まれています。

    3. LeadtoCashCore:delta(オブジェクト sourceJSON, オブジェクト dirtyJSON, オブジェクト additionalParams) - 2 つの JSON 入力を比較し、それらの間に発生した変更を識別します。たとえば、エンティティで何かが追加、削除、または変更された場合などです。
    4. LeadtoCashCore:effect(オブジェクト sourceJSON, オブジェクト targetJSON, オブジェクト additionalParams) - ソース JSON オブジェクトをターゲット オブジェクトに変換します。
    5. 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(); 
    
    // Set the context.isMultiSelect parameter as true to enable multi-select use cases
    // Set the context.entityConfigId parameter to the config id of the source entity (sold prodcut) to trigger createInstance with only configId 
    var context = {"isMultiSelect": false, "entityConfigId": “sn_l2c_cust_flows_sold_product”}; 
    
    //Flow: Creation of an 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": {
      "entityConfigId": "String",
      "isMultiSelect": "Boolean",
      "loadDisplayValue": "Boolean"
    }
    context.entityConfigId 文字列 オプション。エンティティの構成 ID。entityConfigIdsourceToTargetConfigIDの両方が指定されている場合は、entityConfigIdが優先されます。

    テーブル:「Lead-to-Cash」エンティティ [sn_l2c_core_entity]

    データタイプ:文字列

    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)

    次の例では、 PrimitiveUtil() を呼び出し、Lead To Cash エンティティ [sn_l2c_core_entity] テーブルの configId l2c_order に基づいて実装を選択します。

    //Utility to invoke createInstance API   
    var util = new sn_l2c_core.PrimitiveUtil();  
    var context = {"isMultiSelect": true, “entityConfigId”: “l2c_order”};  
    // Set the context.isMultiSelect parameter as true to enable multi-select use cases. 
    // Set the context.entityConfigId parameter if createInstance needs to be invoked with only configId. 
     
    //Invokes the extension point and uses default implementation based on entityConfigId of a L2C flow.   
    var service = util.getPrimitivesEPService('’, context); 

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

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

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

    要件

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

    考慮事項

    • createInstance() が複数のカンマ区切りの headerID または lineID を一度に渡せるようにするには、getPrimitivesEPService() ブールパラメーターcontext.isMultiSelect true に設定します。それ以外の場合は、一度に 1 つの ID しか渡せません。複数の lineID を持つ単一の headerID のユースケースは、 context.isMultiSelect を true に設定しなくてもサポートされます。

    • エンティティの構成 ID のみで createInstance() を呼び出せるようにするには、 getPrimitivesEPService() 文字列パラメーター context.entityConfigId を設定します。entityConfigId と sourceToTargetConfigID の両方が渡された場合、entityConfigId が優先して createInstance() を実行します。

      この機能の詳細については、「 LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」を参照してください。

    • createInstance() は 、選択的なデータ取得と複数のルートエンティティ定義をサポートしているため、開発者は fetchRecordSysIdsmultiSelectMerge などの追加パラメーターを使用してランプとヘッダーレスシナリオを明示的にフェッチできます。
    表 : 3. パラメーター
    名前 タイプ 説明
    additionalParams オブジェクト オプション。使用する追加パラメーター。
    additionalParams.skipLines ブーリアン オプション。指定したエンティティの品目をフェッチするかどうかを示すフラグ。
    有効な値:
    • true:エンティティの品目情報の返却をスキップします。
    • false:エンティティの品目情報を返します。

    デフォルト値:false

    fetchRecordSysId オブジェクトのアレイ テーブル名をsys_idsに明示的にマッピングすることで、ヘッダーベースとヘッダーなしの両方のシナリオでデータの選択的フェッチを有効にします。
    [Behavior (動作)]:
    • ヘッダーあり:ヘッダーにリンクされている子エンティティ (ランプなど) を選択的にフェッチできます。ランプ ID が指定されていない場合は、ヘッダーにリンクされているすべてのランプをフェッチします。
    • ヘッダーなし:ヘッダーなしのエンティティで直接関係が欠落しているランプのフェッチをサポートします。ランプ ID を含める必要があります。これらがないと、ランプデータは返されません。

    構造:

    [{
     "<table_name1>": "<sys_id1>", 
     "<table_name2>": "<sys_id2>", 
    }]
    multiSelectMerge ブーリアン ヘッダーなしのシナリオでのみ。同じコンテキストタイプのデータを単一のフラット構造に結合するかどうかを示すフラグ。
    有効な値:
    • true:同じコンテキストタイプのデータをフラットな構造に結合します。
    • false:データを結合しません。
    additionalParams.allowedContextTypes 文字列のアレイ オプション。他のすべての無関係なセクションを除いて、allowedContextType にリストされているタイプのみへの入力と処理を制御します。

    有効な値:

    • ヘッダーベースの部分同期の場合、このメソッドがルート構造をビルドできるように、 ヘッダーallowedContextTypes で渡す必要があります。
    • ヘッダーなしの部分同期の場合、このメソッドが子データを処理するための構造を構築できるように、 lineItemsallowedContextTypes で渡す必要があります。

    構造:

    allowedContextTypes: ["header","headerRelatedParty"]  }; 
    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" 
            } 
          ] 
        } 
      ] 
    }

    entityConfigId を指定して createInstance() を呼び出す

    以下のスクリプト例では、 createInstance() メソッドを呼び出して、注文のデータ、その階層全体、およびその特性をロードします。この例は、SPから注文へのフローで、販売済み製品に添付されている販売契約データをフェッチすることを示しています。

    // Utility to invoke createInstance API
    var util = new sn_l2c_core.PrimitiveUtil();
    
    var quoteToSA = "sn_l2c_quote_to_sales_agreement_pricing";
    
    var context = {
      "entityConfigId": "sn_l2c_sales_agreement"
    };
    
    var spToOrder = "sn_l2c_cust_flows_sp_to_order";
    
    var service = util.getPrimitivesEPService(spToOrder, context);
    
    var createInstanceOutput = service.createInstance("c8e1e678432242105eba72eb3ab8f261");
    
    gs.info("Sales Agreement JSON " + JSON.stringify(createInstanceOutput));
    
    // The returned JSON can be used for subsequent methods of the flow such as delta(), effect() and commitInstance()

    出力:

    {
      "table": "sn_sales_agmt_core_sales_agreement",
      "sys_id": {
        "value": "c8e1e678432242105eba72eb3ab8f261"
      },
      "attributes": {
        "account": {
          "value": "051f62b0d7300200e5982cf65e610333"
        },
        "short_description": {
          "value": "1 year sales agreement for Spark Technologies"
        }
      },
      "lineItems": [
        {
          "table": "sn_sales_agmt_core_sales_agreement_line",
          "sys_id": {
            "value": "4104369034641210f877af77d9dd31bb"
          },
          "attributes": {
            "sales_agreement": {
              "value": "c8e1e678432242105eba72eb3ab8f261"
            },
            "short_description": {
              "value": "Home Automation Bundle"
            }
          },
          "lineItems": [
            {
              "table": "sn_sales_agmt_core_sales_agreement_line",
              "sys_id": {
                "value": "45e6fa4a436a02105eba72eb3ab8f247"
              },
              "attributes": {
                "sales_agreement": {
                  "value": "c8e1e678432242105eba72eb3ab8f261"
                },
                "short_description": {
                  "value": "Outdoor Camera"
                }
              },
              "lineItems": [],
              "characteristics": [],
              "pricingAdjustments": []
            },
            {
              "table": "sn_sales_agmt_core_sales_agreement_line",
              "sys_id": {
                "value": "73e6fa4a436a02105eba72eb3ab8f25a"
              },
              "attributes": {
                "sales_agreement": {
                  "value": "c8e1e678432242105eba72eb3ab8f261"
                },
                "short_description": {
                  "value": "Indoor Camera"
                }
              },
              "lineItems": [],
              "characteristics": [],
              "pricingAdjustments": []
            }
          ],
          "characteristics": [],
          "pricingAdjustments": []
        }
      ]
    }

    allowedContextType を使用した関係者の部分同期

    次の createInstance() スクリプトは、headerheaderRelatedParty を使用して allowedContextTypes を設定して、sn_l2c_quote_to_opportunity テーブル内のこれら 2 つの入力済みセクションのみを出力します。

    var util1 = new sn_l2c_core.PrimitiveUtil();
    var service1 = util1.getPrimitivesEPService('sn_l2c_quote_to_opportunity'); // WITH HEADER FLOW
    var quoteId = '04ba9004f11f3110f8777d7194f166f6';
    var additionalParams1 = {
        allowedContextTypes: ["header", "headerRelatedParty"]
    };
    
    var quoteInstance = service1.createInstance(quoteId, null, false, additionalParams1);
    gs.info(JSON.stringify(quoteInstance));

    出力。出力には、 allowedContextTypesで定義されている 2 つの入力済みセクションのみが含まれます。他のすべてのコンテキストタイプ (lines、childLines、特性など) は空または省略され、部分的な同期が可能です。

    {
      "table": "sn_quote_mgmt_core_quote",
      "sys_id": {
        "value": "04ba9004f11f3110f8777d7194f166f6"
      },
      "attributes": {
        "renewal_adjustment_value": { "value": "" },
        "contract_start_date": { "value": "2024-01-01" },
        "total_net_new_amount": { "value": "USD;0" },
        "agreement_start_date": { "value": "" },
        "total_one_time_price": { "value": "USD;214" },
        "consumer": { "value": "" },
        "billing_location": { "value": "" },
        "document_template": { "value": "" },
        "pricelist": { "value": "19d29513d0e63110f8770dbf976be122" },
        "assignment_group": { "value": "a4b31c0cf1db3110f8777d7194f166e9" },
        "partner_contact": { "value": "" },
        "auto_generated_for_renewal": { "value": "false" },
        "contract_end_date": { "value": "2025-12-31" },
        "active": { "value": "true" },
        "billing_state": { "value": "" },
        "external_system": { "value": "" },
        "renewal_adjustment_type": { "value": "" },
        "source_opportunity": { "value": "" },
        "total_annual_recurring_price_v2": { "value": "USD;1596" },
        "internal_signer": { "value": "" },
        "costbook": { "value": "a3042cdce405c210f8773750028d6f72" },
        "payment_terms": { "value": "" },
        "shipping_location": { "value": "" },
        "seller_organization": { "value": "" },
        "contact": { "value": "4d147a386f0331003b3c498f5d3ee437" },
        "external_id": { "value": "" },
        "transaction_date": { "value": "2023-12-18 23:37:11" },
        "version": { "value": "1" },
        "billing_zip": { "value": "" },
        "previous_quote": { "value": "" },
        "assigned_to": { "value": "b9b19484f1db3110f8777d7194f166d1" },
        "total_monthly_recurring_price_v2": { "value": "USD;133" },
        "agreement_end_date": { "value": "" },
        "contract_type": { "value": "" },
        "renewal_adjustment_basis": { "value": "" },
        "header_api": { "value": "" },
        "channel": { "value": "agent_assist" },
        "existing_contract": { "value": "" },
        "state": { "value": "draft" },
        "header_id": { "value": "04ba9004f11f3110f8777d7194f166f6" },
        "account": { "value": "86837a386f0331003b3c498f5d3ee4ca" },
        "quote_type": { "value": "add" },
        "billing_street": { "value": "" },
        "same_as_shipping_address": { "value": "false" },
        "work_notes": { "value": "" },
        "comments": { "value": "" },
        "short_description": {
          "value": "B2B - Quadplay Home Tech Hub Bundle"
        },
        "partner": { "value": "" },
        "sales_agreement": { "value": "" },
        "total_renewal_amount": { "value": "USD;0" },
        "sa_quote": { "value": "false" },
        "external_signer": { "value": "" },
        "shipping_city": { "value": "" },
        "discount_percentage": { "value": "" },
        "expiration_date": { "value": "" },
        "billing_city": { "value": "" },
        "currency": { "value": "USD" },
        "shipping_country": { "value": "" },
        "billing_country": { "value": "" },
        "record_number": { "value": "QT0000001" },
        "shipping_state": { "value": "" },
        "initial_quote": {
          "value": "04ba9004f11f3110f8777d7194f166f6"
        },
        "shipping_street": { "value": "" },
        "shipping_zip": { "value": "" },
        "total_amount": { "value": "USD;1897.2689" },
        "term_month": { "value": "24" },
        "total_upsell_downsell_amount": { "value": "USD;0" },
        "auto_renew": { "value": "false" }
      },
      "ramp": [],
      "lineItems": [],
      "headerRelatedParty": [
        {
          "table": "sn_quote_mgmt_core_quote_related_party",
          "sys_id": {
            "value": "a822ac20740f3690f877229405634411"
          },
          "attributes": {
            "type": {
              "value": "e12455b553716210c6caddeeff7b12d3"
            },
            "seller_organization": { "value": "" },
            "active": { "value": "true" },
            "responsibility": {
              "value": "c7ccc21b65ed1910f87764df53db7725"
            },
            "order": { "value": "20" }
          }
        }
      ]
    }

    複数選択の結合

    次の例では、ランプされた販売済み製品 (1 つのランプを持つ複数の販売済み製品) をフェッチし、すべてのランプとすべてのエンティティをフラットな構造に結合します。

    /******** Sold Product to Order - MultiSelectMerge for Ramped SPs ********/ 
    
    var util = new sn_l2c_core.PrimitiveUtil(); 
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order'); 
    
    var spIDs = 'aedfb2a6e9de4210f8774eb53302a639,28490592cc253210f87793fd12b09a97'; 
    var additionalParams = { 
    "multiSelectMerge": true, 
    "fetchRecordSysIds": [{ 
    "sn_install_base_sold_product_ramp": "5b8c9d9ac429b210f87756e9cf81cc6b" 
    }] 
    }; 
    var SPInstance = service.createInstance(null, spIDs, false, additionalParams); 
    
    gs.info("SPInstance: " + JSON.stringify(SPInstance)); 
    出力:
    {
      "ramp": [{"sys_id": {...}}], 
      "lineItems": [{"sys_id": {...}}, {"sys_id": {...}}] 
    }

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

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

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

    エンティティの構成 ID のみで delta() を呼び出せるようにするには、 getPrimitivesEPService() 文字列パラメーター context.entityConfigId を設定します。entityConfigIdsourceToTargetConfigIDの両方が渡された場合、entityConfigIdは delta() の実行に優先順位が付けられます。

    表 : 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。

    データタイプ:文字列

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

    データタイプ:文字列

    次の例は、 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, オブジェクトコンテキスト) ユーティリティメソッドで呼び出して do をトリガーする必要があります。フローごとにサービスを 1 つだけにし、すべての LeadtoCashCore メソッドに同じサービスを使用します。

    2026 年 3 月(v1.8)ストアリリースの時点で、commitInstance() メソッドは、現時点ですべてのルートエンティティをタイプ (lineItemsramp など) 別にグループ化する構造化されたdataObjectを返すため、開発者は 1 回のコミット応答で販売済み製品とそれに関連するランプに確実にアクセスできます。

    表 : 9. パラメーター
    名前 タイプ 説明
    targetJSON オブジェクト コミットするターゲットエンティティの「glide_action」を含む JSON オブジェクト。ここに effect() メソッドの出力を渡すことができます。
    注:
    「glide_action」は、「見込み顧客から現金へ」エンティティのソースとターゲット JSON の間で発生した変更アクションを示します。
    additionalParams オブジェクト オプション。使用する追加パラメーター。
    additionalParams.useNumberGenerator ブーリアン オプション。sys_numbersを一括で生成するかどうかを示すフラグ。
    適用可能な値:
    • true:レコード挿入プロセス中に使用するsys_numbersを一括で生成します。番号をフェッチするための追加のクエリの必要性を減らし、挿入時間を短縮します。
    • 正しくない:各レコードの挿入時にsys_numberを個別に生成します。

    デフォルト値:正しくありません

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

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

    {
      "dataObject": {Object},
      "displayMessage": "String",
      "error": "String",
      "headerID": "String",
      "message": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }
    注:
    headerID はヘッダーエンティティにのみ存在 rootLineIDs 、ヘッダーなしエンティティにのみ存在します。 dataObjectdisplayMessageerrormessage、および status は常に存在します。
    データオブジェクト 各レベルで実行されたコミット操作に関する詳細データを含む JSON オブジェクト。
    注:
    2026 年 3 月のストアリリースの時点で、現時点での dataObject フィールドは、すべてのルートエンティティタイプを typeValue キー (lineItems、ramp など) で累積し、すべてのルートエンティティのデータを保持します。

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

    エンティティにヘッダーがある場合の構造:
    dataObject: {
      "sys_id": "String",
      "table": "String",
      "attributes": {Object},
      "_glide_action": "String",
      "_source_object": {Object},
      "_commitObjectInfo": {Object},
      "lineItems": [Array],
      "ramp": [Array],
      "headerRelatedParty": [Array],
      "characteristics": [Array]
    }
    dataObject._commitObjectInfo 品目の変更が ENGAGE アクションであるかどうかをコミットステータスとsys_idします。

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

    "_commitObjectInfo": {
      "status": "String",
      "sys_id": "String"
    }
    dataObject.ramp ヘッダーまたは販売済み品目に関連付けられたランプグループを表します。

    オブジェクトのアレイ

    "ramp": { 
      "sys_id": "String",  
      "table": "String", 
      "attributes": {Object} 
    }
    dataObject.ramp.sys_id スロープのSys_id。親マッピングなしでランプ ID を指定すると、ヘッダーなしおよび複数選択パターンに対して無効な入力と見なされます。

    データタイプ:文字列

    dataObject.ramp.table コミットされた販売済み品目またはヘッダーに関連付けられたランプエンティティのテーブル名。たとえば、「 sn_install_base_sold_product_ramp」です。

    データタイプ:文字列

    dataObject.ramp.attribute ランプの属性。

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

    "attributes": { 
      "end_date": String,
      "parent": String,
      "parent_table": String,
      "ramp_type": String,
      "start_date": String,
      "status": String,
      "term": String
    }
    dataObject.ramp.attribute.parent ランプの親属性のSys_id。

    データタイプ:文字列

    dataObject.ramp.attribute.parent_table 属性のテーブルの場所。たとえば、「 table_name」などです。

    データタイプ:文字列

    dataObject.ramp.attribute.ramp_type ランプのタイプ。
    可能な値:
    • 四半期ごと
    • 年次
    • カスタム

    データタイプ:文字列

    dataObject.ramp.attribute.term 用語。

    データタイプ:文字列

    dataObject.ramp.attribute.start_date ランプの開始日。

    データタイプ:文字列

    dataObject.ramp.attribute.end_date ランプの終了日。

    データタイプ:文字列

    dataObject._commitObjectInfo.status 特定のエンティティで実行されたコミット操作のステータス。
    可能な値:
    • success:エンティティコミット操作は正しかったです。
    • 次の場合...not:エンティティコミット操作が正しくありませんでした。

    データタイプ:文字列

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

    データタイプ:文字列

    dataObject._glide_action 品目で発生した変更アクション。
    可能な値:
    • 削除:ソースとターゲットの JSON 構造の間の情報が削除されました。
    • ENGAGE:ソースとターゲットの 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 品目の変更が ENGAGE アクションの場合は返されます。オブジェクトのコミットステータスとsys_idがあります。

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

    "_commitObjectInfo": { 
      "status": "String", 
      "sys_id": "String" 
    }
    dataObject.lineItems._commitObjectInfo.status 特定のエンティティで実行されたコミット操作のステータス。
    可能な値:
    • success:エンティティコミット操作は正しかったです。
    • 次の場合...not:エンティティコミット操作が正しくありませんでした。

    データタイプ:文字列

    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 文字列値と同じです。

    データタイプ:文字列

    error 次の場合を説明するエラーメッセージ... commitInstance メソッドではありません。要求が正しい場合、このパラメーターは空の文字列を返します。

    データタイプ:文字列

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

    保存場所:販売された資料、注文などのエンティティタイプに応じた関連テーブル。

    データタイプ:文字列

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

    データタイプ:文字列

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

    保存場所:販売された資料、注文などのエンティティタイプに応じた関連テーブル。

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

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

    可能な値:

    • success:コミットは正しかったです。
    • 次の場合...not:ルート行またはヘッダーの Glide 操作は使用できません。LeadtoCashCore 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 effectOutput = service.effect(sourceInstance);
     
    //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"
      ]
    }
    次のスクリプトは、 fetchRecordSysIdsを使用してヘッダーレスランプを取得する方法を示しています。このシナリオでは、ヘッダーレスの販売済み品目が 1 つあり、 fetchRecordSysIds を介してランプsys_idを渡すことで JSON にランプデータを含める必要があります。出力には、販売済み品目 (lineItems) とランプ レコード (ランプ) の両方が必要です。
    注:
    ヘッダーなしエンティティの場合、fetchRecordSysIds を介してランプsys_idsが指定された場合にのみ、ランプが返されます。
    
    var util = new sn_l2c_core.PrimitiveUtil();
    
    // Extension point for SP → Order flow (example from uptake doc)
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order');
    
    // Parent Sold Product sys_id
    var spID = 'aedfb2';
    
    // Ramp sys_id that should be included in output
    var rampID = '8565f'; 
    
    // NEW: additionalParams.fetchRecordSysIds (selective record fetch)
    var additionalParams = {
      "fetchRecordSysIds": [{
        "sn_install_base_sold_product": spID,
        "sn_install_base_sold_product_ramp": rampID
      }]
    };
    
    // createInstance: headerId = null for no-header entities
    var sourceInstance = service.createInstance(null, spID, false, additionalParams);
    gs.info("createInstance output: " + JSON.stringify(sourceInstance));
    
    /*
     * Expected high-level output shape (no-header):
     * {
     *   "ramp": [ { "sys_id": "...", "attributes": {...} } ],
     *   "lineItems": [ { "sys_id": "...", "attributes": {...} } ]
     * }
     */ 
    
    
    // ---- Typical next steps in Primitives flow (delta/effect/commit) ----
    // In a real flow you usually have a target instance too.
    // For illustration we reuse the same structure as a placeholder.
    var targetInstance = sourceInstance;
    
    // Compute changes -> effect -> commit
    var effectOutput = service.effect(sourceInstance);
    var commitOutput = service.commitInstance(effectOutput);
    
    gs.info("commitInstance output: " + JSON.stringify(commitOutput));
    
    /*
     * In no-header scenarios, commitInstance returns dataObject that groups
     * root entity types (ex: lineItems, ramp) instead of a single root.
     */
    次のスクリプト例は、 multiSelectMerge を使用して ( createInstance() メソッドを使用して) すべてのランプエンティティを、ヘッダーなしのシナリオでフラットな構造にマージする方法を示しています。このシナリオでは、多数の販売済み製品があり、それらを MACD スタイルの操作で 1 つの結合されたペイロードとして扱い、すべての品目とすべてのランプをフラット構造にマージする必要があります。
    注:
    multiSelectMerge は、ヘッダーなしのシナリオにのみ適用されます。
    /***************************************************************
     * Goal: createInstance returns a flat structure:
     *   - lineItems: [ ...all selected SPs... ]
     *   - ramp:     [ ...all ramps... ]
     */
    
    var util = new sn_l2c_core.PrimitiveUtil();
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order');  
    
    // Multiple SPs selected
    var spIDs = 'aedfb2,28490592';  
    
    // Selective ramp sys_id(s) to include (merged output)
    var rampID = '5b8c9d9';  
    
    var additionalParams = {
      "multiSelectMerge": true,
      "fetchRecordSysIds": [{
        "sn_install_base_sold_product_ramp": rampID
      }]
    };  
    
    var mergedInstance = service.createInstance(null, spIDs, false, additionalParams);
    gs.info("Merged createInstance output: " + JSON.stringify(mergedInstance));
    
    /*
     * Expected high-level output shape for merge:
     * {
     *   "ramp":     [ { ... }, { ... } ],
     *   "lineItems":[ { ... }, { ... } ]
     * }
     */  
    
    
    // Optional: Commit example (same pattern)
    var effectOutput = service.effect(mergedInstance);
    var commitOutput = service.commitInstance(effectOutput);
    gs.info("commitInstance output: " + JSON.stringify(commitOutput));