詳細情報:
Integration Procedure の外部オブジェクト
Integration Procedure では、Salesforce 外部オブジェクトがサポートされます。外部データは、REST エンドポイントを使用してアクセスできるすべてのソースから取得できます。返されるデータは JSON または XML として表示できます。
仕組みは次のとおりです。
-
Salesforce では、Apex コード、レポート、SOQL クエリの発行など、Vlocity 外部オブジェクトに対して操作を実行します。
-
Vlocity 外部オブジェクトハンドラーは、外部オブジェクトを実装する Integration Procedure をコールし、要求の詳細が含まれる JSON ペイロードを渡します。
-
Integration Procedure は、JSON ペイロードの内容に基づいて、REST エンドポイントや OmniStudio データマッパーコールなどを使用して外部データにアクセスし、JSON または XML の結果を返します。
-
Integration Procedure は、結果を中間形式で Vlocity 外部オブジェクトハンドラーに返します。
-
Vlocity ハンドラーは、結果を JSON ペイロードに変換してコール元に返します。
次の図は、このプロセスを示しています。
外部データにアクセスするこの方法の利点は、コードを必要としない完全な宣言型であることです。外部オブジェクトは 1 つのオブジェクトとして機能しますが、Integration Procedure では複数のソースからデータを募集できます。
Integration Procedure のクエリ処理ロジック
Integration Procedure で要求される操作の種別を示すために、Vlocity ハンドラーは入力 JSON に「コンテキスト」エントリを設定します。Integration Procedure の各種別のクエリを処理するアクションを定義するには、アクションの [Execution Conditional Formula (実行条件数式)] 項目を設定します (例: Context = "QueryAll")。次のリストでは、各要求種別のコンテキストノードで渡される値と、SOQL の例、およびインテグレーション手順に送信される対応する JSON ペイロードについて説明します。
QueryAll: すべての行を返す SELECT (WHERE 句なし)
クエリの例: SELECT ExternalId FROM
myExternalObject;
対応する JSON 入力: {"Context":"QueryAll"}
クエリ: WHERE 句を使用した SELECT
クエリの例: SELECT ExternalId FROM
vlocity_dev__ContactsList__x WHERE ExternalId = '59f0f91a51280e0012c90584';
対応する JSON 入力: {"Input":[{"ExternalId":"59f0f91a51280e0012c90584"}],"Context":"Query"}
更新/挿入: 行を更新 (ExternalId が指定されている場合) または作成 (ExternalId が省略されている場合)。
クエリの例 (UPDATE): INSERT INTO myExternalObject (Name,
Mobile...) VALUES ("Davidov Spruth", "415-607-9865"...)
対応する JSON 入力: {"Input":[{"Name":"Davidov
Spruth","Mobile":"415-607-9865","CreateDate":"2017-10-25T20:50:34.188Z","Work":"415-232-6365","ExternalId":"59f0f91a51280e0012c90584","Email":"davs@gmail.com"}],"Context":"Upsert"}
Delete (削除): 指定された行を削除します。
クエリの例: DELETE FROM myExternalObject WHERE ExternalId
= '"'59f0f91a51280e0012c90584'"';
対応する JSON 入力: {"Input":[{"ExternalId":"59f0f91a51280e0012c90584"}],"Context":"Query"}
外部データにアクセスしてクエリを処理するには、必要な操作を実行する REST エンドポイントをコールする HTTP アクションを定義します。エンドポイントから返された結果でさらに処理が必要な場合は、必要な変換を実行するデータマッパー変換を作成してコールします。
クエリ結果の形式
Integration Procedure から結果をクエリに返すには、出力 JSON を次のように構造化します。
SELECT クエリ: 外部オブジェクトに定義されたテーブル列に対応する名前のノードの配列を返します。次に例を示します。
[{
"Work": "415-232-6365",
"Mobile": "415-607-9865",
"Email": "davs@gmail.com",
"CreateDate": "2017-10-25T20:50:34.188Z",
"Name": "Davidov Spruth",
"ExternalId": "59f0f91a51280e0012c90584",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
},
{
"Email": "mw@gmail.com",
"CreateDate": "2017-10-25T21:49:41.633Z",
"Name": "Mike Wormwood",
"ExternalId": "59f106f5e928870012f2b0a0",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
},
{
"Work": "33-555-1212",
"Mobile": "33-879-0610",
"CreateDate": "2017-10-25T20:59:18.657Z",
"Name": "Tom Sor",
"ExternalId": "59f0fb26e928870012f2b09e",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
}
]
UPDATE および DELETE クエリ: 「ExternalID」という名前のノードで影響を受けるオブジェクトの外部 ID を返します。次に例を示します。
{
"ExternalId": "59efa135ba8e960012a3e8a5"
}
クエリが成功しなかった場合は、発生した問題の詳細を含む「errorMessage」という名前のノードを返します。
- Integration Procedure での外部オブジェクトの実装
外部データにアクセスするには、Salesforce 外部オブジェクトを実装する Integration Procedure を定義します。
