LeadtoCashCore - スコープ指定

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:63分
  • LeadtoCashCore スクリプトインクルードは、Lead to Cash Core ライフサイクルで見込み顧客から現金へのワークフローを調整するためのメソッドを提供します。

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

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

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

    1. LeadtoCashCore - createInstance(文字列 headerSysIDs, 文字列 lineSysIDs, ブール値 isTarget, オブジェクト 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(文字列 sourceToTargetConfigID, オブジェクトコンテキスト)」を参照してください。スクリプトで PrimitiveUtil()getPrimitivesEPService() を指定したら、ユースケースに応じて、createInstance()、delta()、effect()、または commitInstance() スクリプトインクルードを呼び出すことができます。

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

    利用可能な各 Lead to Cash Core スクリプトインクルードは個別に文書化されていますが、次の例を参照して、これらのメソッドを一緒に使用して Lead to Cash ワークフローを生成する方法を確認できます。

    var util = new sn_l2c_core.PrimitiveUtil(); 
     
    var context = {"isMultiSelect": false}; // Set the context.isMultiSelect parameter as true to enable multi-select use cases
    
    //Flow: Creation of Order from a sold product 
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order', context);  
      
    //CREATE INSTANCE to get the data of sold product with sys_id '06670ba3c3adbd501caee74bb0013166' 
    var SPInstance = service.createInstance(null, '06670ba3c3adbd501caee74bb0013166');  
    gs.info("SPInstance: "+JSON.stringify(SPInstance));  
      
    // DELTA  
    // construct the dirtyJSON as required  
    var deltaOutput = service.delta(SPInstance, dirtyJSON);/  
    gs.info("deltaOutput: "+JSON.stringify(deltaOutput));  
      
    // EFFECT  
    var effectOutput = service.effect(deltaOutput);  
    gs.info("effectOutput: " + JSON.stringify(effectOutput));  
      
    // COMMIT INSTANCE 
    var commitOutput = service.commitInstance(effectOutput);  
    gs.info("commitOutput: " + JSON.stringify(commitOutput));
    この例では、顧客が販売済み製品を購入したが、既存の販売済み製品の変更を要求しています。必要な変更は、dirtyJSON の形式で提供されます。これらの変更を適用するために、Lead to Cash Core メソッドを次の順序で呼び出します。
    1. 最初の呼び出しでは、 createInstance() メソッドを使用して既存の販売済み製品情報を取得します。
    2. 次に、デルタ JSON を返す delta() メソッドを使用して、このソース JSON をダーティ JSON と比較します。
    3. delta() JSON は、effect() メソッドを使用して、order 型の JSON に変換されます。
    4. 順序 JSON は、 commitInstance() メソッドを使用してデータベースにコミットされます。

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

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

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

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

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

    表 : 1. パラメーター
    名前 タイプ Description (説明)
    headerSysID 文字列 データを取得するエンティティのヘッダー sys_id。lineSysIDs パラメーターを指定しない場合は必須です。ヘッダー sys_idsを渡さない場合は null を渡します。

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

    注:
    少なくとも 1 つの headerSysID または lineSysIDs パラメーターが必要です。
    lineSysID 文字列 エンティティデータを取得するエンティティの行アイテムsys_id。headerSysIDsを指定せず、エンティティ構造が販売済み製品などの品目で始まる場合は必須です。

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

    注:
    少なくとも 1 つの headerSysID または lineSysIDs パラメーターが必要です。複数の lineSysIDs渡す場合は、すべてのレコードが同じ headerSysIDに属している必要があります。
    isTarget ブーリアン オプション。ターゲットエンティティデータをフェッチするかどうかを決定するフラグ。
    有効な値:
    • true:ターゲットエンティティのデータをフェッチします。
    • false:ターゲットエンティティのデータをフェッチしません。

    デフォルト値:false

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

    デフォルト値:false

    context オブジェクト オプション。context.isMultiSelect パラメーターを使用して複数のインスタンスを呼び出すオプションを提供します。
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect ブール オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。
    有効な値:
    • true:複数のエンティティを入力として渡すことを有効にします。true の場合、複数の行項目をカンマ区切りリストで渡すことができます。
    • false:複数のエンティティを入力として渡すことはできません。API スクリプトに渡すことができる入力は 1 つだけです。

    デフォルト値:false

    表 : 2. 返される内容
    タイプ Description (説明)
    JSON オブジェクト エンティティレコードの詳細を含む JSON。

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

    {
      "items": {Object},
      "lineItems": [Array]
    }
    アイテム context.isMultiSelect が true に設定されている場合に選択されたオブジェクトのアレイが含まれます。

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

    "items": {
        "attributes": {Object},
        "sys_id": {Object},
        "table": "String"
        },
    items._state オブジェクトのステータスを表すオブジェクト。

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

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

    データタイプ:文字列

    items.attributes ヘッダーレコードの属性。

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

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

    データタイプ:文字列

    items.attributes.name ヘッダーレコードのエンティティ属性の名前。たとえば、連絡先のアカウントなどです。エンティティのさまざまなフィールドを含めることができます。

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

    "name": { 
      "value": "String" 
    }
    items.attributes.name.value エンティティのヘッダーレコードに属するアイテム属性の名前。

    データタイプ:文字列

    items.sys_id 関連するアイテムレコードに関するsys_id情報を含むオブジェクト。

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

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

    データタイプ:文字列

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

    データタイプ:文字列

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

    エンティティの品目。たとえば、注文品目や見積品目などです。

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

    "lineItems": [ 
      { 
        "attributes": {Object},
        "characteristics": [Array],
        "lineItems": [Array],
        "sys_id": {Object},
        "table": "String"
      }
    ]
    lineItems.attributes 品目レコードの属性。属性はエンティティ間で異なる場合があります。
    "attributes": {
      "account": {Object},
      "name": {Object}
    }

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

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

    データタイプ:文字列

    lineItems.attributes.name 品目属性の名前に関する情報。
    "name": { 
      "value": "String" 
    }

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

    lineItems.attributes.name.value 属性の名前。

    データタイプ:文字列

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

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

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    lineItems.characteristics 品目に関連付けられた特性のリスト。チャラセリストはエンティティによって異なる場合があります。

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

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

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

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

    データタイプ:文字列

    lineItems.characteristics.sys_id 関連する特性レコードのsys_idを含むオブジェクト。

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

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

    データタイプ:文字列

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

    データタイプ:文字列

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

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

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

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

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

    データタイプ:文字列

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

    データタイプ:文字列

    次のサンプルスクリプトは、 createInstance() メソッドを呼び出して、販売済み製品、その階層全体、およびその特性のデータをロードします。

    //Utility to invoke createInstance API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in "sn_l2c_core_entity_mapping" table. 
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order'); 
     
    //Invoke createInstance API with required params 
    var SPInstance = service.createInstance(null, '4e03cda2ec873110f87727ef5883a2cf'); 
     
    //Print the returned JSON 
    gs.info("SPInstance: "+JSON.stringify(SPInstance));  
     
    //The returned JSON can be used for subsequent methods of the flow such as delta(), effect() and commitInstance()

    出力:

    { 
      "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "4e03cda2ec873110f87727ef5883a2cf" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "9e0301e2ec873110f87727ef5883a23a" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Internet and OTT Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "8d669b6665ebf110f877d71ec56bf75c" 
              }, 
              "attributes": { 
                "sys_id": { 
                  "value": "8d669b6665ebf110f87d71ec56bf75c" 
                }, 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "sold_product": { 
                  "value": "4e03cda2ec873110f87727ef5883a2cf" 
                } 
              } 
            } 
          ] 
        } 
      ] 
    } 

    複数選択

    次のスクリプトは、 isMultiSelect を使用して createInstance() メソッドを呼び出し、2 つの販売済み製品のデータを、その階層全体と特性とともにロードする方法を示しています。

    //Utility to invoke createInstance API  
    var util = new sn_l2c_core.PrimitiveUtil();   
    
    //Set context variable isMultiSelect true to enable multi-select 
    var context = {"isMultiSelect": true}; 
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table.  
    var service = util.getPrimitivesEPService('sn_l2c_cust_flows_sp_to_order’, context);  
      
    //Multiple sold products selected  
    var selectedLineitems = '4e03cda2ec873110f87727ef5883a2cf,036a2349284d0210f877b68370fb2e93'; 
    
    //Invoke createInstance API with required params  
    var SPInstance = service.createInstance(null, selectedLineitems);  
      
    //Print the returned JSON  
    gs.info("SPInstance: "+JSON.stringify(SPInstance));   
      
    //The returned JSON can be used for subsequent APIs of the flow such as Delta, Effect and Commit Instance 

    応答:

    {  
      "items": [ 
        { 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "4e03cda2ec873110f87727ef5883a2cf" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "9e0301e2ec873110f87727ef5883a23a" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ] 
            } 
          ] 
        }, 
        { 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "036a2349284d0210f877b68370fb2e93" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Quadplay Home Tech Hub Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "4b6a2349284d0210f877b68370fb2e9c" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Internet and OTT Bundle" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ], 
              "characteristics": [] 
            } 
          ] 
        } 
      ] 
    }

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

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

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで commitInstance() を呼び出す前に、まず LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト) ユーティリティメソッドを使用してスクリプト拡張ポイント PrimitiveUtil() を呼び出し、実装をトリガーする必要があります。各フローごとに、サービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 3. パラメーター
    名前 タイプ Description (説明)
    ターゲット JSON オブジェクト コミットするターゲットエンティティの「glide_action」を含む JSON オブジェクト。ここで effect() メソッドの出力を渡すことができます。
    注:
    「glide_action」は、「見込み顧客から現金へ」エンティティのソースとターゲットの JSON の間で発生した変更アクションを識別します。
    ターゲット JSON オブジェクト オプション。使用する追加パラメーター。
    注:
    commitInstance() の追加パラメーターは、今後のリリースまで使用できません。
    表 : 4. 返される内容
    タイプ Description (説明)
    JSON オブジェクト ターゲットエンティティレコードに関する詳細を含む JSON オブジェクト。
    { 
      "error": "String",
      "headerID": "String",
      "rootLineIDs": [Array],
      "status": "String"
    }

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

    エラー commitInstance メソッドの失敗を説明するエラーメッセージ。

    データタイプ:文字列

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

    データタイプ:文字列

    rootLineID commitInstance メソッドによって挿入、更新、または削除されたターゲットエンティティレコードのSys_ids。

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

    status 「成功」または「失敗」の値を含むステータスメッセージ。

    データタイプ:文字列

    次の例は、各 LeadtoCashCore メソッドを使用して、ソースからターゲットへのエンティティの詳細を取得、適用、およびコミットする方法を示しています。

    //Utility to invoke commitInstance API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invokes the PrimitiveUtil extension point, picks an implementation based on sourceToTargetConfigID of a Lead to Cash (L2C) flow. The Mapping Config ID  in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sp_order_macd'); 
     
    //Invoke commitInstance API with the required params 
    var commitOutput = service.commitInstance(effectOutput); 
     
    //Print the returned JSON 
    gs.info("commitOutput: "+JSON.stringify(commitOutput));  
    //The returned JSON can be used for subsequent operations.

    出力:

    { 
      "status": "success", 
      "error": "", 
      "headerID": "cc9b3db665e73510f877d71ec56bf7ed", 
      "rootLineIDs": [ 
        "0c9b3db665e73510f877d71ec56bf7f1" 
      ] 
    }

    LeadtoCashCore - delta(オブジェクトsourceJSON、オブジェクトdirtyJSON、オブジェクトadditionalParams、オブジェクトコンテキスト)

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

    注:
    LeadtoCashCore スクリプトインクルードでは、スクリプトで delta() を呼び出す前に、まず LeadtoCashCore - getPrimitivesEPService(文字列 sourceToTargetConfigID, オブジェクトコンテキスト) ユーティリティメソッドを使用してスクリプト拡張ポイント PrimitiveUtil() を呼び出し、実装をトリガーする必要があります。各フローごとに、サービスを 1 回だけ取得し、すべての LeadtoCashCore メソッドに同じサービスを使用します。
    表 : 5. パラメーター
    名前 タイプ Description (説明)
    ソース JSON オブジェクト ソースの「見込み顧客から現金へ」エンティティの 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

    context オブジェクト オプション。context.isMultiSelect パラメーターを使用して複数のインスタンスを呼び出すオプションを提供します。
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect ブール オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。
    有効な値:
    • true:複数のエンティティを入力として渡すことを有効にします。true の場合、複数の行項目をカンマ区切りリストで渡すことができます。
    • false:複数のエンティティを入力として渡すことはできません。API スクリプトに渡すことができる入力は 1 つだけです。

    デフォルト値:false

    表 : 6. 返される内容
    タイプ Description (説明)
    JSON オブジェクト sourceJSON と dirtyJSON の間で発生した変更を含むエンティティレコードの詳細を含むオブジェクト。

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

    { 
      "lineItems": [ 
        { 
          "table": "String", 
          "sys_id": {Object}, 
          "attributes": {Object}
          }, 
          "lineItems": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object} 
         ],
     "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ], 
     "_action": "String" 
        } 
      ] 
    } 
    _アクション ソース JSON オブジェクトに適用される変更アクション。

    可能な値:

    • add:ソース JSON に情報が追加されました。
    • change:ソース JSON で情報が更新されました。
    • disconnect:情報がソース JSON から切断されました。
    • no-change:ソース JSON に変更は発生しませんでした。

    データタイプ:文字列

    特性 ヘッダーエンティティレコードの特性。エンティティに基づいてさまざまなフィールドが含まれる場合があります。

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

    "characteristics": [ 
            { 
              "table": "String", 
              "sys_id": {Object}, 
              "attributes": {Object}, 
                "characteristic": {Object}, 
                "characteristic_option": {Object}, 
                "sold_product": {Object}, 
                "action": {Object} 
              }, 
              "_action": "String" 
            } 
          ]
    characteristics.table 特性レコードのテーブル名。

    データタイプ:文字列

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

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

    "sys_id": { 
                "value": "String" 
              }
    characteristics.sys_id.value 特性レコードのSys_id。

    データタイプ:文字列

    characteristics.attributes ヘッダーレコード特性の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドが含まれる場合があります。

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

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    characteristics.attributes.<attribute_name> 特性に関連付けられた属性の名前。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドが含まれる場合があります。

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

    "attributes": { 
     "<attribute_name>": { 
     "value": "String"
    }
    characteristics.attributes.<attribute_name>.value 指定された属性の値。

    データタイプ:文字列

    characteristics._action ヘッダーエンティティレコードに関連付けられた特性に適用されるアクション。

    可能な値:

    • add: 特性に情報が追加されました。
    • 変更:特性に関する情報が更新されました。
    • disconnect:情報が特性から切断されました。
    • no-change: 特性に変更は発生しませんでした。
    lineItem エンティティの品目。たとえば、注文品目や見積品目などです。

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

    "lineItems": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    lineItems._action ソース JSON の品目に適用される変更アクション。

    可能な値:

    • add:ソース JSON に情報が追加されました。
    • change:ソース JSON で情報が更新されました。
    • disconnect:情報がソース JSON から切断されました。
    • no-change:ソース JSON に変更は発生しませんでした。
    lineItems.attributes 品目の属性。たとえば、属性の名前と値などです。エンティティに基づいてさまざまなフィールドが含まれる場合があります。

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

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

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

    "attributes": { 
      "name": {Object}
    lineitems.attributes.<attribute_name>.value 品目属性の名前値。

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

    "attributes": { 
      "name": { 
      "value": "String" 
    }
    lineItems.attributes.account アイテム属性に関連付けられたアカウントに関する情報。

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

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

    データタイプ:文字列

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

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

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    lineitems.characteristics._action 品目に属する特性レコードに適用されるアクション。

    可能な値:

    • add: 特性に情報が追加されました。
    • 変更:特性に関する情報が更新されました。
    • disconnect:情報が特性から切断されました。
    • no-change: 特性に変更は発生しませんでした。
    lineItems.characteristics.attributes 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。<属性タイプ>は、特性に関連付けられたレコードまたは機能に基づいて異なる値にすることができます。

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

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

    "attributes": {
      "<attribute_type>": {Object}
    }
    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値。

    データタイプ:文字列

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

    データタイプ:文字列

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

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

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    lineItems.sys_id 関連するアイテムレコードのsys_idを含むオブジェクト。

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

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 関連付けられたアイテムレコードのSys_id値。

    データタイプ:文字列

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

    データタイプ:文字列

    次の例は、最初に PrimitiveUtil ユーティリティ メソッドと getPrimitiesEPService() を呼び出し、次にソースおよびターゲットの JSON オブジェクトを指定することによって、delta() メソッドを呼び出す方法を示しています。

    //Utility to invoke Delta API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sp_order_macd'); 
     
    //Invoke delta API with required params 
    // sourceJSON can be the output of createInstance or null 
    //dirtyJSON is the modified sourceJSON 
    var deltaOutput= service.delta(sourceJSON, dirtyJSON);  
     
    //Print the returned JSON 
    gs.info(" deltaOutput: "+JSON.stringify(deltaOutput));  
     
    //The returned JSON can be used for subsequent APIs of the flow such as Effect and Commit Instance

    出力 JSON は、販売済み基本製品に複数の品目が追加されたことを示しています。

    { 
      "lineItems": [ 
        { 
          "table": "sn_install_base_sold_product", 
          "sys_id": { 
            "value": "-1" 
          }, 
          "attributes": { 
            "name": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            }, 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            } 
          }, 
          "lineItems": [ 
            { 
              "table": "sn_install_base_sold_product", 
              "sys_id": { 
                "value": "-1" 
              }, 
              "attributes": { 
                "name": { 
                  "value": "Internet and OTT Bundle" 
                }, 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                } 
              }, 
              "lineItems": [ 
                { 
                  "table": "sn_install_base_sold_product", 
                  "sys_id": { 
                    "value": "-1" 
                  }, 
                  "attributes": { 
                    "name": { 
                      "value": "Solana Sports streaming channel" 
                    }, 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    } 
                  }, 
                  "lineItems": [], 
                  "characteristics": [], 
                  "_action": "add" 
                } 
              ], 
              "characteristics": [], 
              "_action": "add" 
            } 
          ], 
          "characteristics": [ 
            { 
              "table": "sn_prd_pm_product_characteristics", 
              "sys_id": { 
                "value": "-1" 
              }, 
              "attributes": { 
                "characteristic_value": { 
                  "value": "" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "sold_product": { 
                  "value": "4e03cda2ec873110f87727ef5883a2cf" 
                }, 
                "action": { 
                  "value": "add" 
                } 
              }, 
              "_action": "add" 
            } 
          ], 
          "_action": "add" 
        } 
      ] 
    } 

    複数選択

    次の例は、最初に 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. パラメーター
    名前 タイプ Description (説明)
    ソース JSON オブジェクト ソースエンティティの詳細を含む JSON。
    ターゲット JSON オブジェクト ターゲットエンティティの詳細を含む JSON。
    additionalParams オブジェクト オプション。使用する追加パラメーター。
    additionalParams.is_future_state ブーリアン オプション。これを使用して、再構成のユースケースをサポートします。
    受け入れ可能な値:
    • true:辞書フィールド名の代わりにコンテキスト変数キーを提供します。これにより、ソースからターゲットに属性をマッピングする代わりに、ターゲットエンティティからすべての属性を提供できます。
    • false:辞書フィールド名を提供します。

    デフォルト値:false

    context オブジェクト オプション。context.isMultiSelect パラメーターを使用して複数のインスタンスを呼び出すオプションを提供します。
    "context": [
    {
     "isMultiSelect": "Boolean"
      }, 
    ]
    context.isMultiSelect ブール オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。
    有効な値:
    • true:複数のエンティティを入力として渡すことを有効にします。true の場合、複数の行項目をカンマ区切りリストで渡すことができます。
    • false:複数のエンティティを入力として渡すことはできません。API スクリプトに渡すことができる入力は 1 つだけです。

    デフォルト値:false

    表 : 8. 返される内容
    タイプ Description (説明)
    JSON オブジェクト 「見込み顧客から現金へ」エンティティの各オブジェクト、ヘッダー品目、子品目、および特性レベルで、ソースからターゲットエンティティの JSON オブジェクトに発生し、適用された変更。

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

    { 
      "sys_id": "String", 
      "table": "String", 
      "_glide_action": "String", 
      "_source_object": {Object}, 
      "lineItems": [ 
        { 
          "sys_id": "String", 
          "table": "String", 
          "attributes": { 
            "account": {Object}, 
            "short_description": {Object} 
          }, 
          "_glide_action": "String", 
          "_source_object": { 
            "sys_id": "String", 
            "table": "String" 
          }, 
          "lineItems": [Array], 
          "characteristics": [ 
            { 
              "sys_id": "String", 
              "table": "String", 
              "attributes": {Object}
                "<attribue_name>": {Object}
                  "value": "String" 
              "_glide_action": "INSERT", 
              "_source_object": {Object} 
            } 
          ] 
        }, 
      "state": {Object}
       ]
    }
    glide_action ソース JSON とターゲット JSON の間でアイテムレベルで発生した変更を示します。
    可能な値:
    • DELETE: ソースとターゲットの JSON 構造間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE: ソースとターゲットの JSON 構造の間に変更は発生しませんでした。
    • UPDATE:ソース構造とJSON構造の間で情報が変更されました。
    lineItem エンティティの品目。たとえば、注文品目や見積品目などです。

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

    "lineItems": [ 
                { 
                  "table": "String", 
                  "sys_id": {Object}, 
                  "attributes": {Object}
                  }, 
                  "lineItems": [Array], 
                  "characteristics": [Array], 
                  "_action": "String" 
                } 
              ], 
              "characteristics": [Array], 
              "_action": "String" 
            } 
          ], 
    lineItems._glide_action 品目で発生した変更アクション。
    可能な_glide_action値:
    • DELETE: ソースとターゲットの JSON 構造間の情報が削除されました。
    • INSERT:ソースとターゲットの JSON 構造の間に情報が追加されました。
    • NO_CHANGE: ソースとターゲットの JSON 構造の間に変更は発生しませんでした。
    • UPDATE:ソース構造とJSON構造の間で情報が変更されました。
    lineItems._source_object glide_actionが適用されたソースエンティティレコードの JSON オブジェクト。このオブジェクトはエンティティ間で異なる場合があります。

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

    lineItems._state オブジェクトのステータスを表すオブジェクト。

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

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

    データタイプ:文字列

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

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

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

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

    "attributes": { 
      "name": {Object}
    lineitems.attributes.<attribute_name>.value 品目属性の名前値。

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

    "attributes": { 
      "name": { 
      "value": "String" 
    }
    lineItems.attributes.account アイテム属性に関連付けられたアカウントに関する情報。

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

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

    データタイプ:文字列

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

    データタイプ:文字列

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

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

    "characteristics": [  
            {  
              "attributes": {Object},
              "sys_id": {Object},  
              "table": "String"
            }  
          ]
    lineItems.characteristics.attributes 特性レコードに関連付けられた属性に関する情報を含む 1 つ以上のオブジェクト。<属性タイプ>は、特性に関連付けられたレコードまたは機能に基づいて異なる値にすることができます。

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

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

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

    データタイプ:文字列

    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値。

    データタイプ:文字列

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

    データタイプ:文字列

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

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

    "lineItems": [  
        {  
          "attributes": {Object}
          "sys_id": {Object},
          "table": "String"
          } 
    ] 
    lineItems.sys_id 関連するアイテムレコードのsys_idを含むオブジェクト。

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

    "sys_id": {
      "value": "String"
    }
    lineItems.sys_id.value 関連付けられたアイテムレコードのSys_id値。

    データタイプ:文字列

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

    データタイプ:文字列

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

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

    sys_id エンティティのSys_id。

    データタイプ:文字列

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

    データタイプ:文字列

    次の例は、 delta() メソッドの出力を使用して変換ロジックを適用する方法を示しています。
    注:
    ソースの JSON 形式のみが変更され、出力は両方で同じままであるため、同じスクリプトが単一選択と複数選択の両方のユースケースに適用できます。複数選択のユースケースでは、単一のヘッダーが作成され、すべての品目が同じヘッダーに追加されます。
    //Utility to invoke effect API 
    var util = new sn_l2c_core.PrimitiveUtil();  
     
    //Invoke extension point, picks an implementation based on sourceToTargetConfigID of a L2C flow, the Mapping Config ID  in “sn_l2c_core_entity_mapping” table. 
    var service = util.getPrimitivesEPService('sp_order_macd'); 
     
    //Invoke effect API with required params 
    var effectOutput = service.effect(deltaOutput, null); 
     
    //Print the returned JSON 
    gs.info("effectOutput: " + JSON.stringify(effectOutput)); 
     
    //The returned JSON can be used in the subsequent commitInstance() method.

    出力:

    { 
      "sys_id": "-1", 
      "table": "sn_ind_tmt_orm_order", 
      "_glide_action": "INSERT", 
      "_source_object": {}, 
      "lineItems": [ 
        { 
          "sys_id": "-1", 
          "table": "sn_ind_tmt_orm_order_line_item", 
          "attributes": { 
            "account": { 
              "value": "9e2fd2ee11b43110f877366201dea674" 
            }, 
            "short_description": { 
              "value": "Quadplay Home Tech Hub Bundle" 
            } 
          }, 
          "_glide_action": "INSERT", 
          "_source_object": { 
            "sys_id": "-1", 
            "table": "sn_install_base_sold_product" 
          }, 
          "lineItems": [ 
            { 
              "sys_id": "-1", 
              "table": "sn_ind_tmt_orm_order_line_item", 
              "attributes": { 
                "account": { 
                  "value": "9e2fd2ee11b43110f877366201dea674" 
                }, 
                "short_description": { 
                  "value": "Internet and OTT Bundle" 
                } 
              }, 
              "_glide_action": "INSERT", 
              "_source_object": { 
                "sys_id": "-1", 
                "table": "sn_install_base_sold_product" 
              }, 
              "lineItems": [ 
                { 
                  "sys_id": "-1", 
                  "table": "sn_ind_tmt_orm_order_line_item", 
                  "attributes": { 
                    "account": { 
                      "value": "9e2fd2ee11b43110f877366201dea674" 
                    }, 
                    "short_description": { 
                      "value": "Solana Sports streaming channel" 
                    } 
                  }, 
                  "_glide_action": "INSERT", 
                  "_source_object": { 
                    "sys_id": "-1", 
                    "table": "sn_install_base_sold_product" 
                  }, 
                  "lineItems": [], 
                  "characteristics": [] 
                } 
              ], 
              "characteristics": [] 
            } 
          ], 
          "characteristics": [ 
            { 
              "sys_id": "-1", 
              "table": "sn_ind_tmt_orm_order_characteristic_value", 
              "attributes": { 
                "characteristic_option": { 
                  "value": "4f31999fd0a63110f8770dbf976be179" 
                }, 
                "characteristic": { 
                  "value": "4f31999fd0a63110f8770dbf976be178" 
                }, 
                "characteristic_option_value": { 
                  "value": "" 
                } 
              }, 
              "_glide_action": "INSERT", 
              "_source_object": { 
                "sys_id": "-1", 
                "table": "sn_prd_pm_product_characteristics" 
              } 
            } 
          ] 
        }, 
      "state": {
          "value": "active"
    }
       ],
    }

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

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

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

    表 : 9. パラメーター
    名前 タイプ Description (説明)
    sourceToTargetConfigID 文字列 ソースからターゲットへのマッピングのマッピング構成 ID。「見込み顧客から現金へ」エンティティマッピング [sn_l2c_core_entity_mapping] テーブルにあります。
    context オブジェクト オプション。属性値を表示し、一度に複数のインスタンスを呼び出すための追加のパラメーターオプション。
    context.loadDisplayValue ブーリアン オプション。各属性の表示値をロードするかどうかを示すフラグ。
    有効な値:
    • true:属性の表示値のロードを有効にします。
    • false:属性の表示値のロードを有効にしません。

    デフォルト値:false

    context.isMultiSelect ブール オプション。インスタンスを作成するために複数のエンティティを入力として渡すかどうかを示すフラグ。
    有効な値:
    • true:複数のエンティティを入力として渡すことを有効にします。true の場合、複数の行項目をカンマ区切りリストで渡すことができます。
    • false:複数のエンティティを入力として渡すことはできません。API スクリプトに渡すことができる入力は 1 つだけです。

    デフォルト値:false

    表 : 10. 返される内容
    タイプ 説明
    なし

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