在此步骤中,我们开始创建 BizTalk Server。 我们首先应包含从 Salesforce 获取的机会通知消息的消息架构,然后开始创建业务流程来处理消息。
将 Salesforce 机会通知方案添加到架构中
登录到 Salesforce.com 门户。 在 Salesforce 门户中,单击页面右上角的登录名,然后单击 “设置”。
在左窗格中的 “应用设置”下,展开“ 创建”,展开 “工作流和审批”,然后单击“ 工作流规则”。
在“ 所有工作流规则 ”页中,单击之前创建的 “已关闭的机会 ”工作流。
在 已关闭的机会 工作流规则页中,单击 NewOp1 出站消息工作流动作。
在 NewOp1 出站消息工作流作页中,右键单击“ 单击 WSDL”链接,单击“ 另存为目标”,然后指定要保存 WSDL 的位置。
注释
必须保存扩展名为 .wsdl 的文件。
在 Visual Studio 中创建 BizTalk Server。 在本教程中,让我们将项目命名为
BtsSalesforceIntegration
.右键单击解决方案资源管理器中的 BizTalk Server 项目,指向 “添加”,然后单击“ 添加生成的项”。
在“ 添加生成的项 ”对话框中,单击“ 使用 WCF 服务”,然后单击“ 添加 ”以启动 BizTalk WCF 服务使用 向导。 在欢迎页上,单击“ 下一步”。
在 “元数据源 ”页上,选择 “元数据文件”(WSDL 和 XSD) 选项,然后单击“ 下一步”。
在“ 元数据文件 ”页上,单击“ 添加”,然后导航到从 Salesforce 门户下载的 WSDL 文件的位置。 选择 WSDL 文件,然后单击“ 下一步”。
在下一页中,将命名空间
NotificationService
设置为“导入”,然后单击“ 导入”。 该向导将架构文件和业务流程添加到 BizTalk Server 项目。 从 Salesforce 接收机会通知的消息架构是 NotificationService_soap_sforce_com_2005_09_outbound.xsd。
创建业务流程以接收通知消息
完成 BizTalk WCF 服务消费向导后,将把一个业务流程(在此示例中 NotificationService.odx)添加到 BizTalk Server 项目中。
打开业务流程文件并在业务流程视图中,添加两个新消息变量。 将它们命名为
NotificationMessage
和NotificationAck
。 按如下所示设置这些消息变量的消息类型:将 NotificationMessage 设置为 NotificationService.NotificationService_soap_sforce_com_2005_09_outbound.notifications。 此消息变量表示从 Salesforce 接收的机会通知消息。
将 NotificationAck 设置为 NotificationService.NotificationService_soap_sforce_com_2005_09_outbound.notificationsResponse。 此消息变量表示是发回给 Salesforce 的机会通知确认消息。
向编排添加接收形状。 设置形状上的以下属性:
将 “激活 ”设置为 True。
将 Name 设置为 ReceiveNotificationMessage。
将 消息 设置为 NotificationMessage。
在“接收”形状之后添加构造消息形状。 将消息形状命名为
ConstructNotificationResponse
,并将 Messages Constructed 属性设置为NotificationAck
. 我们将在消息构建中创建一个流程图,以生成通知确认并发送回 Salesforce。在“构造消息”模板中,添加一个转换模板。 双击“转换”形状,然后在“转换配置”对话框中,选择“ 新建映射 ”选项。
将映射名称指定为
BtsSalesforceIntegration.MapNotificationResponse
.将源设置为 NotificationMessage ,将目标设置为 NotificationAck。
确保选中复选框 “当我点击确定时,启动 BizTalk 映射器”。
在 MapNotificationResponse.btm 中,我们将创建一个通知响应,以发送回 Salesforce。 每当 Salesforce 发送通知时,它都期望有一个确认作为回报。 通知响应消息的架构显示响应中的 Ack 元素的类型为布尔值。 因此,在映射中,必须删除 值映射 functoid 并将其两个输入值(条件和结果)设置为
true
。 单击“ 确定 ”保存 functoid。将 值映射 functoid 连接到目标架构中的 Ack 元素。
在编排流程中,在构造消息形状之后,添加一个发送形状,该形状将用于将确认消息发送回 Salesforce。
将 Name 设置为 SendNotificationAck。
将 消息 设置为 NotificationAck。
在编排流程中,添加一个端口来接收 Salesforce 通知消息,并在响应中发送确认。 在端口配置向导中,选择以下选项:
将端口名称指定为
SalesforceNotificationPort
.选择用于创建新端口类型的选项。
将 通信模式 设置为 请求-响应。
将 通信的端口方向 设置为 我将收到请求并发送响应 ,并将 端口绑定 设置为 稍后指定。
将端口的 请求 操作连接到接收形状(ReceiveNotificationMessage),并将端口的 响应 操作连接到发送形状(SendNotificationAck)。 以下屏幕截图描述了从 Salesforce 接收机会通知并发送确认回发的业务流程的一部分:
现在,我们已经设置好解决方案,其中会从 Salesforce 收到机会通知,并发送确认回去。 在后续主题中,我们将基于此解决方案开始处理机会通知,以获取有关可用销售机会类型的更多详细信息。