在BizTalk发送端口中生成两条消息(来自一条输入消息)

时间:2018-01-25 14:29:27

标签: c# biztalk custom-pipeline-component biztalk-pipelines

我想在管道组件中创建两条消息,并将其传递到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个值,但在管道的其他部分(汇编和编码)中,它只返回一条消息。

为什么这样做?如何让它返回两条消息?

1 个答案:

答案 0 :(得分:2)

此逻辑在Execute方法中不起作用。您需要为此类管道实现IDisassembler接口,并且需要在接收位置使用它。或者您使用业务流程在发送到发送端口之前创建多个消息。