【问题标题】:BizTalk 2016 -Promoted property is showing as Not Promoted in the Message ContextBizTalk 2016 -Promoted 属性在消息上下文中显示为未提升
【发布时间】:2018-02-21 09:17:14
【问题描述】:

背景: 我已经公开了一个 Biztalk 应用程序作为休息端点。在请求模式中提升了一个属性。我在 Web Http 适配器-变量映射中使用了这个属性。我也想在发送端口过滤器中使用它。 示例 REST url - xxx.svc/getdetails/{bid}

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

问题: 消息上下文包含Promoted 属性的值,但Type 未提升。请帮助解决这个问题。我也尝试设置属性模式基类型:MessageDataPropertyBase/PartContextPropertyBase.

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

双击暂停的服务实例 留言截图:

【问题讨论】:

  • 我不是 Biztalk 开发人员,如果这是基本的东西,请多多包涵。我已经用谷歌搜索但找不到解决方案 :(
  • 你在接收端口配置了 XMLReceive Disassembler 吗?

标签: biztalk biztalk-2013


【解决方案1】:

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

是的。这就是问题所在。

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

因为它不包含反汇编程序,所以直通接收 管道不能用于将消息路由到编排。

【讨论】:

    【解决方案2】:

    您发布的是路由失败报告,其中所有属性均未经设计提升。所以,你在那里看到的是正确的。

    BusinessPertnerId 的出现几乎肯定意味着它在管道中得到了正确的提升,因为没有办法只写一个没有代码的属性。

    所以,问题可能出在订阅端。

    您可以做的是添加一个发送端口,该端口使用更宽的过滤器,肯定会匹配。然后让它停止。然后,您将看到一条暂停/恢复消息,您可以在其中准确地看到推广的内容和值是什么。

    从那里,您需要确定为什么它与您期望的订阅者不匹配。

    【讨论】:

    • 添加了一个通用过滤器并停止了发送端口。我仍然看到相同的值并且未升级
    • 您需要查看挂起的消息,而不是故障报告。你能把那张照片加到问题里吗?
    • 好的,附上截图。该属性仍然没有提升:(
    【解决方案3】:

    由于您使用的是通过接收,因此它不会提升您的属性,因为它没有反汇编程序组件。

    【讨论】:

      【解决方案4】:

      试试这个:

      1. BusinessPertnerId 应该是提升的属性。将属性模式基础设置为 MessageDataPropertyBase,以防 BusinessPertnerId 是消息正文的一部分。将属性模式基础设置为 MessageContextPropertyBase,以防 BusinessPertnerId 只是上下文属性,而消息不包含它。
      2. 在您的业务流程中创建一个新的关联类型(例如命名:promote_businessPertnerId_type),并将您的 BusinessPertnerId 属性添加到“Correlation Properties”中。
      3. 创建新的关联(例如:promote_businessPertnerId)
      4. 打开“Send”形状的属性并将“Initializing Correlation Set”设置为promote_businessPertnerId
      5. 现在,您的 SendPort 应该会收到一条消息,其中包含在消息上下文中提升的 BusinessPertnerId。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-06
        • 2018-04-15
        • 1970-01-01
        • 2019-05-05
        • 2013-12-17
        相关资源
        最近更新 更多