BizTalk中基于计算属性的基于内容的路由

BizTalk中基于计算属性的基于内容的路由,biztalk,Biztalk,我需要根据计算出的属性/字段路由消息,但在传出架构中不存在相同的属性/元素。这可能吗 假设我收到一条包含员工姓名和出生日期的入站消息。我在编排中或在地图中使用functoid计算员工的年龄。现在,我想基于年龄条件发送消息,但年龄属性在传出模式中不存在 那么,基于内容的路由是否可能基于计算属性呢?我非常确定,提升的属性需要成为消息的一部分。但您始终可以创建一个新的消息类型,该类型导入原始模式,但包含新字段,并基于该字段进行路由。然后,您可以映射回发送端口中传出映射上的原始消息类型 当然,您需要确保

我需要根据计算出的属性/字段路由消息,但在传出架构中不存在相同的属性/元素。这可能吗

假设我收到一条包含员工姓名和出生日期的入站消息。我在编排中或在地图中使用functoid计算员工的年龄。现在,我想基于年龄条件发送消息,但年龄属性在传出模式中不存在


那么,基于内容的路由是否可能基于计算属性呢?

我非常确定,提升的属性需要成为消息的一部分。但您始终可以创建一个新的消息类型,该类型导入原始模式,但包含新字段,并基于该字段进行路由。然后,您可以映射回发送端口中传出映射上的原始消息类型


当然,您需要确保这个新消息通过一个带有属性提升的管道,比如XMLReceive。所以您的Orch需要处理这个问题,或者,您可以在接收端口映射到这个新消息,并在您提到的Orch之前进行路由。很难说知道细节的最佳方法

您需要一个名为“Age”的属性的属性架构,并通过将节点Age的“Properties”更改为“property schema Base”,确保将此属性设置为“MessageContextPropertyBase”。拥有属性架构后,可以在业务流程或自定义接收管道组件中进行计算后升级此属性

  • 如果使用编排方法,则需要使用Age属性创建关联类型,并在发送形状上初始化关联。确保还使用消息_1(…)设置了传出消息的年龄属性。在业务流程中使用属性架构之前,请先部署它。如果要在其他程序集中创建它,请添加对它的引用
  • 或者,也可以创建自定义管道组件,并使用Execute方法中的升级方法升级同龄属性

  • 是的,您可以计算年龄,并使用局部变量路由入站消息

    你应该更加强调如何通过路由来改进你的答案。