BizTalk 2016 - 已升级 属性 在消息上下文中显示为未升级
BizTalk 2016 -Promoted property is showing as Not Promoted in the Message Context
背景:
我在请求中公开了一个 Biztalk 应用程序 endpoint.Promoted 属性 schema.I 在 Web Http Adapter-Variable Mapping.I 中使用了这个 属性也可以在发送端口过滤器中使用它。
示例 REST url- xxx.svc/getdetails/{bid}
错误:无法路由已发布的消息,因为找不到订阅者。
问题:
消息上下文包含提升 属性 的值,但类型未提升。请帮助解决此问题 issue.I 还尝试设置 属性 架构基本类型:MessageDataPropertyBase/PartContextPropertyBase.
更新
我已经使用了 Pass Through 接收 pipeline.Could 这有问题吗??
双击暂停的服务实例
留言截图:
您发布的是路由失败报告,其中所有属性都是 un-Promoted 设计的。所以,您所看到的是正确的。
BusinessPertnerId 的出现几乎肯定意味着它在管道中得到了正确的提升,因为没有办法只写 属性 而没有代码。
所以,问题可能出在订阅端。
您可以做的是添加一个发送端口,该端口使用肯定会匹配的更宽过滤器。然后让它停止。然后,您将看到一条 Suspended/Resumable 消息,您可以在其中确切地看到什么是推广的以及值是什么。
从那里,您需要确定它与您期望的订户不匹配的原因。
UPDATE I have used a Pass Through receive pipeline.Could that be an issue??
是的。就是这个问题。
读这个:https://docs.microsoft.com/en-us/biztalk/core/default-pipelines
Because it does not contain a disassembler, the pass-through receive
pipeline cannot be used to route messages to orchestrations.
由于您使用的是Pass through receive,因此它不会提升您的属性,因为它没有反汇编组件。
试试这个:
- BusinessPertnerId 应该是提升的 属性。将 属性 架构基础设置为 MessageDataPropertyBase,以防 BusinessPertnerId 成为消息正文的一部分。将 属性 架构基础设置为 MessageContextPropertyBase,以防 BusinessPertnerId 仅为上下文 属性,并且消息不包含它。
- 在您的业务流程中创建一个新的关联类型(例如命名为:promote_businessPertnerId_type),并将您的 BusinessPertnerId 属性 添加到 "Correlation Properties".
- 创建新关联(例如:promote_businessPertnerId)
- 打开 "Send" 形状的属性并将 "Initializing Correlation Set" 设置为 promote_businessPertnerId
- 现在您的 SendPort 应该会收到消息上下文中提升的 BusinessPertnerId 的消息。
背景: 我在请求中公开了一个 Biztalk 应用程序 endpoint.Promoted 属性 schema.I 在 Web Http Adapter-Variable Mapping.I 中使用了这个 属性也可以在发送端口过滤器中使用它。 示例 REST url- xxx.svc/getdetails/{bid}
错误:无法路由已发布的消息,因为找不到订阅者。
问题:
消息上下文包含提升 属性 的值,但类型未提升。请帮助解决此问题 issue.I 还尝试设置 属性 架构基本类型:MessageDataPropertyBase/PartContextPropertyBase.
更新 我已经使用了 Pass Through 接收 pipeline.Could 这有问题吗??
双击暂停的服务实例
您发布的是路由失败报告,其中所有属性都是 un-Promoted 设计的。所以,您所看到的是正确的。
BusinessPertnerId 的出现几乎肯定意味着它在管道中得到了正确的提升,因为没有办法只写 属性 而没有代码。
所以,问题可能出在订阅端。
您可以做的是添加一个发送端口,该端口使用肯定会匹配的更宽过滤器。然后让它停止。然后,您将看到一条 Suspended/Resumable 消息,您可以在其中确切地看到什么是推广的以及值是什么。
从那里,您需要确定它与您期望的订户不匹配的原因。
UPDATE I have used a Pass Through receive pipeline.Could that be an issue??
是的。就是这个问题。
读这个:https://docs.microsoft.com/en-us/biztalk/core/default-pipelines
Because it does not contain a disassembler, the pass-through receive pipeline cannot be used to route messages to orchestrations.
由于您使用的是Pass through receive,因此它不会提升您的属性,因为它没有反汇编组件。
试试这个:
- BusinessPertnerId 应该是提升的 属性。将 属性 架构基础设置为 MessageDataPropertyBase,以防 BusinessPertnerId 成为消息正文的一部分。将 属性 架构基础设置为 MessageContextPropertyBase,以防 BusinessPertnerId 仅为上下文 属性,并且消息不包含它。
- 在您的业务流程中创建一个新的关联类型(例如命名为:promote_businessPertnerId_type),并将您的 BusinessPertnerId 属性 添加到 "Correlation Properties".
- 创建新关联(例如:promote_businessPertnerId)
- 打开 "Send" 形状的属性并将 "Initializing Correlation Set" 设置为 promote_businessPertnerId
- 现在您的 SendPort 应该会收到消息上下文中提升的 BusinessPertnerId 的消息。