Loading
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
Integration Procedure の外部オブジェクト

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」という名前のノードを返します。

 
読み込み中
Salesforce Help | Article