叫用 Salesforce 變更資料擷取 (CDC) 事件的整合程序
瞭解如何使用 Salesforce 觸發條件,在 Application Integration 中建立整合範例。下列步驟說明如何設定觸發條件、工作、連接器和資料對應,以執行完整的整合作業。
在本快速入門導覽課程中,您將使用 Salesforce 觸發條件,針對 Salesforce 變更資料擷取 (CDC) 事件,在 Application Integration 中叫用整合作業,如下圖所示:
Salesforce 觸發條件已訂閱 Salesforce 商機管道。Salesforce 商機的資料變更會叫用應用程式整合,從中擷取 Salesforce 商機的狀態。如果狀態為「已結案」,整合服務會擷取商機詳細資料,並使用連接器將資料寫入 Cloud SQL 執行個體。如果資料有變更,但狀態仍為開啟,整合服務會使用連接器將訊息傳送至 Pub/Sub 主題。
下列步驟說明如何設定觸發條件、工作、驗證設定檔、邊緣、變數和資料對應,以順利執行整合。
事前準備
- 確認 Salesforce 開發人員帳戶已啟用變更資料擷取 (CDC)。本教學課程假設您已擁有 Salesforce 開發人員帳戶,並完成必要的使用者設定和權限集。如要瞭解如何設定 Salesforce 使用者和權限集,請參閱「設定 Salesforce 觸發條件」。
- 在 Google Cloud 專案中,將下列 IAM 角色指派給 Application Integration 服務代理程式(
service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com)。- Pub/Sub 編輯者
- 連接器管理員
- Application Integration Invoker
- 建立 Cloud SQL 資料表,用來儲存 Salesforce CDC 資料。
- 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面,然後連線至 MySQL 執行個體。請參閱「從 Cloud Shell 連線至 MySQL 適用的 Cloud SQL」。
- 在 Cloud SQL 執行個體上建立下列 MySQL 資料庫:
CREATE DATABASE SALESFORCE_TRIGGER_DEMO; USE SALESFORCE_TRIGGER_DEMO; CREATE TABLE OPPORTUNITIES ( ID INT NOT NULL AUTO_INCREMENT, NAME VARCHAR(150) NOT NULL, AMOUNT DOUBLE NOT NULL, DT_CLOSE VARCHAR(150) NOT NULL, PRIMARY KEY (ID) ); COMMIT; - 執行下列指令,確認資料表已建立。
SELECT * FROM OPPORTUNITIES;
- 在「連線」中建立 MySQL 適用的 Cloud SQL 連線。詳情請參閱「建立 MySQL 適用的 Cloud SQL 連線 」。
- 在「連線」中建立 Cloud Pub/Sub 連線。詳情請參閱「建立 Cloud Pub/Sub 連線 」。
建立新的整合功能
如要建立新的整合,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Application Integration」頁面。
- 按一下左側導覽選單中的「整合」,開啟「整合」頁面。
- 按一下「建立整合」。
- 在「建立整合」對話方塊中輸入名稱和說明,例如:
Demo-CDC-Opportunities。 - 選取整合作業的區域。
- 按一下「建立」,開啟整合設計工具。
新增及設定 Salesforce 觸發條件
如要為整合服務新增及設定 Salesforce 觸發條件,請按照下列步驟操作:
- 在整合設計工具中,依序選取「Add a task/trigger」(新增任務/觸發條件) >「Triggers」(觸發條件),即可查看可用觸發條件清單。
- 在整合設計工具中,按一下並放置「Salesforce trigger」(Salesforce 觸發條件) 元素。
- 按一下畫布上的「Salesforce 觸發條件」元素,開啟觸發條件的設定窗格。
- 在「觸發條件輸入」下方設定下列欄位:
- 事件類型:從下拉式清單中選取「Change Data Capture (CDC)」。
- Salesforce 執行個體設定:按一下下拉式清單中的「+ 新增 Salesforce 執行個體設定」選項。
系統隨即會顯示「新增 Salesforce 執行個體設定」對話方塊。
- Salesforce 執行個體連線名稱:輸入 Salesforce 執行個體的連線名稱。例如:
CDC-PlatformUser。 - Salesforce 網域:輸入 Salesforce 網域名稱。如要查看這項資訊,請前往 Salesforce 帳戶 > 查看設定檔頁面。
- 驗證設定檔:選取驗證設定檔。如果沒有驗證設定檔,請建立新設定檔。詳情請參閱「建立新的驗證設定檔」。
- 按一下「新增」。
- Salesforce 執行個體連線名稱:輸入 Salesforce 執行個體的連線名稱。例如:
- Salesforce 管道設定:按一下下拉式清單中的「+ 新增 Salesforce 管道設定」選項。
系統會隨即顯示「新增 Salesforce 管道」對話方塊。
- Salesforce 物件名稱:輸入
Opportunity。 - 按一下 [新增]。
- Salesforce 物件名稱:輸入
- 作業:從下拉式清單中選取「更新」
系統會自動儲存您對資源所做的變更。
新增及設定工作
本教學課程會使用「連接器」和「資料對應」工作。以下說明各項工作的設定詳細資料。
使用 MySQL 適用的 Cloud SQL 連線設定 Connectors 工作
請按照下列步驟設定「Connectors」工作,使用「MySQL 適用的 Cloud SQL 連線」將記錄插入現有的 Cloud SQL 資料表:
- 在整合設計工具中選取「+Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可顯示可用任務清單。
- 在整合設計工具中,按一下並放置「Connectors」(連接器) 元素。
- 按一下設計工具中的「連接器」任務元素,即可查看「連接器」任務設定窗格。
- 按一下 ,然後將「連接器」名稱變更為
Insert row to Cloud SQL。 - 按一下「設定工作」。
系統隨即會顯示「設定連接器工作」對話方塊。
- 在「設定連接器工作」對話方塊中執行下列操作:
- 選取連線區域。
- 選擇區域後,系統會顯示「連線」欄。從可用連線清單中選取 MySQL 適用的 Cloud SQL 連線。
- 選擇連線後,系統會顯示「類型」欄。從可用實體清單中選取「實體」,然後選取「商機」。
- 選擇類型後,系統會顯示「作業」欄。選取「建立」。
- 按一下「完成」,完成連線設定並關閉窗格。
使用 Cloud Pub/Sub 連線設定 Connectors 工作
請按照下列步驟設定「連接器」工作,使用「Cloud Pub/Sub 連線」發布 Pub/Sub 訊息:
- 在整合設計工具中選取「+Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可顯示可用任務清單。
- 在整合設計工具中,按一下並放置「Connectors」(連接器) 元素。
- 按一下設計工具中的「連接器」任務元素,即可查看「連接器」任務設定窗格。
- 按一下 ,然後將「連接器」名稱變更為
Publish to cloud pub/sub。 - 按一下「設定工作」。
系統隨即會顯示「設定連接器工作」對話方塊。
- 在「設定連接器工作」對話方塊中執行下列操作:
- 選取連線區域。
- 選擇區域後,系統會顯示「連線」欄。從可用連線清單中選取 Pub/Sub 連線。
- 選擇連線後,系統會顯示「類型」欄。從可用動作清單中選取「動作」,然後選取「publishMessage」。
- 按一下「完成」,完成連線設定並關閉窗格。
設定資料對應工作
如要設定「資料對應」工作,請按照下列步驟操作:
- 依序選取「Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可顯示可用任務清單。
- 在整合設計工具中,按一下並放置「資料對應」元素。
- 按一下設計工具中的「資料對應」元素,開啟工作設定窗格。
- 按一下「開啟資料對應編輯器」。
您可以使用資料對應編輯器,透過可用的轉換函式,將輸入變數對應至所需輸出變數。然後,輸出內容會以變數的形式提供給任何其他整合任務或觸發條件。如要進一步瞭解如何以變數形式傳遞資料,請參閱「 在 Application Integration 中使用變數」。
- 按一下「+ 新增變數」,然後建立下列輸出變數:
輸出變數名稱 資料類型 OpportunityIsClosedBooleanOpportunityIdStringPubSubMessageString - 如下表所示,在 SalesforceTriggerCdcPayload 變數和 Connector input payload 變數之間建立下列對應關係:
輸入 輸出 SalesforceTriggerCdcPayload.GET_PROPERTY("IsClosed").TO_BOOLEAN()OpportunityIsClosedSalesforceTriggerCdcPayload.GET_PROPERTY("Id").TO_STRING()OpportunityIdOpportunityId.TO_DOUBLE()connectorInputPayload.ID(Insert row to Cloud SQL)SalesforceTriggerCdcPayload.GET_PROPERTY("Name").TO_STRING()connectorInputPayload.NAME(Insert row to Cloud SQL)SalesforceTriggerCdcSnapshot.GET_PROPERTY("Amount").TO_DOUBLE()connectorInputPayload.AMOUNT(Insert row to Cloud SQL)SalesforceTriggerCdcSnapshot.GET_PROPERTY("CloseDate").TO_STRING()connectorInputPayload.DT_CLOSE(Insert row to Cloud SQL)OpportunityId.CONCAT(" is still open")PubSubMessagePubSubMessageconnectorInputPayload.message(Publish to cloud pub/sub)
對應完成後,請關閉窗格。系統會自動儲存所有變更。
新增邊緣連線
邊緣是整合中任意兩個元素之間的連線,邊緣條件則可讓您指定必須符合的條件,整合控制項才能傳遞至邊緣所連線的任務。如要進一步瞭解邊緣和邊緣條件,請參閱「邊緣」。
- 從「Salesforce 觸發條件」元素新增邊緣連線至「資料對應」元素。
- 從「資料對應」元素新增邊緣連線至「將資料列插入 Cloud SQL 連接器」元素,並設定下列邊緣條件:
$OpportunityIsClosed$ = TRUE
- 從「資料對應」元素到「Cloud Pub/Sub 連接器」元素,新增另一個邊緣連線,並設定下列邊緣條件:
$OpportunityIsClosed$ = FALSE
測試整合功能
如要測試新整合項目,請按照下列步驟操作:
- 在整合設計工具工具列中,按一下「測試」,然後選取「Salesforce 觸發程序」。
系統會隨即顯示「Test Integration」(測試整合) 對話方塊。
- 按一下「測試整合」。
登入 Salesforce 執行個體,將商機狀態變更為「已結案」,測試 Cloud SQL 工作。
登入 Salesforce 執行個體,變更商機的其他詳細資料,但將商機狀態保留為「開啟」,藉此測試 Pub/Sub 工作。
如要進一步瞭解測試,請參閱「測試及發布整合」。
如要驗證整合是否成功,請按照下列步驟操作:
- 前往「Cloud SQL」頁面。 檢查資料庫和 Cloud SQL 記錄,確認新資料列已插入。
- 前往「Pub/Sub」頁面。 選取 Pub/Sub 主題,然後按一下「查看訊息」,確認收到整合服務傳送的訊息。
- 檢查 Application Integration 記錄,查看特定整合項目的狀態。如要查看記錄,請按照下列步驟操作:
- 在整合設計工具的工具列中,按一下「記錄」。
- 在「執行記錄」頁面中,您可以查看每次嘗試執行整合的詳細資料。
每個項目都包含執行嘗試的詳細資料,包括:
- 整合作業名稱
- 執行作業 ID
- 狀態
- 開始時間
- 時間長度
- 整合版本
- 觸發條件 ID
- 按一下已執行的整合旁邊的展開箭頭 (>),即可查看整合中的工作和變數展開清單,以及工作狀態和變數有效負載。