我已使用以下URL映射配置了WCF-WebHttp BizTalk请求/响应静态管道适配器
<BtsHttpUrlMapping>
<Operation Name="Query_ADM" Method="GET" Url="{MYVARIABLE}" />
</BtsHttpUrlMapping>
在变量映射中,我已将变量名称MYVARIABLE设置为消息定义模式中名为id的属性。我已经设置了定义模式的属性名称空间 - 在变量映射中 - 它也发布到同一个应用程序。
我已经在架构中提升了ID,如果我通过跟踪的消息事件跟踪此消息,我可以看到此促销。
然而,当逻辑发送/接收端口通过物理端口发送消息时 - 看起来id字段的提升被删除。
传输失败消息
适配器无法将消息发送到发送端口&#34; MY_PORT&#34; 用URL &#34; http://myurl.dev.application.com/api/v2/crm/accounts/&#34 ;.它 将在为此Send指定的重试间隔后重新传输 港口。详细信息:&#34; System.ArgumentException:路径变量 &#39; MYVARIABLE&#39;在UriTemplate中必须绑定到非空字符串 值。
一切看起来好不好?有没有人有任何想法? 感谢。
这里是具有提升(和区分)id属性字段的架构。
答案 0 :(得分:0)
在这种情况下,您似乎使用了专有字段,而不是属性字段。只有在编排中才能访问专有字段。有关说明,请参阅here。
您需要创建属性架构,以便将您的属性提升为属性字段。
(确保在WCF-WebHttp端口的发送部分(或任何带有XML汇编程序组件的管道)上使用XMLTransmit管道。否则,适配器将无法识别消息中的提升属性。)
答案 1 :(得分:0)
好的 - 所以在设置变量映射时,我似乎使用了错误的属性命名空间。当我应该明确使用属性提升模式本身的命名空间时,我正在使用包含该属性的XSD的命名空间。这似乎解决了这个问题。