BizTalk 2016-已升级的属性在消息上下文中显示为未升级

BizTalk 2016-已升级的属性在消息上下文中显示为未升级,biztalk,biztalk-2013,Biztalk,Biztalk 2013,背景: 我已将Biztalk应用程序公开为rest终结点。在请求架构中升级了一个属性。我已在Web Http适配器变量映射中使用了此属性。我希望在发送端口筛选器中也使用此属性。 示例RESTURL-xxx.svc/getdetails/{bid} 错误:无法路由已发布的邮件,因为找不到订阅服务器 问题: 消息上下文包含已升级属性的值,但类型未升级。请帮助解决此问题。我还尝试设置属性架构基类型:MessageDataPropertyBase/PartContextPropertyBase 更新 我

背景: 我已将Biztalk应用程序公开为rest终结点。在请求架构中升级了一个属性。我已在Web Http适配器变量映射中使用了此属性。我希望在发送端口筛选器中也使用此属性。 示例RESTURL-xxx.svc/getdetails/{bid}

错误:无法路由已发布的邮件,因为找不到订阅服务器

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

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

双击挂起的服务实例
消息屏幕截图:

您发布的是路由失败报告,其中所有属性均未通过设计升级。所以,你看到的是正确的

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

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

您可以做的是添加一个发送端口,该端口使用一个更宽的过滤器,该过滤器肯定会匹配。然后让它停下来。然后,您将看到一条挂起/可恢复消息,从中您可以确切地看到升级的内容和值

从这里,您需要确定它与您期望的订户不匹配的原因

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

对。这就是问题所在

请阅读以下内容:

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


因为您使用的是直通接收,所以它不会提升您的属性,因为它没有反汇编程序组件

试试这个:

  • BusinessPertnerId应为提升属性。将property schema base设置为MessageDataPropertyBase,以防BusinessPertnerId是消息正文的一部分。将属性schema base设置为MessageContextPropertyBase,以防BusinessPertnerId仅是上下文属性,而消息不包含它
  • 在业务流程中创建一个新的关联类型(例如,将其命名为:promote_businessPertnerId_type),并将businessPertnerId属性添加到“关联属性”中
  • 创建新关联(例如:promote\u businessPertnerId)
  • 打开“发送”形状的属性并设置“初始化关联集”以提升\u businessPertnerId
  • 现在,您的发送端口应该会收到一条消息,消息上下文中提升了BusinessPertnerId

  • 我不是Biztalk开发人员,如果这是一个基本问题,请耐心等待。我在谷歌上搜索过,但找不到解决方案:(您是否在接收端口中配置了XMLReceive反汇编程序?添加了一个通用筛选器并停止了发送端口。我仍然看到相同的值且未升级您需要查看挂起的消息,而不是故障报告。您能否将该图片添加到问题中?当然,附加了屏幕截图。该属性仍然未升级:(