在编排中使用角色链接

角色链接是您的编排与贸易合作伙伴之间交互的一种抽象形式。 通过角色链接,你可以根据贸易伙伴解析、消息内容或数据库查找的结果动态选择与哪个贸易伙伴进行交互,同时保持整个业务流程不变。

例如,在企业到企业方案中,有多个买家、单个供应商和供应商的多个发货机构。 当买家向供应商发送采购订单时,供应商通过双方决议知道哪个买家正在发送采购订单,并可以应用适当的折扣。 此外,供应商会基于所订购的货物,实时确定由哪家运输代理负责交货。 尽管每个发货机构可能都有自己的运输协议,但供应商可以在运行时使用相同的业务流程来处理所有航运代理,并确定要与之交互的代理。 在后面的阶段,如果发货机构更新其传输协议(例如从 FTP 到 HTTP),供应商只需使用 BizTalk Explorer 或 BizTalk Server 管理控制台来更新与该特定发货机构关联的发送端口。 供应商不需要更改其驻留在编排中的业务流程。

角色

在编排中有两个角色:

  • 用于接收和处理消息的“实现”角色。 此角色也称为提供者。

  • 用于发送消息的“使用”角色。 此角色也称为使用者。

角色链接可以包括使用者角色或提供者角色,或者两者之一。 使用者角色使用提供程序角色提供的服务。 当你为其中一个或两个角色定义角色链接时,假设与你链接的合作伙伴正在履行互补角色。

角色链接具有 SourceParty 属性、 DestinationParty 属性和发起角色。 发起角色是发生第一个通信的角色,因此通过设置 DestinationParty 属性的值来启动角色链接。

如果发起角色是消费者(用于发送消息),则会在业务流程中显式设置 DestinationParty 属性(仅一次)。 为此,可以在表达式形状中设置 DestinationParty 的值,如以下示例所示,其中 ConfirmOrder 是角色链接的名称,PartnerName 和 OrganizationName 是参与方的参数:

ConfirmOrder(Microsoft.XLANGs.BaseTypes.DestinationParty) = new Microsoft.XLANGs.BaseTypes.Party("PartnerName", "OrganizationName");  

如果启动角色是用于接收消息的提供程序,则 DestinationParty 属性由接收方自动初始化。 DestinationParty 设置为提供程序本身。 SourceParty 属性是只读的,通过受信任的管道组件提供,以根据发送方的安全标识符(SID)或与参与方关联的证书解析参与方名称。 运行管道组件的主机必须标记为 “身份验证受信任”。 可以使用以下示例代码在表达式形状中获取 SourceParty 的值:

PartyName = Buyer_Supplier(Microsoft.XLANGs.BaseTypes.SourceParty);

角色链接是角色链接类型的实例,由一个或两个角色组成。 使用角色链接类型时,请考虑以下事项:

  • 只能引用单个角色链接类型中的任何给定端口类型一次。

  • 由于角色链接类型定义包括端口类型,因此端口类型的作用域必须包含使用它的任何角色链接类型的范围。

  • 使用 Business Activity Services (BAS)时,必须在与其关联的角色链接类型相同的 BizTalk 程序集中定义结构化参数架构。 由于架构与角色链接类型相关联,而不是与构成该角色链接类型的单个角色相关联,因此,如果扮演不同角色的参与方共享包含角色链接类型的程序集,则双方将看到相同的结构化参数架构。 如果双方使用相同的角色链接类型,但必须具有不同的参数架构,则应为每个参与方创建一个不同的程序集。 角色链接类型应在每个程序集中重复。

本节中

另请参阅

如何配置参与方解析管道组件
在业务流程中使用端口