Создание двух сообщений в BizTalk Send Port (из одного входного сообщения)

Я хочу создать два сообщения в компоненте конвейера и передать его на этап сборки, где он будет проходить через Microsoft Accelerator BTAHL7.

Компонент конвейера будет помещен на этап "Предварительная сборка" передающего конвейера.

Это код, который будет возвращать сообщения.

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 значения, в других частях конвейера (Assemble и Encode) она возвращает только одно сообщение.

Почему это делает это? Как я могу заставить его вернуть два сообщения?

1 ответ

Решение

Эта логика не будет работать в методе Execute. Вам нужно либо реализовать интерфейс IDisassembler для такого конвейера и использовать его в месте получения. Или вы используете оркестровку для создания нескольких сообщений перед отправкой на порт отправки.

Другие вопросы по тегам