【问题标题】:Biztalk 2013 - Promoted schema property is getting dropped?Biztalk 2013 - 提升的架构属性正在被删除?
【发布时间】:2015-02-02 10:49:02
【问题描述】:

我已经使用以下 URL 映射配置了 WCF-WebHttp BizTalk 请求/响应静态管道适配器

<BtsHttpUrlMapping>
<Operation Name="Query_ADM" Method="GET" Url="{MYVARIABLE}" />
</BtsHttpUrlMapping>

在变量映射中,我已将变量名称 MYVARIABLE 设置为消息定义模式中名为 id 的属性。我已经设置了定义模式的属性命名空间 - 在变量映射中 - 它也发布到同一个应用程序。

该 id 已在架构中提升,如果我通过跟踪的消息事件进行跟踪,我可以看到此提升。

然而,逻辑发送/接收端口通过物理端口发送消息 - 似乎取消了 id 字段的提升。

有一个传输失败消息

适配器未能传输要发送端口“MY_PORT”的消息 带网址 “http://myurl.dev.application.com/api/v2/crm/accounts/”。它 将在为此发送指定的重试间隔后重新发送 港口。详细信息:“System.ArgumentException:路径变量 UriTemplate 中的“MYVARIABLE”必须绑定到非空字符串 价值。

一切看起来都设置好了?有没有人有任何想法? 谢谢。

这是带有提升(和区分)id 属性字段的架构。

【问题讨论】:

    标签: c# biztalk


    【解决方案1】:

    在这种情况下,您似乎使用的是可分辨字段,而不是属性字段。可分辨字段只能在编排中访问。请参阅here 了解说明。

    您需要创建属性架构才能将您的属性提升为属性字段。

    (确保您在 WCF-WebHttp 端口的发送部分(或任何带有 XML 组装器组件的管道)上使用 XMLTransmit 管道。否则适配器将无法识别消息中的提升属性。)

    【讨论】:

    • 感谢 James - 我在端口的发送部分使用 XML 传输管道。我开始认为这可能与模式中定义 id 字段的方式有关 - 影响促销绑定到 URL 变量的方式 - 它是 xs:string
    • 嗨詹姆斯 - 已添加架构。促销的财产在那里。我想知道这是否与 ns0: 前缀搞乱绑定有关?
    • 错误消息是“UriTemplate 中的路径变量 'MYVARIABLE' 必须绑定到非空字符串值” - 提升的属性只是没有通过。如果我对 URL /accounts/15 进行硬编码,它可以正常工作。跟踪来自输入 XML 文件的消息 - 我可以看到它被提升为编排中的一些消息跳转 - 但在出站端口的某个地方被丢弃 - 即使它使用 XML 管道。
    • 查看我编辑的答案。您需要使用属性字段而不是区分字段
    • 是的,我明白这一点。我最初推广了该领域 - 它创建了一个属性模式。我可以在消息跟踪中看到提升的字段 - 但它以某种方式被丢弃在发送端口中。我同意使用非 XML 管道会导致这种行为 - 但端口正在使用 XML 传输。为了让它发挥作用,我还拼命地试图区分该领域,但无济于事。我已经回到基础并完成了最简单的项目 - 有同样的问题 - 一定是在某个地方做错了什么。我会继续努力,不过还是谢谢你的建议。
    【解决方案2】:

    好的 - 所以在设置变量映射时,我似乎使用了错误的属性命名空间。当我本应显式使用属性提升模式本身的命名空间时,我正在使用包含该属性的 XSD 的命名空间。这似乎已经解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-25
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多