叫用 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
    如要進一步瞭解如何指派 IAM 角色,請參閱「IAM 角色和權限」。
  • 建立 Cloud SQL 資料表,用來儲存 Salesforce CDC 資料。
    1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面,然後連線至 MySQL 執行個體。請參閱「從 Cloud Shell 連線至 MySQL 適用的 Cloud SQL」。

      前往 Cloud SQL 執行個體

    2. 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;
      
    3. 執行下列指令,確認資料表已建立。
      SELECT * FROM OPPORTUNITIES;
  • 在「連線」中建立 MySQL 適用的 Cloud SQL 連線。詳情請參閱「建立 MySQL 適用的 Cloud SQL 連線 」。
  • 在「連線」中建立 Cloud Pub/Sub 連線。詳情請參閱「建立 Cloud Pub/Sub 連線 」。

建立新的整合功能

如要建立新的整合,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Application Integration」頁面。

    前往 Application Integration

  2. 按一下左側導覽選單中的「整合」,開啟「整合」頁面。
  3. 按一下「建立整合」
  4. 在「建立整合」對話方塊中輸入名稱和說明,例如:Demo-CDC-Opportunities
  5. 選取整合作業的區域。
  6. 按一下「建立」,開啟整合設計工具。

新增及設定 Salesforce 觸發條件

如要為整合服務新增及設定 Salesforce 觸發條件,請按照下列步驟操作:

  1. 在整合設計工具中,依序選取「Add a task/trigger」(新增任務/觸發條件) >「Triggers」(觸發條件),即可查看可用觸發條件清單。
  2. 在整合設計工具中,按一下並放置「Salesforce trigger」(Salesforce 觸發條件) 元素。
  3. 按一下畫布上的「Salesforce 觸發條件」元素,開啟觸發條件的設定窗格。
  4. 在「觸發條件輸入」下方設定下列欄位:
    • 事件類型:從下拉式清單中選取「Change Data Capture (CDC)」
    • Salesforce 執行個體設定:按一下下拉式清單中的「+ 新增 Salesforce 執行個體設定」選項。

      系統隨即會顯示「新增 Salesforce 執行個體設定」對話方塊。

      • Salesforce 執行個體連線名稱:輸入 Salesforce 執行個體的連線名稱。例如:CDC-PlatformUser
      • Salesforce 網域:輸入 Salesforce 網域名稱。如要查看這項資訊,請前往 Salesforce 帳戶 > 查看設定檔頁面。
      • 驗證設定檔:選取驗證設定檔。如果沒有驗證設定檔,請建立新設定檔。詳情請參閱「建立新的驗證設定檔」。
      • 按一下「新增」。
    • Salesforce 管道設定:按一下下拉式清單中的「+ 新增 Salesforce 管道設定」選項。

      系統會隨即顯示「新增 Salesforce 管道」對話方塊。

      • Salesforce 物件名稱:輸入 Opportunity
      • 按一下 [新增]。
    • 作業:從下拉式清單中選取「更新」

    系統會自動儲存您對資源所做的變更。

新增及設定工作

本教學課程會使用「連接器」和「資料對應」工作。以下說明各項工作的設定詳細資料。

使用 MySQL 適用的 Cloud SQL 連線設定 Connectors 工作

請按照下列步驟設定「Connectors」工作,使用「MySQL 適用的 Cloud SQL 連線」將記錄插入現有的 Cloud SQL 資料表:

  1. 在整合設計工具中選取「+Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可顯示可用任務清單。
  2. 在整合設計工具中,按一下並放置「Connectors」(連接器) 元素。
  3. 按一下設計工具中的「連接器」任務元素,即可查看「連接器」任務設定窗格
  4. 按一下 ,然後將「連接器」名稱變更為 Insert row to Cloud SQL
  5. 按一下「設定工作」

    系統隨即會顯示「設定連接器工作」對話方塊。

  6. 在「設定連接器工作」對話方塊中執行下列操作:
    1. 選取連線區域。
    2. 選擇區域後,系統會顯示「連線」欄。從可用連線清單中選取 MySQL 適用的 Cloud SQL 連線。
    3. 選擇連線後,系統會顯示「類型」欄。從可用實體清單中選取「實體」,然後選取「商機」
    4. 選擇類型後,系統會顯示「作業」欄。選取「建立」
    5. 按一下「完成」,完成連線設定並關閉窗格。

使用 Cloud Pub/Sub 連線設定 Connectors 工作

