BizTalk 2016 -Promoted属性在消息上下文中显示为Not Promoted

时间:2018-02-21 09:17:15

标签: biztalk biztalk-2013

背景: 我已经将Biztalk应用程序暴露为休息端点。在请求模式中提出了一个属性。我在Web Http Adapter-Variable Mapping中使用了这个属性。我也希望在发送端口过滤器中使用它。 示例REST url- xxx.svc / getdetails / {出价}

错误:无法路由已发布的消息,因为未找到订阅者。

问题: 消息上下文包含Promoted属性的值,但Type未被提升。请帮助解决此问题。我还尝试设置属性架构基类型:MessageDataPropertyBase / PartContextPropertyBase。Screenshot

更新 我使用了Pass Through接收管道。这可能是个问题吗?

双击Suspended Service Instance enter image description here 消息屏幕截图:enter image description here

4 个答案:

答案 0 :(得分:1)

  

UPDATE 我使用了Pass Through接收管道。这可能是个问题吗?

是。这就是问题所在。

阅读本文:https://docs.microsoft.com/en-us/biztalk/core/default-pipelines

  

因为它不包含反汇编程序,所以传递接收   管道不能用于将消息路由到业务流程。

答案 1 :(得分:0)

您发布的是“路由失败报告”,其中所有属性均未按设计推广。那么,你所看到的是正确的。

BusinessPertnerId几乎肯定意味着它在管道中被正确推广,因为没有办法只编写没有代码的属性。

所以,问题可能在订阅方面。

你可以做的是添加一个发送端口,它使用一个绝对匹配的更宽的过滤器。然后让它停下来。然后,您将看到一条Suspended / Resumable消息,您可以在其中查看提升的确切内容以及值是什么。

从那里,你需要确定它与你期望的用户匹配的原因。

答案 2 :(得分:0)

由于您使用Pass through receive,因此它不会提升您的属性,因为它没有反汇编程序组件。

答案 3 :(得分:0)

尝试一下:

  1. BusinessPertnerId应该是提升的属性。如果BusinessPertnerId是消息正文的一部分,则将属性架构库设置为MessageDataPropertyBase。将属性架构库设置为MessageContextPropertyBase,以防BusinessPertnerId仅是上下文属性,并且消息中不包含该属性。
  2. 在业务流程中创建一个新的关联类型(例如,命名为:promove_businessPertnerId_type),并将您的BusinessPertnerId属性添加到“ Correlation Properties”中。
  3. 创建一个新的关联(例如:promoting_businessPertnerId)
  4. 打开“发送”形状的属性并将“初始化相关集”设置为promove_businessPertnerId
  5. 现在,您的SendPort应该会收到一条带有在消息上下文中提升为BusinessPertnerId的消息。