您位於此處:
整合程序中的外部物件
「整合程序」支援 Salesforce 外部物件。外部資料可以來自任何可使用 REST 端點存取的來源。傳回的資料可呈現為 JSON 或 XML。
運作方式如下:
-
在 Salesforce 中,您會針對 Vlocity 外部物件執行作業,例如透過 Apex 程式碼、報告或發出 SOQL 查詢。
-
Vlocity 外部物件處理常式會呼叫實作外部物件的「整合程序」,傳遞包含要求詳細資料的 JSON 裝載。
-
「整合程序」會根據 JSON 裝載的內容,使用例如 REST 端點或 Omnistudio 資料對應器呼叫來存取外部資料,並傳回 JSON 或 XML 結果。
-
「整合程序」會以中間式格式將其結果傳回至 Vlocity 外部物件處理常式。
-
Vlocity 處理常式會將結果轉換為 JSON 裝載,並將結果傳回給呼叫者。
下圖說明流程。
此存取外部資料方法的優點是完全陳述性,不需要程式碼。請注意,當外部物件作為單一物件運作時,「整合程序」可以從多個來源中招募資料。
整合程序中的查詢處理邏輯
為了指出要針對整合程序要求的作業類型,Vlocity 處理常式會在輸入 JSON 中設定「內容」項目。若要定義處理整合程序中每種類型查詢的動作,請設定動作的「執行條件式公式」欄位 (例如:內容 = "QueryAll")。下列清單描述針對每個要求類型在「內容」節點中傳遞的值,以及傳送至整合程序的 SOQL 範例和對應 JSON 裝載。
QueryAll:SELECT 傳回所有資料列 (無 WHERE 子句)
範例查詢:SELECT ExternalId FROM
myExternalObject;
對應的 JSON 輸入:{"Context":"QueryAll"}
查詢:SELECT with WHERE 子句
範例查詢: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 FROM myExternalObject WHERE ExternalId
= '"'59f0f91a51280e0012c90584'"';
對應的 JSON 輸入:{"Input":[{"ExternalId":"59f0f91a51280e0012c90584"}],"Context":"Query"}
若要存取外部資料來處理查詢,請定義 HTTP 動作,以呼叫執行必要作業的 REST 端點。如果從端點傳回的結果需要進一步處理,請建立並呼叫「資料對應器轉換」,以執行必要轉換。
查詢結果格式
若要將「整合程序」中的結果傳回查詢,請依下列方式建構輸出 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"
}
]
「更新」和「刪除」查詢:傳回名為「ExternalID」節點中受影響物件的外部識別碼,例如:
{
"ExternalId": "59efa135ba8e960012a3e8a5"
}
如果查詢失敗,則會傳回名為「errorMessage」的節點,其中包含發生問題的相關詳細資料。
- 在整合程序中實作外部物件
若要存取外部資料,您可以定義實作 Salesforce 外部物件的整合程序。