請按照下列步驟設定「連接器」工作,使用「Cloud Pub/Sub 連線」發布 Pub/Sub 訊息:

  1. 在整合設計工具中選取「+Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可顯示可用任務清單。
  2. 在整合設計工具中,按一下並放置「Connectors」(連接器) 元素。
  3. 按一下設計工具中的「連接器」任務元素,即可查看「連接器」任務設定窗格
  4. 按一下 ,然後將「連接器」名稱變更為 Publish to cloud pub/sub
  5. 按一下「設定工作」

    系統隨即會顯示「設定連接器工作」對話方塊。

  6. 在「設定連接器工作」對話方塊中執行下列操作:
    1. 選取連線區域。
    2. 選擇區域後,系統會顯示「連線」欄。從可用連線清單中選取 Pub/Sub 連線。
    3. 選擇連線後,系統會顯示「類型」欄。從可用動作清單中選取「動作」,然後選取「publishMessage」
    4. 按一下「完成」,完成連線設定並關閉窗格。

設定資料對應工作

如要設定「資料對應」工作,請按照下列步驟操作:

  1. 依序選取「Add a task/trigger」(新增任務/觸發條件) >「Tasks」(任務),即可顯示可用任務清單。
  2. 在整合設計工具中,按一下並放置「資料對應」元素。
  3. 按一下設計工具中的「資料對應」元素,開啟工作設定窗格。
  4. 按一下「開啟資料對應編輯器」

    您可以使用資料對應編輯器,透過可用的轉換函式,將輸入變數對應至所需輸出變數。然後,輸出內容會以變數的形式提供給任何其他整合任務或觸發條件。如要進一步瞭解如何以變數形式傳遞資料,請參閱「 在 Application Integration 中使用變數」。

  5. 按一下「+ 新增變數」,然後建立下列輸出變數:
    輸出變數名稱 資料類型
    OpportunityIsClosed Boolean
    OpportunityId String
    PubSubMessage String
  6. 如下表所示,在 SalesforceTriggerCdcPayload 變數和 Connector input payload 變數之間建立下列對應關係:
    輸入 輸出
    SalesforceTriggerCdcPayload.GET_PROPERTY("IsClosed").TO_BOOLEAN() OpportunityIsClosed
    SalesforceTriggerCdcPayload.GET_PROPERTY("Id").TO_STRING() OpportunityId
    OpportunityId.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") PubSubMessage
    PubSubMessage connectorInputPayload.message(Publish to cloud pub/sub)
  7. 對應完成後,請關閉窗格。系統會自動儲存所有變更。

新增邊緣連線

邊緣是整合中任意兩個元素之間的連線,邊緣條件則可讓您指定必須符合的條件,整合控制項才能傳遞至邊緣所連線的任務。如要進一步瞭解邊緣和邊緣條件,請參閱「邊緣」。

  1. 從「Salesforce 觸發條件」元素新增邊緣連線至「資料對應」元素。
  2. 從「資料對應」元素新增邊緣連線至「將資料列插入 Cloud SQL 連接器」元素,並設定下列邊緣條件:
      $OpportunityIsClosed$ = TRUE
  3. 從「資料對應」元素到「Cloud Pub/Sub 連接器」元素,新增另一個邊緣連線,並設定下列邊緣條件:
      $OpportunityIsClosed$ = FALSE
顯示邊緣連線的範例圖片 顯示邊緣連線的範例圖片

測試整合功能

如要測試新整合項目,請按照下列步驟操作:

  1. 在整合設計工具工具列中,按一下「測試」,然後選取「Salesforce 觸發程序」

    系統會隨即顯示「Test Integration」(測試整合) 對話方塊。

  2. 按一下「測試整合」

登入 Salesforce 執行個體,將商機狀態變更為「已結案」,測試 Cloud SQL 工作。

登入 Salesforce 執行個體,變更商機的其他詳細資料,但將商機狀態保留為「開啟」,藉此測試 Pub/Sub 工作。

如要進一步瞭解測試,請參閱「測試及發布整合」。

如要驗證整合是否成功,請按照下列步驟操作:

  • 前往「Cloud SQL」頁面。

    前往 Cloud SQL

    檢查資料庫和 Cloud SQL 記錄,確認新資料列已插入。
  • 前往「Pub/Sub」頁面。

    前往「Pub/Sub」頁面

    選取 Pub/Sub 主題,然後按一下「查看訊息」,確認收到整合服務傳送的訊息。
  • 檢查 Application Integration 記錄,查看特定整合項目的狀態。如要查看記錄,請按照下列步驟操作:
    1. 在整合設計工具的工具列中,按一下「記錄」
    2. 在「執行記錄」頁面中,您可以查看每次嘗試執行整合的詳細資料。 每個項目都包含執行嘗試的詳細資料,包括:
      • 整合作業名稱
      • 執行作業 ID
      • 狀態
      • 開始時間
      • 時間長度
      • 整合版本
      • 觸發條件 ID
    3. 按一下已執行的整合旁邊的展開箭頭 (>),即可查看整合中的工作和變數展開清單,以及工作狀態和變數有效負載。