• Авторизация


Flat Files in BTS2004 06-11-2004 20:59 к комментариям - к полной версии - понравилось!


Никогда раньше не работал с Flat Files в BizTalk. Как говорится, бог миловал. Но вот нашелся FMR - ох, уж банков этих развелось. Шлют они (через FTP)такой вот flat :
0,26082004,26082004,00007203
1,26082004,26082004,00033081
2,26082004,26082004,00015627
3,26082004,26082004,00111798
5,26082004,26082004,00052383
4,26082004,26082004,00000006
Это как бы контрольный блок. Каждая строчка содержит номер другого файла (как например globs0, globs1, globs2 и т.д.), дату его создания, дату пересылки и кол-во строк в соответствующем файле.
Делаем так : для начала, всегда для flat files нужен pipeline с Flat Files Diasssambler. Он, собственно, и проделает всю работу по распоковке flat в XML. Только осталось придумать schema для такого flat.
BizTalk имеет несколько extensions для schemas. Я с ними имел дело, когда писал Ness Migrator. Но Migrator не регистрировался для editing, а из тех, которые зарегистрированы (EDI, FlatFiles, Hws) - надо выбрать, конечно,FlatFiles. Это добавит в schema properties кучу новых, из которых главные для нашего flat такие:
для определения общей структуры файла (под root) надо создать какой-нибудь child record и для него выбрать Child Delimiter - 0xD 0xA (перевод строки) и Child Delimiter Type - Hexadecimal.И в самом деле - все строчки в нашем flat закачиваются новой строкой.Очень важно и Child Order - в нашем случае - Postfix. Теперь определяем структуру для самих строк:
Child Delimiter - ,
Child Delimiter Type - Character
Child Order - Infix (Sic!)
Structure - Delimited (obviously)
Max Occurs - unbounded (*)
Min Occurs - 0 (?)
Вот и все. В самой schema не забудем выбрать: Standard - Flat File.
Disassmebler's Document schema должен указывать на только что построенную schema.
Для такого простого примера я даже не компилировал этот pipeline в отдельный assembly. Единственное неудобство при этом, что нельзя настроить Receive Location, не сделав предварительно deploy всего assembly.
Еще хочу обратить внимание - для Flat Files не требуется дополнительный splitting, как в случае с XML, который содержит schema envelope - Disassembler сам разобьет все строчки на отдельные элементы XML. И если сравнить, это совершенно правильно - оба они сплиттеры - и XML Disassembler, и FlatFile Disassembler, только один разбивает XML, а другой - flat. И в pipeline для них одно и тоже место - Disassemble stage.
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Flat Files in BTS2004 | Oleg_Kleiman - Soft kibitzing | Лента друзей Oleg_Kleiman / Полная версия Добавить в друзья Страницы: раньше»