请参阅 Application Integration 支持的连接器

调用 Salesforce 变更数据捕获 (CDC) 事件的集成

了解如何使用 Salesforce 触发器在 Application Integration 中创建示例集成。以下步骤介绍了如何配置运行完整集成所需的触发器、任务、连接器和数据映射。

在本快速入门中,您将使用 Salesforce 触发器调用 Application Integration 中针对 Salesforce 变更数据捕获 (CDC) 事件的集成,如下图所示:

示例序列图 示例序列图

Salesforce 触发器已订阅 Salesforce 机会渠道。对 Salesforce 业务机会的数据更改会调用 Application Integration,后者可以提取 Salesforce 业务机会的状态。如果状态为关闭,集成将提取机会详细信息并使用连接器将数据写入 Cloud SQL 实例。如果数据发生更改,但状态保持打开状态,则集成将使用连接器向 Pub/Sub 主题发送消息。

以下步骤介绍了如何配置运行成功集成所需的触发器、任务、身份验证配置文件、边缘、变量和数据映射。

准备工作

  • 确认您的 Salesforce 开发者账号已启用变更数据捕获 (CDC)。本教程假定您已有 Salesforce 开发者账号,并且已设置所需的用户设置和权限。如需了解 Salesforce 用户设置和权限集,请参阅配置 Salesforce 触发器
  • 将以下 IAM 角色分配给 Google Cloud 项目中的 Application Integration Service Agent(service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com)。
    • “发布/订阅”编辑者
    • Connectors Admin
    • Application Integration Invoker
    如需详细了解如何分配 IAM 角色,请参阅 IAM 角色和权限
  • 创建 Cloud SQL 表以存储 Salesforce CDC 数据。
    1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面并连接到 MySQL 实例。请参阅从 Cloud Shell 连接到 Cloud SQL for MySQL

      转到“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;
  • 在连接器中创建 Cloud SQL for MySQL 连接。如需了解详情,请参阅创建 Cloud SQL for MySQL 连接
  • 在连接器中创建 Cloud Pub/Sub 连接。如需了解详情,请参阅创建 Cloud Pub/Sub 连接

创建新的集成

如需创建新的集成,请执行以下步骤:

  1. 在 Google Cloud 控制台中,前往 Application Integration 页面。

    转到 Application Integration

  2. 在导航菜单中,点击 Integrations(集成)。随即会出现集成列表页面。
  3. 点击创建集成
  4. 创建 Integrations 对话框中输入名称和说明。例如 Demo-CDC-Opportunities
  5. 选择集成的区域。
  6. 点击创建以打开集成设计器。

添加和配置 Salesforce 触发器

如需将 Salesforce 触发器添加到集成中并进行配置,请执行以下步骤:

  1. 在集成设计器中,选择添加任务/触发器 > 触发器以显示可用触发器列表。
  2. 点击 Salesforce 触发器元素,并将其放置到集成设计器中。
  3. 点击画布上的 Salesforce 触发器元素以打开该触发器的配置窗格。
  4. 触发器输入下,配置以下字段:
    • 事件类型:从下拉列表中选择更改数据捕获 (CDC)
    • Salesforce 实例配置:点击 + 添加新的 Salesforce 实例配置选项。

      此时会显示添加 Salesforce 实例配置对话框。

      • Salesforce 实例连接名称:输入 Salesforce 实例的连接名称。例如 CDC-PlatformUser
      • Salesforce 网域:输入您的 Salesforce 域名。您可以在 Salesforce 账号 > 查看个人资料页面中找到此信息。
      • 身份验证配置文件:选择身份验证配置文件。 如果您没有身份验证配置文件,请创建新的配置文件。 如需了解相关信息,请参阅创建新的身份验证配置文件
      • 点击添加
    • Salesforce 渠道配置:点击下拉列表中的 + 添加新的 Salesforce 渠道配置选项。

      此时会显示添加 Salesforce 渠道对话框。

      • Salesforce 对象名称:输入 Opportunity
      • 点击添加
    • 操作:从下拉列表中选择更新

    系统会自动保存对属性的更改。

添加和配置任务

本教程使用连接器数据映射任务。这些任务的配置详细信息如下所述。

使用 Cloud SQL for MySQL 连接配置连接器任务

执行以下步骤来配置连接器任务,以使用 Cloud SQL for MySQL 连接将记录插入现有 Cloud SQL 表中:

  1. 在集成设计器中选择 +添加任务/触发器 > 任务以显示可用任务列表。
  2. 点击连接器元素,并将其放置到集成设计器中。
  3. 点击设计器上的连接器任务元素,以查看连接器任务配置窗格
  4. 点击 ,然后将连接器名称更改为 Insert row to Cloud SQL
  5. 点击配置任务

    此时将显示配置连接器任务对话框。

  6. 配置连接器任务对话框中,执行以下操作:
    1. 选择连接区域。
    2. 选择区域后,将显示连接列。从可用连接列表中选择您的 Cloud SQL for MySQL 连接。
    3. 选择连接后,系统会显示类型列。选择实体,然后从可用实体列表中选择机会
    4. 选择类型后,系统将显示操作列。选择创建
    5. 点击完成以完成连接配置并关闭窗格。

配置使用 Cloud Pub/Sub 连接的连接器任务

执行以下步骤以配置连接器任务,以使用 Cloud Pub/Sub 连接发布 Pub/Sub 消息:

  1. 在集成设计器中选择 +添加任务/触发器 > 任务以显示可用任务列表。
  2. 点击连接器元素,并将其放置到集成设计器中。
  3. 点击设计器上的连接器任务元素,以查看连接器任务配置窗格
  4. 点击 ,然后将连接器名称更改为 Publish to cloud pub/sub
  5. 点击配置任务

    此时将显示配置连接器任务对话框。

  6. 配置连接器任务对话框中,执行以下操作:
    1. 选择连接区域。
    2. 选择区域后,将显示连接列。从可用连接列表中选择您的 Pub/Sub 连接。
    3. 选择连接后,系统会显示类型列。选择操作,然后从可用操作列表中选择 publishMessage
    4. 点击完成以完成连接配置并关闭窗格。

配置数据映射任务

执行以下操作以配置数据映射任务:

  1. 选择添加任务/触发器 > 任务以显示可用任务列表。
  2. 点击数据映射元素,并将其放置到集成设计器中。
  3. 点击设计器上的数据映射元素,以打开任务的配置窗格。
  4. 点击打开数据映射编辑器

    借助数据映射编辑器,您可以使用可用的转换函数将输入变量映射为所需的输出变量。然后,输出可用作任何其他集成任务或触发器的变量。如需详细了解如何以变量形式传递数据,请参阅 在 Application Integration 中使用变量

  5. 点击 + 添加新变量并创建以下输出变量:
    输出变量名称 数据类型
    OpportunityIsClosed Boolean
    OpportunityId String
    PubSubMessage String
  6. SalesforceTriggerCdcPayload 变量和连接器输入载荷变量之间进行以下映射,如下表所示:
    输入 输出
    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 触发器

    此时将显示测试集成对话框。

  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. 点击已执行集成旁边的展开箭头 (>),以查看集成中任务和变量的扩展列表,以及任务状态和变量载荷。