BizTalk файл / разделение сообщения
У меня есть требование, в котором я должен разделить содержимое файла на основе значения первого столбца значений, разделенных запятыми в исходном файле.
Количество файлов, которые будут сгенерированы на выходе, зависит от количества уникальных значений в первом столбце.
Например:
filename.txt
Code001, value11, value12, value13, value14
Code002, value21, value22, value23, value24
Code003, value31, value32, value33, value34
Code001, value15, value16, value17, value14
Code003, value37, value38, value39, value31
Выходными данными должно быть количество файлов в качестве уникальных значений в первом столбце содержимого файла.
Ex Output: должно быть 3 отдельных файла с именем и содержимым, как показано ниже
Code001.txt
Code001, value11, value12, value13, value14
Code001, value15, value16, value17, value14
Code002.txt
Code002, value21, value22, value23, value24
Code003.txt
Code003, value31, value32, value33, value34
Code003, value37, value38, value39, value31
1 ответ
Это может быть достигнуто несколькими способами, но я думаю о следующем:
- Используя дизассемблер FF, просто дизассемблируйте свою схему FF в XML (как вы всегда должны делать).
- Создайте конверт и схему документа, которая будет соответствовать вашей выходной схеме. Ваша схема документа будет аналогична выходному файлу, который вы хотите получить в конце. Вы хотели бы работать над схемой документа, которая соответствует коллекции ваших уникальных кодов (Code001, Code002 и Code003).
- Идея состоит в том, чтобы создать оркестровку, которая отобразит вашу разобранную схему FF на схему конверта. Это нельзя сделать с помощью сопоставления в порте приема / отправки.
- В оркестровке выполните приемный конвейер с дизассемблером XML, сконфигурированным с вашим конвертом и схемой документа. Это разделит ваше сообщение на несколько сообщений.
- Свяжите вашу оркестровку с портом отправки, который сопоставит экземпляр вашей выходной схеме и отправит его через ассемблер FF.