本教程介绍了一个用例,说明如何使用 Application Integration 来自动执行客户关系管理 (CRM) 应用和企业资源规划 (ERP) 应用之间的订单管理流程。
概览
企业使用各种 CRM 和 ERP 应用来创建、处理、管理和维护销售订单。这些申请分别由不同的团队或组织处理,因此在确保持续跟踪订单的同时及时向客户提供最新动态是一项挑战。
在本教程中,您将创建一个集成,该集成使用 Salesforce 触发器来订阅 Salesforce 中的新业务机会事件。创建新的业务机会时,此集成将检索其他业务机会详细信息,例如账号 ID 和名称。系统会在 BigQuery 表中检查这些详细信息,以便创建和更新包含跟踪订单号的业务机会。在验证过程中,如果 BigQuery 中不存在账号信息,集成将使用 Integration Connectors 在 BigQuery 表和关联的 ServiceNow 实例中自动创建新条目。
目标
本教程介绍了如何在集成中完成以下任务:
- 设置 Salesforce 触发器以调用集成。
- 为 Salesforce、BigQuery 和 ServiceNow 连接添加并配置连接器任务。
- 添加并配置数据映射任务,以提取和映射业务机会详情。
费用
在本教程中,您将使用 Google Cloud 的以下收费组件:
本教程中的说明旨在将您的资源使用量保持在 Google Cloud 的 始终免费层级的限制范围内。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the 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
数据集应显示在项目的 Explorer 面板中。
设置 BigQuery 表
如需创建 BigQuery 表,请执行以下操作:
- 在探索器面板中,点击并打开创建的
Demo_order_dataset
数据集。 - 请按以下步骤创建一个空的 Orders 表,以存储 Salesforce 业务机会详细信息:
- 点击 Create table(创建表)。
- 在目标位置部分,输入
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 账号详细信息:
- 点击 Create table(创建表)。
- 在目标位置部分,输入
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 页面。
- 在导航菜单中,点击集成。系统随即会显示集成页面。
- 点击
- 集成名称:输入
opportunity-to-order-integration
。 - 说明:输入
Demo integration created for tutorial
。 - 区域:从支持的区域列表中选择
us-central1
。 - 点击创建以打开集成编辑器。
创建集成,然后在创建集成页面中提供以下详细信息:
- 集成名称:输入
设置集成触发器
成功创建集成后,您可以添加和配置集成触发器,以便针对识别到的事件调用集成。
在本教程中,将使用 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 账号
请执行以下步骤,添加并配置 Connectors 任务,以使用 Salesforce 连接检索业务机会详情:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 选择设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Fetch Salesforce Data
。
,然后将连接器标签重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择机会,然后选择 Get 作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
提取和映射机会 ID
数据映射任务用于映射和提取该 Salesforce 触发器与 Salesforce 连接器之间的业务机会详情。
如需在集成中添加和配置数据映射,请执行以下操作:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 选择设计器上的数据映射元素以查看任务配置窗格。
- 点击
Map to opportunity ID
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
借助数据映射编辑器,您可以使用可用的转换函数将输入变量映射为所需的输出变量。然后,输出可用作任何其他集成任务或触发器的变量。如需详细了解如何映射变量,请参阅添加映射。
- 将触发器 -
SalesforceTriggerCdcRecordID
- 输出变量映射到自动生成的连接器 -entityId(Fetch Salesforce Data)
- 输入变量。映射完成后,关闭窗格。 所有更改都将自动保存。
- 从 Salesforce 触发器到映射到业务机会 ID 任务添加边缘连接。
- 从“映射到业务机会 ID”任务到“提取 Salesforce 数据”连接器添加边缘连接。
在 BigQuery 表中验证 Salesforce 账号
从 Salesforce 连接器检索所有业务机会详细信息后,您需要提取并映射与业务机会关联的账号 ID,并验证其是否存在于 BigQuery 表中。
连接到 BigQuery 表
请按以下步骤配置连接器任务,以使用 BigQuery 连接读取 BigQuery Accounts 表:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Check account in BigQuery
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择账号,然后选择列表作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
- 从“提取 Salesforce 数据”连接器添加边缘连接到“在 BigQuery 中检查账号”连接器。
提取和验证 Salesforce 账号 ID
如需提取、映射和验证业务机会的账号 ID,请执行以下操作:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 点击设计器上的数据映射元素以查看任务配置窗格。
- 点击
Check account
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
- 点击 + 添加新变量并创建以下输出变量:
输出变量名称 数据类型 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 Accounts 表中创建新实体:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Create account in BigQuery
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择账号,然后选择创建作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
创建新的 ServiceNow 账号
请按以下步骤配置连接器任务,以将新账号添加到您的 ServiceNow 实例:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Create account in ServiceNow
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择 system_user,然后选择 Create 作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
转换和映射账号详情
如需转换账号详细信息并将其映射到 BigQuery 和 ServiceNow 连接器,请执行以下操作:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 点击设计器上的数据映射元素以查看任务配置窗格。
- 点击
Mapping for Account Creation
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
- 点击 + 添加新变量,然后创建以下输入变量:
输入变量名称 数据类型 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 表中创建新实体:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Create order in BigQuery
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 BigQuery 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择订单,然后选择创建作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
生成有序数据并映射到 BigQuery
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 点击设计器上的数据映射元素以查看任务配置窗格。
- 点击
Mapping for Order Creation
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
- 点击 + 添加新变量,然后创建以下变量:
变量名称 数据类型 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 业务机会的 Connectors 任务:
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击连接器元素,并将其放置到集成编辑器中。
- 点击设计器上的连接器任务元素,以查看连接器任务配置窗格。
- 点击
Update Salesforce
。
,然后将连接器重命名为 - 点击配置连接器。
- 在连接器任务编辑器页面中,执行以下操作:
- 在选择连接下,选择
us-central1
区域。 - 从可用连接列表中选择您的 Salesforce 连接。
- 点击下一步。
- 在 Type(类型)下,选择 Entities(实体)。
- 在设置实体/操作下,从可用实体列表中选择机会,然后选择更新作为操作。
- 点击完成以完成连接配置并关闭窗格。
- 在选择连接下,选择
将订单号映射到 Salesforce
- 在集成编辑器中,点击任务以显示可用任务列表。
- 点击数据映射元素,并将其放置到集成编辑器中。
- 点击设计器上的数据映射元素以查看任务配置窗格。
- 点击
Mapping to update opportunity
。
,然后将数据映射任务重命名为 - 点击打开数据映射编辑器。
- 创建以下映射以更新 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”连接器添加边缘连接。
添加边缘条件
边缘条件可让您指定必须满足的条件,集成才能传递到通过边缘连接的任务。现在,您已经添加并配置了所需的任务,接下来可以添加边缘条件来定义集成的流程。
以下边缘条件会根据账号信息的验证结果来控制集成流程:
- 使用以下边缘条件添加从检查账号任务到账号创建映射任务的边缘连接:
$account_exists$ = False
- 使用以下边缘条件从检查账号任务到用于创建订单的映射任务添加另一个边缘连接:
$account_exists$ = True
集成流程示例
下图显示了使用本教程创建的集成的示例布局。
发布和测试集成
如需发布集成,请点击集成编辑器工具栏中的发布。
成功发布集成后,您可以查看和检查已发布集成的执行日志。如需查看日志,请点击 查看此集成的执行日志。系统会显示执行日志页面。
测试用例 1:检查是否为新账号 ID 创建了订单号
通过登录 Salesforce 实例并创建新的业务机会来测试集成。您必须在新账号或 BigQuery 表中不存在的账号中创建业务机会。
如需验证集成是否成功,请执行以下操作:
- 转到 BigQuery 页面。
- 打开账号表,检查以确认是否已插入新的业务机会账号 ID。
- 打开 Orders(订单)表,检查以确认是否已插入新的订单详情。
- 前往您的 ServiceNow 实例。
- 检查是否向您的实例添加了包含相同 Salesforce 业务机会账号 ID 的新账号。
- 打开 Salesforce。
- 检查以确认机会是否已更新为新订单号。
测试用例 2:检查 BigQuery 中是否为现有账号 ID 创建了订单号
通过登录 Salesforce 实例并创建新的业务机会来测试集成。您必须在 BigQuery 表中也存在的现有账号中创建业务机会。
如需验证集成是否成功,请执行以下操作:
- 转到 BigQuery 页面。
- 打开账号表,检查并确认未插入任何新账号 ID。
- 打开 Orders(订单)表,检查以确认是否已插入新的订单详情。
- 打开 Salesforce。
- 检查以确认机会是否已更新为新订单号。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请取消发布集成,并删除在 Integration Connectors 中创建的关联。