本教程介绍了一个用例,介绍了如何使用 Application Integration 自动执行客户关系管理 (CRM) 应用和企业资源规划 (ERP) 应用之间的订单管理流程。
概览
企业使用各种 CRM 和 ERP 应用程序来创建、处理、管理和维护销售订单。这些应用程序中的每一个都由不同的团队或组织处理,要在及时提供客户更新的同时确保订单状态得到持续跟踪,是一项挑战。
在本教程中,您将创建一个使用 Salesforce 触发器来订阅 Salesforce 中的新业务机会事件的集成。创建新的业务机会时,集成会检索其他业务机会详细信息,例如帐号 ID 和名称。系统将在 BigQuery 表中检查这些详细信息,以创建使用跟踪订单号更新业务机会。在验证期间,如果 BigQuery 中不存在帐号信息,集成将自动使用 Integration Connectors 在 BigQuery 表和关联的 ServiceNow 实例中创建一个新条目。
目标
本教程介绍了如何在集成中完成以下任务:
- 设置 Salesforce 触发器以调用集成。
- 为 Salesforce、BigQuery 和 ServiceNow 连接添加和配置 Connectors 任务。
- 添加和配置数据映射任务,以提取和映射业务机会详细信息。
费用
在本教程中,您将使用 Google Cloud 的以下可计费组件:
本教程中的说明介绍了如何将资源使用量保持在 Google Cloud 的 “始终免费”层级的限额范围内。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 BigQuery API。
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: BigQuery Data Editor (
roles/bigquery.dataEditor
), BigQuery Read Session User (roles/bigquery.readSessionUser
), Secret Manager Viewer (roles/secretmanager.viewer
), Secret Manager Secret Accessor (roles/secretmanager
).To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 BigQuery API。
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the following roles to the service account: BigQuery Data Editor (
roles/bigquery.dataEditor
), BigQuery Read Session User (roles/bigquery.readSessionUser
), Secret Manager Viewer (roles/secretmanager.viewer
), Secret Manager Secret Accessor (roles/secretmanager
).To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
Click Done to finish creating the service account.
-
准备环境
验证 Salesforce 用户设置
本教程假定您已有 Salesforce 开发者账号,并且已设置所需的用户设置和权限。验证您的账号已启用变更数据捕获 (CDC)。如需了解如何创建新帐号,请参阅设置集成用户。
设置 BigQuery 数据集和表
在本教程中,您必须设置 BigQuery 数据集并创建两个表,用于存储 Salesforce 业务机会详细信息和 ServiceNow 帐号信息。
设置 BigQuery 数据集
如需设置 BigQuery 数据集,请执行以下操作:
- 在 Google Cloud 控制台中转到 BigQuery 页面。
- 点击“探索器”面板,然后选择您要在本教程中使用的项目。
- 展开 (操作),然后选择创建数据集。
- 在创建数据集页面中配置以下详细信息:
- 数据集 ID:输入
Demo_order_dataset
。 - 位置类型 > 区域:选择
us-central1 (lowa)
区域。
- 数据集 ID:输入
- 点击创建数据集。
现在,项目的探索器面板中应该会显示新的 Demo_order_dataset
数据集。
设置 BigQuery 表
如需创建 BigQuery 表,请执行以下操作:
- 在探索器面板中,点击并打开创建的
Demo_order_dataset
数据集。 - 如需创建空的 Orders 表,用于存储 Salesforce 业务机会详细信息,请执行以下步骤:
- 点击 创建表。
- 在目标位置部分,输入
Orders
作为表名称。 - 在架构部分,点击以文本形式修改,然后粘贴以下 JSON 架构定义:
[ { "name": "order_number", "type": "STRING", "mode": "NULLABLE", "description": "Salesforce order number" }, { "name": "order_status", "type": "STRING", "mode": "NULLABLE", "description": "Sale order status" }, { "name": "tracking_number", "type": "INTEGER", "mode": "NULLABLE", "description": "Salesforce tracking number" } ]
- 点击创建表。
- 按照以下步骤创建一个空的 Accounts 表,用于存储 Salesforce 帐号的详细信息:
- 点击 创建表。
- 在目标位置部分,输入
Accounts
作为表名称。 - 在架构部分,点击以文本形式修改,然后粘贴以下 JSON 架构定义:
[ { "name": "account_id", "type": "STRING", "mode": "NULLABLE", "description": "Account ID for the opportunity" }, { "name": "name", "type": "STRING", "mode": "NULLABLE", "description": "Account name for the opportunity" } ]
- 点击创建表。
现在,新的
Orders
和Accounts
表应该会显示在探索器面板的 Demo_order_dataset 数据集中。
验证 ServiceNow 实例
本教程使用 ServiceNow 免费的个人开发者实例 (PDI)。您可以使用现有的 ServiceNow 实例,也可以创建一个新实例。验证您的实例是否处于活跃状态,并记下其实例网址。如需详细了解 PDI,请参阅 ServiceNow PDI 文档。
配置连接
在本教程中,您必须在集成连接器中配置以下连接:
- Salesforce 连接
- 在 Integration Connectors 中配置 Salesforce 连接。要了解如何配置 Salesforce 连接器,请参阅 Salesforce 连接器。
- BigQuery 连接
- 在 Integration Connectors 中配置 BigQuery 连接,以获取、更新和验证 Demo_order_dataset 数据集中的订单和帐号详细信息。如需了解如何配置 BigQuery 连接器,请参阅 BigQuery 连接器。
- ServiceNow 连接
- 使用实例网址在 Integration Connectors 中配置 ServiceNow 连接,以便在 ServiceNow 中创建和检索帐号详细信息。如需了解如何配置 ServiceNow 连接器,请参阅 ServiceNow 连接器。
创建集成
如需创建新的集成,请执行以下步骤:
- 在 Google Cloud 控制台中,前往 Application Integration 页面。
- 在导航菜单中,点击 Integrations(集成)。随即会出现集成列表页面。
- 点击
- Integration name(集成名称):输入
opportunity-to-order-integration
。 - 说明:输入
Demo integration created for tutorial
。 - 区域:从支持的区域列表中选择
us-central1
。 - 点击创建以打开集成编辑器。
创建集成,然后在创建集成页面中提供以下详细信息:
- Integration name(集成名称):输入
设置集成触发器
成功创建集成后,您可以添加和配置集成触发器,以针对已识别的事件调用集成。
在本教程中,Salesforce 触发器用于为 Salesforce 实例中创建的每个新业务机会调用集成。如需在 opportunity-to-order-integration
集成中添加和配置 Salesforce 触发器,请执行以下操作:
- 在集成编辑器中,点击触发器以显示可用触发器的列表。
- 点击 Salesforce 触发器元素,并将其放置在集成编辑器中。
- 在设计人员画布上选择 Salesforce 触发器元素,以打开 Salesforce 触发器配置窗格。
- 在触发器输入下,配置以下字段:
- 事件类型:从下拉列表中选择更改数据捕获 (CDC)。
- Salesforce 实例配置:点击 + 添加新的 Salesforce 实例配置选项。
在添加 Salesforce 实例配置对话框中,执行以下操作:
- Salesforce 实例连接名称:输入 Salesforce 实例的连接名称。例如
test
。 - Salesforce 网域:输入您的 Salesforce 域名。您可以在 Salesforce 帐号 > 查看资料页面中找到此信息。
- 身份验证配置文件:选择身份验证配置文件。 如果您没有身份验证配置文件,请创建新的配置文件。 如需了解详情,请参阅创建新的身份验证配置文件。
- 点击添加。
- Salesforce 实例连接名称:输入 Salesforce 实例的连接名称。例如
- Salesforce 渠道配置:点击下拉列表中的 + 添加新的 Salesforce 渠道配置选项。
在添加 Salesforce 渠道对话框中,执行以下操作:
- Salesforce 对象名称:输入
Opportunity
。 - 点击添加。
- Salesforce 对象名称:输入
- 操作:从下拉列表中选择创建
系统会自动保存对属性的更改。
将触发器载荷映射到 Salesforce 连接器
使用 Salesforce 触发器调用集成时,您可以提取业务机会 ID 并将其映射到 Salesforce 连接器,以便检索业务机会的其他详细信息。
关联到 Salesforce 账号
请按照以下步骤添加和配置连接器任务,以便使用 Salesforce 连接检索业务机会详情:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 在设计器中选择连接器任务元素,以查看连接器任务配置窗格。
- 点击
Fetch Salesforce Data
。
,然后将连接器标签重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择业务机会,然后选择获取作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
提取并映射机会 ID
数据映射任务用于在 Salesforce 触发器和 Salesforce 连接器之间映射和提取业务机会详细信息。
如需在集成中添加和配置数据映射,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 选择设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Map to opportunity ID
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
借助数据映射编辑器,您可以使用可用的转换函数将输入变量映射到所需的输出变量。然后,输出可用作任何其他集成任务或触发器的变量。如需详细了解如何映射变量,请参阅添加映射。
- 将触发器(
SalesforceTriggerCdcRecordID
)输出变量映射到自动生成的连接器(entityId(Fetch Salesforce Data)
)输入变量。映射完成后,关闭窗格。 所有更改都将自动保存。
- 从 Salesforce 触发器到映射到业务机会 ID 任务添加边缘连接。
- 将映射到业务机会 ID 任务中的边缘连接添加到提取 Salesforce 数据连接器。
在 BigQuery 表中验证 Salesforce 帐号
从 Salesforce 连接器检索所有业务机会详细信息后,您需要提取并映射与业务机会相关联的帐号 ID,并验证其是否存在于您的 BigQuery 表中。
连接到 BigQuery 表
请执行以下步骤,配置连接器任务,以便使用 BigQuery 连接读取 BigQuery Accounts 表:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Check account in BigQuery
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择帐号,然后选择列表作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
- 将提取 Salesforce 数据连接器中的边缘连接添加到在 BigQuery 中检查帐号连接器。
提取并验证 Salesforce 帐号 ID
要提取、映射和验证业务机会的帐号 ID,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 点击设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Check account
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
- 点击 + 添加新变量,然后创建以下输出变量:
输出变量名称 数据类型 sf_account_id
STRING
sf_account_name
STRING
account_exists
BOOLEAN
- 在 Salesforce 连接器载荷变量和局部变量之间创建以下映射:
输入 输出 connectorOutputPayload ( Fetch Salesforce Data) .GET_PROPERTY("AccountId")
sf_account_id
connectorOutputPayload ( Fetch Salesforce Data) .GET_PROPERTY("Name")
sf_account_name
connectorOutputPayload (Check account in BigQuery) .FILTER(~obj1 -> ~obj1 .GET_PROPERTY("account_id") .TO_STRING() .EQUALS(sf_account_id) ) .SIZE() .EQUALS("1")
account_exists
映射完成后,关闭窗格。 所有更改都将自动保存。
- 从在 BigQuery 中查看帐号连接器向检查帐号任务添加边缘连接。
创建新的 BigQuery 账号
在 BigQuery 中验证 Salesforce 帐号后,如果该帐号不存在,请执行以下操作以在 BigQuery 中创建新帐号。您还可以使用相同的信息在 ServiceNow 中创建帐号。
将帐号添加到 BigQuery
执行以下步骤来配置连接器任务,以在 BigQuery 帐号表中创建新实体:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Create account in BigQuery
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择帐号,然后选择创建作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
创建新的 ServiceNow 帐号
执行以下步骤来配置连接器任务,以将新帐号添加到 ServiceNow 实例:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Create account in ServiceNow
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择 system_user,然后选择创建作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
转换和映射帐号详情
如需转换帐号详细信息并将其映射到 BigQuery 和 ServiceNow 连接器,请执行以下操作:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 点击设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Mapping for Account Creation
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
- 点击 + 添加新变量,然后创建以下输入变量:
输入变量名称 数据类型 new_BQaccount
JSON
new_SNaccount
JSON
- 创建以下映射,以将 Salesforce 帐号 ID 和名称映射到 BigQuery 表:
输入 输出 new_BQaccount .SET_PROPERTY( sf_account_id, "account_id" ) .SET_PROPERTY( sf_account_name, "name" )
connectorInputPayload (Create account in BigQuery)
new_SNaccount .SET_PROPERTY( sf_account_id, "sys_id" ) .SET_PROPERTY( sf_account_name, "first_name" )
connectorInputPayload (Create account in ServiceNow)
映射完成后,关闭窗格。 所有更改都会自动保存。
- 将帐号创建映射任务中的边缘连接添加到在 BigQuery 中创建帐号连接器。
- 将映射帐号创建任务中的边缘连接添加到在 ServiceNow 中创建帐号连接器。
在 BigQuery 中创建新订单
执行以下操作,生成订单号并将其添加到 BigQuery 中。
将订单添加到 BigQuery
执行以下步骤来配置连接器任务,以在 BigQuery Orders 表中创建新实体:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Create order in BigQuery
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择订单,然后选择创建作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
生成订单并映射到 BigQuery
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 点击设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Mapping for Order Creation
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
- 点击 + 添加新变量,然后创建以下变量:
变量名称 数据类型 order_number
STRING
- 创建以下映射以生成新的订单号,并将订单详细信息映射到 BigQuery 连接器:
输入 输出 GENERATE_UUID() .SPLIT("-") .GET("0")
new_order_number
"{}" .TO_JSON() .SET_PROPERTY( connectorOutputPayload ( Fetch Salesforce Data) .GET_PROPERTY("DeliveryInstallationStatus__c") , "order_status" ) .SET_PROPERTY( connectorOutputPayload ( Fetch Salesforce Data) .GET_PROPERTY("TrackingNumber__c") , "tracking_number" ) .SET_PROPERTY( new_order_number , "order_number" )
connectorInputPayload (Create Order in BigQuery)
映射完成后,关闭窗格。 所有更改都会自动保存。
- 将在 BigQuery 中创建帐号连接器中的边缘连接添加到映射以创建订单任务。
- 将在 ServiceNow 连接器中创建帐号中的边缘连接添加到映射以用于创建订单任务。
- 从映射创建订单任务到在 BigQuery 中创建订单连接器,添加边缘连接。
更新 Salesforce 业务机会
生成新的订单号后,您需要更新来源 Salesforce 业务机会
配置 Salesforce 连接器
请按照以下步骤配置连接器任务,以更新现有的 Salesforce 业务机会:
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素以查看连接器任务配置窗格。
- 点击
Update Salesforce
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在类型下,选择实体。
- 在设置实体/操作下,从可用实体列表中选择业务机会,然后选择更新作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
将订单号映射到 Salesforce
- 在集成编辑器中,点击 Tasks 以显示可用任务的列表。
- 点击数据映射元素,并将其放入集成编辑器中。
- 点击设计器上的 Data Mapping 元素以查看任务配置窗格。
- 点击
Mapping to update opportunity
。
,然后将 Data Mapping 任务重命名为 - 点击打开数据映射编辑器。
- 创建以下映射以更新 Salesforce 业务机会:
输入 输出 "{}" .TO_JSON() .SET_PROPERTY( new_order_number , "OrderNumber__c" )
connectorInputPayload (Update Salesforce)
entityId ( Fetch Salesforce Data)
entityId (Update Salesforce )
"'" .CONCAT(entityId ( Fetch Salesforce Data)) .CONCAT("'")
filterClause (Update Salesforce )
映射完成后,关闭窗格。 所有更改都会自动保存。
- 将在 BigQuery 中创建订单连接器中的边缘连接添加到映射以更新业务机会任务。
- 将“映射到更新业务机会”任务中的边缘连接添加到更新 Salesforce 连接器。
添加边缘条件
通过边缘条件,您可以指定必须满足哪些条件才能控制集成,以传递到由该边缘连接的任务。现在您已添加和配置所需的任务,接下来可以添加边缘条件来定义集成流程。
以下边缘条件根据帐号信息验证来控制集成流程:
- 使用以下边缘条件添加从 Check account 任务和 Mapping for Account Creation 任务的边缘连接:
$account_exists$ = False
- 添加从 Check account 任务到 Mapping for Order Creation 任务且具有以下边缘条件的另一个边缘连接:
$account_exists$ = True
集成流程示例
下图显示了使用本教程创建的集成的示例布局。
发布并测试集成
如需发布集成,请点击集成编辑器工具栏中的发布。
成功发布集成后,您可以查看和检查已发布集成的执行日志。如需查看日志,请点击查看此集成的执行日志。系统会显示执行日志页面。
测试用例 1:检查是否为新账号 ID 创建了订单号
登录 Salesforce 实例并创建新的业务机会,测试集成。您必须在新帐号或 BigQuery 表中不存在的帐号中创建业务机会。
如需验证集成是否成功,请执行以下操作:
- 转到 BigQuery 页面。
- 打开帐号表格,然后进行检查以确认插入了新的业务机会帐号 ID。
- 打开订单表格,然后进行检查以确认插入了新的订单详细信息。
- 转到您的 ServiceNow 实例。
- 请进行检查以确认向实例中添加了包含相同 Salesforce 业务机会帐号 ID 的新帐号。
- 打开 Salesforce。
- 检查并确认机会是否已使用新的订单号更新。
测试用例 2:检查是否在 BigQuery 中为现有帐号 ID 创建了订单号
登录 Salesforce 实例并创建新的业务机会,测试集成。您必须在 BigQuery 表中也已存在的现有帐号中创建业务机会。
如需验证集成是否成功,请执行以下操作:
- 转到 BigQuery 页面。
- 打开“帐号”表格,然后检查并确认没有插入新的帐号 ID。
- 打开订单表格,然后进行检查以确认插入了新的订单详细信息。
- 打开 Salesforce。
- 检查并确认机会是否已使用新的订单号更新。
清理
为避免系统因本教程中使用的资源向您的 Google Cloud 帐号收取费用,请取消发布集成并删除在 Integration Connectors 中创建的连接。