如何在业务流程中创建角色链接

必须完成以下基本任务才能在业务流程中使用角色链接:

  • 创建参与方和发送端口,并将它们相互关联。

  • 使用下面的过程可创建角色链接类型并添加端口类型。

    创建角色链接类型
    1. 在“业务流程视图”窗口中,展开 “类型”,右键单击“ 角色链接类型”,然后单击“ 新建角色链接类型”。
    2. 单击刚创建的角色链接类型。 在属性窗口的“标识符”字段中,键入 Provider_Consumer_RoleLinkType
    3. 展开 “Provider_Consumer_RoleLinkType”,然后单击“ Role_1”。 在属性窗口的“标识符”字段中,键入 ConsumerRole
    4. 右键单击 ConsumerRole,然后单击 “添加端口类型”。 这将启动端口类型向导。
    5. 在 “欢迎使用端口类型向导” 页上,单击“ 下一步”。
    6. 在 “选择端口类型或创建新的端口类型 ”页上,选择“ 创建新的端口类型”,然后为“ 端口类型名称”键入 ConsumerPortType
    7. 对于 “通信模式”,请选择“ 单向”,对于 “访问限制”,请选择“ 公共 - 无限制”。 单击“下一步”。
    8. 在 “完成端口向导” 页上,单击“ 完成”。
    9. 右键单击 “Provider_Consumer_RoleLinkType”,然后单击“ 新建角色”。
    10. 单击“Role_1”,然后在属性窗口的“标识符”字段中键入 ProviderRole
    11. 右键单击“ ProviderRole”,然后单击“ 添加端口类型”。 这将启动端口类型向导。
    12. 在 “欢迎使用端口类型向导” 页上,单击“ 下一步”。
    13. 在 “选择端口类型或创建新的端口类型 ”页上,选择“ 创建新的端口类型”,然后为“ 端口类型名称”键入 ProviderPortType
    14. 对于 “通信模式”,请选择“ 单向”,对于 “访问限制”,请选择“ 公共 - 无限制”。 单击“下一步”。
    15. 在 “完成端口向导” 页上,单击“ 完成”。 注意: 放置在角色链接内的已配置端口不会保留其关联的绑定信息。

    在前面的过程中,将创建一个包含两个角色的角色链接类型:一个是 ProviderRole,用于接收和处理来自使用者的消息,一个是 ConsumerRole,业务流程将使用随角色提供的发送端口向使用者发送消息。

注意

角色链接类型可以包含提供者角色和使用者角色,它可以包括这两者之一,或各包含一个,具体视业务流程需要而定。

  • 使用以下过程可以向业务流程添加角色链接。

    使用角色链接向导创建角色链接
    1. 在业务流程工具箱中,将 “角色链接” 形状拖到设计图面。 这将启动角色链接向导。
    2. 在 “欢迎使用角色链接向导” 页上,单击“ 下一步”。
    3. 在 “角色链接名称 ”页上的“ 名称” 字段中,键入 Provider_Consumer。 单击“下一步”。
    4. 在 “角色链接类型 ”页上,选择“ 使用现有角色链接类型”。 在 “角色链接类型名称 ”下拉列表中,选择 “Provider_Consumer_RoleLinkType”。 单击“下一步”。
    5. 在“角色标识”页上,从“此业务流程将实现哪个角色来接收和处理来自合作伙伴的消息?”下拉列表中选择“ProviderRole”。 向导自动选择 ConsumerRole 作为 此业务流程将使用以下角色向角色内端口上的合作伙伴发送消息。 单击“下一步”。
    6. 在 “角色链接使用情况 ”页上,选择“ 我将向合作伙伴的角色发送第一条消息”。 单击“完成”。

    在前面的过程中,您将 ConsumerRole 进一步定义为初始化角色。 这意味着,业务流程将通过 ConsumerRole 提供的端口向使用者发送第一条消息,然后 ProviderRole 将从使用者接收发送回来的消息,以进一步处理。

    注意

    如果角色链接类型中只有一个角色,则需要通过选择“ 提供者角色:我将接收第一条消息 ”或“ 使用者角色:我将发送第一条消息 ,而不是执行前面过程中的步骤 5”来定义在业务流程中的角色。

  • 设计业务流程。 您可以利用相关集来确保传入消息与业务流程的相应实例相匹配。

  • 将端口与发送和接收形状相关联。 此外,执行以下操作:

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

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

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

另请参阅

在业务流程中使用角色链接如何使用角色链接形状如何使用角色链接向导