Пропустить элемент в сборке плоского файла BizTalk? - PullRequest
0 голосов
/ 18 октября 2018

Мне было поручено отобразить входной xml (фактически SAP idoc xml) и сгенерировать ряд плоских файлов.Каждый входной xml может выдавать несколько выходных файлов (один выходной файл на номер лота), поэтому я буду использовать xsl: key и функцию key () в своем отображении на основе номера лота

Дело в том,сам номер партии не будет находиться в самом файле, но имя выходного файла должно содержать значение номера этой партии.

Таким образом, вопрос на самом деле: могу ли я сопоставить номер партии с xml и получить плоскуюсборщик файлов пропустить его, когда он производит файл?Или есть другой способ, которым номер партии может быть применен в качестве имени файла сборкой, не имея его внутри самого файла?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

В вашей оркестровке вы можете установить свойство контекста для каждого выходного сообщения:

msgOutput(FILE.ReceivedFileName) = "DynamicStuff";

msgOutput затем переходит в форму отправки.В вашем порту отправки вы устанавливаете выходной файл следующим образом:

FixedStuff_%SourceFileName%.xml

Результат:

FixedStuff_DynamicStuff.xml
0 голосов
/ 18 октября 2018
  1. Если значение не требуется в содержании сообщения, не отображайте его.Вот и все.
  2. Чтобы вставить значение в имя файла, номер лота, в этом случае вам нужно будет добавить это значение в свойство контекста FILE.ReceivedFileName.Затем вы можете использовать макрос% SourceFileName% как часть настройки имени в порту отправки.Вы можете установить FILE.ReceivedFileName с помощью Property Promotion или xpath () в Orchestration.

Бонус: Сортировка и группировка в xslt довольно громоздка, поэтому я не 'не делай этого больше.Вместо этого вы можете использовать SQL: BizTalk: сортировка и группировка данных плоских файлов в SQL вместо XSL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...