我想在管道组件中创建两条消息,并将其传递到Assemble阶段,在那里它将通过BTAHL7 Microsoft Accelerator。
管道组件将被放置在Send Pipeline' Pre-Assemble'阶段。
这是返回消息的代码。
private System.Collections.Queue qOutputMsgs = new System.Collections.Queue();
IBaseMessage[] allMessages = new IBaseMessage[] { pInMsg, pInMsg };
foreach (IBaseMessage msg in allMessages)
{
qOutputMsgs.Enqueue(msg);
}
return (IBaseMessage)qOutputMsgs.Dequeue();
出于测试目的,我已将两个pInMsg
添加到数组中,并循环遍历此数组以将其添加到队列中。然后,返回分开的消息。
但是,尽管队列有2个值,但在管道的其他部分(汇编和编码)中,它只返回一条消息。
为什么这样做?如何让它返回两条消息?
答案 0 :(得分:2)
此逻辑在Execute方法中不起作用。您需要为此类管道实现IDisassembler接口,并且需要在接收位置使用它。或者您使用业务流程在发送到发送端口之前创建多个消息。