BizTalk接收二进制文件与RecievedFileName相关联

时间:2014-04-16 12:23:14

标签: properties routing biztalk correlation biztalk-orchestrations

我在使用上下文属性Orchestration的相关性将二进制文件的消息路由到正在运行的ReceivedFileName实例时遇到问题。使用带有虚拟文件的发送初始化相关性,其中Orchestration设置消息的ReceivedFileName上下文属性,并且属性得到提升。在收到消息的路由失败之后(XmlDocument),我可以看到该消息的ReveivedFileName上下文属性未被提升应该是这样吗?我无法弄清楚是否有任何提升方式,所以我只想确保它应该是这样的。

文件名相同,但我注意到发送消息的ReceivedFileName属性没有路径,而接收的消息有路径+文件名。我试图添加发送消息的路径(听起来很奇怪,但在某处读它)但它并没有改变结果。

2 个答案:

答案 0 :(得分:0)

虽然您可以在业务流程中设置上下文属性,但它们已提升。

您必须使用此处描述的关联技术在按下MessageBox时提升属性:http://blogs.biztalk360.com/property-promotion-inside-orchestration/

基本上,您可以根据需要推荐的属性初始化相关集。

答案 1 :(得分:0)

正如Ben Runchey在上面的评论中指出的那样,必须求助于自定义管道并通过调用

来推广 FILE.ReceivedFileName
messag.Context.Promote("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties", receivedFileName);

我还从 FILE.ReceivedFileName 中删除了只通过调用inmsg.Context.Read("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties")

获取文件名的路径

并更改了值并通过调用将其写回:

inmsg.Context.Write("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties", receivedFileName);