现在,我们已生成业务流程,用于将查询发送到 Salesforce 并接收响应。 在本部分中,我们将更新该业务流程,将 Salesforce 的响应插入到本地 SQL Server 数据库 Orders 中的 OrderDetails 表中。 为此,我们将执行以下广泛的步骤集:
在本地 SQL Server 数据库中的 Orders 数据库中创建 OrderDetails 表。
使用 BizTalk 适配器包提供的 Consume适配器服务插件生成 OrderDetails 表上 Insert操作的架构。
创建一个映射,将 Salesforce 响应消息转换为要插入 SQL Server 中的 OrderDetails 表的消息。
更新业务流程以使用转换将响应消息插入 OrderDetails 表中。
创建 SQL Server 数据库和表
创建数据库和表
打开 SQL Server Management Studio,以管理员身份连接。
右键单击 “数据库” 节点,然后单击“ 新建数据库”。 指定数据库名称,
Orders
并指定其他详细信息以创建新数据库。打开查询编辑器并运行以下查询,在 Orders 数据库中创建 OrderDetails 表:
USE [Orders] GO /****** Object: Table [dbo].[OrderDetails] Script Date: 07-12-2012 22:15:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[OrderDetails]([ID] [int] IDENTITY(1,1) NOT NULL, [TITLE] [varchar](200) NULL, [ProductName] [varchar](200) NULL, [Quantity] [float] NULL, [Amount] [float] NULL, PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] GO SET ANSI_PADDING OFF GO
为 OrderDetails 表的插入操作创建架构
安装 BizTalk 适配器包提供了一个使用适配器服务附加组件,可以在 BizTalk Server 项目中使用该外接程序来生成 OrderDetails 表上的插入操作的架构。 本部分提供创建消息架构所要遵循的步骤。
创建插入操作的模式
右键单击 BtsSalesforceIntegration 项目,指向 “添加”,然后单击“ 添加生成的项”。 在“ 添加生成的项 ”对话框中,单击“ 使用适配器服务”,然后单击“ 添加”。
在“使用适配器服务加载项”中,从“选择绑定”下拉列表中,单击“sqlBinding”,然后单击“配置”。
在“ 配置适配器 ”对话框的“ 安全 ”选项卡的 “客户端凭据类型”下,选择 Windows 以使用 Windows 身份验证连接到 SQL Server 数据库。
在“ 配置适配器 ”对话框中的 “URI 属性 ”选项卡下,“ 初始目录 ”指定要连接到的数据库名称(订单)。 对于 Server ,请指定要连接的 SQL Server 所在的计算机名称。 如果 SQL Server 数据库与 BizTalk Server 项目位于同一台计算机上,则只需放置句点(.)。 单击 “确定” 。
在“消费适配器服务加载项”中点击“ 连接”。 建立连接后,将协议类型选择为客户端(出站操作)。 在 “选择类别 ”框下,展开 “表”,单击“ OrderDetails ”表,然后在右侧窗格中单击“ 插入 ”,然后单击“ 添加”。
如果要为生成的架构添加标识符前缀,请指定 文件名前缀 。 在本教程中,我们将前缀指定为 InsertOrders ,然后单击“ 确定”。
将一堆架构添加到项目中。 我们将用于将消息插入 OrderDetails 表中的架构是 InsertOrdersTableOperation.dbo.OrderDetails.xsd。
映射 Salesforce 响应并插入模式结构
现在,我们有了架构(来自 Salesforce 的响应和插入 到 OrderDetails 中),必须将 Salesforce 的响应架构映射到 OrderDetails 的插入架构,以便可以将 Salesforce 的响应消息插入到 SQL Server 数据库表中。
映射架构
右键单击 BtsSalesforceIntegration 项目,指向 “添加”,单击“ 新建项”,然后单击“ 映射”。 指定映射名称,
QueryResult_Orders.btm
然后单击“ 添加”。在地图界面上,对于源架构,选择 QueryResult,对于目标架构,选择 InsertOrdersTableOperation.dbo.OrderDetails.xsd,然后在其中选择 Insert 节点。
映射两个架构,如以下屏幕截图所示:
请注意,地图在记录和 OrderDetails链接之间使用了循环 functoid。 这可确保 记录 下的一次或多次节点出现都映射到 OrderDetails 下的类似节点出现。
保存对地图的更改。
更新业务流程以将消息插入 SQL Server
在本部分中,我们将使用业务流程中的映射将 Salesforce 响应消息转换为消息,以便在 SQL Server 表中插入订单详细信息。 我们还将添加一个端口,用于将该消息发送到 SQL Server。
更新编排
为插入架构创建消息变量。 在业务流程视图中,右键单击 “消息 ”节点,然后单击“ 新建消息”。 将消息名称设置为 InsertOrders ,并将消息类型设置为 BtsSalesforceIntegration.InsertOrdersTableOperation_dbo_OrderDetails.Insert。
在 ReceiveQueryResult 形状后面添加构造消息形状。 将形状
ConstructOrders
的名称设置为,并将 Messages Constructed 属性设置为 InsertOrders。在 ConstructOrders 形状中,添加 转换 形状。 双击“转换”形状以打开“转换配置”对话框。 在对话框中,选择 “现有映射 ”选项,然后从下拉列表中选择 BtsSalesforceIntegration.QueryResult_Orders。 将 源 设置为 QueryResultMsg, 将目标 设置为 InsertOrders,然后单击“ 确定”。
在 ConstructOrders 形状之后,添加一个 Send 形状。 将形状
SendOrders
命名,并将消息类型设置为 InsertOrders。添加端口以将订单详细信息插入 Salesforce。 在端口配置向导中,选择以下选项:
将端口名称指定为
SendToSQL
.选择用于创建新端口类型的选项。
将 通信模式 设置为 单向。
将 通信的端口方向 设置为 我始终在此端口上发送消息 ,并将 端口绑定 设置为 稍后指定。
将端口的请求操作连接到SendOrders以完成编排。 以下屏幕截图描绘了已完成的业务流程,端到端。
向项目添加强名称密钥文件,并保存对项目的更改。
使用本主题中的步骤,我们已完成业务流程,以便从 Salesforce 接收机会通知,查询 Salesforce 以获取有关机会的更多详细信息,然后将查询响应插入 SQL Server 数据库中。 在后续主题中,我们将生成解决方案的一些其他关键组件,这些组件用于在 BizTalk Server 中使用 Salesforce 进行身份验证并处理 Salesforce 响应。