代码之家  ›  专栏  ›  技术社区  ›  Dev

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

  •  0
  • Dev  · 技术社区  · 7 年前

    我想在管道组件中创建两条消息,并将其传递到组装阶段,在那里它将通过BTAHL7 Microsoft加速器。

    管道组件将置于发送管道“预装配”阶段。

    这是返回消息的代码。

    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 回复  |  直到 7 年前
        1
  •  2
  •   Vikas Bhardwaj    7 年前

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