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

时间:2015-08-27 14:37:08

标签: biztalk

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

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

那么基于内容的路由是否可以用于计算属性?

3 个答案:

答案 0 :(得分:1)

您需要一个属性架构,其属性名为" Age"并确保将此属性设置为" MessageContextPropertyBase"通过改变"物业架构基地"来自"属性"节点Age的。获得属性架构后,可以在Orchestration或自定义接收管道组件中计算后提升此属性。

  1. 如果使用Orchestration方法,则需要使用Age属性创建关联类型,并在Send shape上初始化相关性。确保您还使用Message_1(...)在外发邮件上设置Age属性。在业务流程中使用属性架构之前部署该属性架构。如果您在不同的程序集中创建它,则添加对它的引用。
  2. 或者您也可以使用Execute方法中的Promote方法创建自定义管道组件并提升相同的Age属性。

答案 1 :(得分:0)

我很确定提升的属性需要成为消息的一部分。但是你总是可以创建一个新的消息类型,它导入原始模式,但是包含你的新字段并根据它进行路由。然后,您可以在发送端口的外发地图上映射回原始消息类型。

您当然需要确保此新消息通过具有属性提升的管道传递,例如XMLReceive。所以你的Orch需要处理它,或者你可以在你的接收端口映射到这个新消息,并在你所说的Orch之前进行路由。知道具体细节很难说最好的方法。

答案 2 :(得分:0)

是的,您可以计算年龄并使用本地变量路由入站邮件。