【发布时间】:2015-08-27 14:37:07
【问题描述】:
我需要根据计算的属性/字段路由消息,但我的传出架构中不存在相同的属性/元素。这可能吗?
例如。假设我收到一条包含员工姓名和出生日期的入站消息。我在编排中或在地图中使用 functoid 计算员工的年龄。现在我想根据年龄条件发送消息,但传出模式中不存在年龄属性。
那么基于内容的路由是否可以在计算的属性上实现?
【问题讨论】:
标签: biztalk
我需要根据计算的属性/字段路由消息,但我的传出架构中不存在相同的属性/元素。这可能吗?
例如。假设我收到一条包含员工姓名和出生日期的入站消息。我在编排中或在地图中使用 functoid 计算员工的年龄。现在我想根据年龄条件发送消息,但传出模式中不存在年龄属性。
那么基于内容的路由是否可以在计算的属性上实现?
【问题讨论】:
标签: biztalk
您需要一个具有名为“Age”的属性的属性架构,并确保通过更改节点 Age 的“属性”中的“属性架构基础”将此属性设置为“MessageContextPropertyBase”。拥有属性架构后,您可以在计算之后在 Orchestration 或自定义接收管道组件中提升此属性。
【讨论】:
我很确定提升的属性需要成为消息的一部分。但是你总是可以创建一个新的消息类型来导入原始模式,但包含你的新字段并基于它进行路由。然后,您可以在发送端口的传出映射上映射回原始消息类型。
您当然需要确保这条新消息通过带有属性提升的管道,例如 XMLReceive。因此,您的 Orch 将需要处理该问题,或者,您可以在接收端口中映射到这条新消息,并在您所说的这个 Orch 之前进行路由。很难说出了解细节的最佳方法。
【讨论】:
是的,您可以计算年龄并使用局部变量路由入站消息。
【讨论】: