业务流程中的推广属性

时间:2016-06-13 07:51:30

标签: maps biztalk biztalk-2010 biztalk-orchestrations

我已经阅读过关于我们可以在业务流程中提升财产的内容。以下是我的步骤 -

  1. 创建新的“StudentID”促销属性。
  2. 更改值“MessageContextPropertyBase”。
  3. 更新业务流程中“StudentID”的值。
  4. 创建“StudentID”的新关联集。
  5. 初始化发送形状的相关集。
  6. 在BizTalk管理员控制台中创建发送端口。
  7. 设置过滤器“POC.PromotedProINOx.Schema.PropertySchema.StudentID ==”7“”
  8. 我没有收到任何错误。但我希望如果“StudentID”为7则应该订阅。

    问题 - 我认为它不会检查“StudentID”的值,因为消息文件总是在out文件夹中删除。

    我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

你可能会遗漏几件事

  1. 如果接收端口上的消息具有具有相同提升属性并且正确StudentID为7的消息,则业务流程和发送端口都将订阅该消息。因此,如果您在Orchestration中将StudentID设置为其他内容,则您通过发送端口发送的消息实际上并未通过Orchestration,而是直接来自接收端口。
    修复:将收到的消息的值设置为其他值 或者没有入站消息中的提升属性。

  2. 您已在业务流程中指定了“稍后指定”的逻辑端口,然后将其绑定到“发送端口”。默认情况下,发送端口始终订阅其唯一ID。当Orchestration通过绑定到发送端口的逻辑端口发布消息时,它会在发布消息时设置并提升该ID。即使添加订阅规则也意味着它会将其视为BTS.SPID = {id} OR {your rule}。这意味着即使StudentID与发送端口上的订阅规则不匹配,它也将与SPID匹配并仍然将其取出。
    修复:将业务流程中的逻辑端口更改为直接绑定。

  3. 第三种可能性是,在Orchestration中,您发布的消息实际上具有7的StudentID。
    修复:检查构造形状(地图和分配)以确保您实际将其设置为其他值。确保Send Shape中指定的消息实际上是使用新值构造的消息。

  4. 分析问题的方法是查看通过发送端口的消息的上下文属性,方法是在管道之前启用跟踪属性,或者通过停止(但不是Unenlisting)发送端口并查看在暂停消息的上下文属性中。

    如果通过发送端口的消息的StudentID = 7,则表示您已完成#3或#1,请参阅下文。

    如果消息包含接收端口的详细信息以及StudentID,则它根据#1直接来自接收端口。但是,我希望Orchestration在尝试发布具有不同StudentID的消息时会看到错误,除非Orchestration甚至没有运行(查看跟踪的实例)或者见下文。

    如果通过发送端口的消息具有BTS.SPID的提升属性,则逻辑端口将按照#2绑定到发送端口。

    如果您为每个人输入了两条消息,那么您将拥有上述每条消息中的一条并完成#1& #2。

    在摘要中,只要消息没有以您期望的方式路由,请始终检查消息的上下文属性。