【发布时间】:2017-09-22 14:03:14
【问题描述】:
我对 BizTalk 并不陌生,但是这种情况有点新。我在 BizTalk 编排中遇到以下情况,
- 我从其他来源获得平面文件的路径。
- 我想在编排中加载此文件并通过执行管道将其反汇编。
我搜索了很多,但几乎每个人都谈到在编排内部的管道中提供 XML 文档。
我也获得了以下链接,但到目前为止我无法获得有效的解决方案,
Calling FlatFile pipeline inside orchestration
4 Different ways to process an XLANGMessage
当我实施上述链接中给出的解决方案时,我收到错误“No Disassemble stage components can identify the data.”
由于性能限制,我也不想创建动态接收位置。
以下是我目前的代码,
在流中加载文件内容
按照链接 2 中的建议创建一个 CustomBTXMessage 实例。
-
如下加载流
customBTXMessage = new CustomBTXMessage("MyMessageName",
Service.RootService.XlangStore.OwningContext); customBTXMessage.AddPart(string.Empty, "Body");
customBTXMessage[0].LoadFrom(ms);
return customBTXMessage.GetMessageWrapperForUserCode();
我认为这种情况在 BizTalk 世界中并不新鲜。任何做过这件事的人都必须能够快速帮助我。
【问题讨论】:
-
A) 为什么不能使用文件适配器读取文件? B) 您是否必须在发现路径的同一编排中处理文件?
-
所以文件可以在多个文件夹中,如果想开始一个新的编排,那么我将不得不为每个路径创建新的文件接收位置。是的,我必须在同一个编排中处理该文件。
-
在平面文件(内容或文件名)和您所在的流程之间是否存在关联?
-
那么...为什么不能创建多个接收位置?这没有问题。那么,跟随 Pieter Vandenheede,有没有办法关联文件?必须有一个共同的价值。
-
所以情况是我从源获取文件路径列表,然后必须按顺序处理这些平面文件。不能同时处理两个文件。一种解决方案可能是在第一次编排中下载所有文件,然后创建另一个与接收端口名称相关的 orch。在这种情况下,我将不得不在一侧的接收端口中创建多个接收位置。但是创建两个 orch 的问题是我必须退出 BizTalk,然后启动或读取我在第一个 orch 中已经拥有的所有其他变量。
标签: biztalk biztalk-2013