Я ищу любые полезные ссылки или советы по переводу входящего EDI 940 (X12) в (|) плоский файл с разделителями каналов в c#.net
Файл EDI для передачи плоского файла с разделителями
Ответы (2)
Моя техника может показаться довольно сложной для однократного перевода, но вот она:
Шаг #1: X12 ------------- [Программа предварительного разбора] ---> Синтаксис X12 XML
Шаг № 2: Синтаксис X12 XML --> [940 Parsing XSLT] ------> 940 XML
Шаг № 3: 940 XML --------> [Mapping XSLT] ----------> ваш FF XML
Шаг № 4: ваш FF XML ----> [Сериализация XLST] ------> ваш FF
Шаг № 1: «Синтаксис XML X12» — это очень простая грамматика, показывающая только СИНТАКСИС X12, поэтому [Программа предварительного синтаксического анализа] чрезвычайно проста и может использоваться для любого X12.
Шаг № 2: «940 XML» имеет грамматику, которая полностью описывает структуру 940. [940 Parsing XSLT] — это место, где вы выражаете конкретную структуру 940.
Шаг № 3: [Mapping XSLT] преобразует структуру 940 в структуру вашего FF, выраженную в XML.
Шаг № 4: Наконец, [Сериализация XLST] создает ваш FF на основе его XML-версии.
Основным преимуществом этой архитектуры является ее (1) открытость - основные части находятся в XSLT, который может быть выполнен с любым языком программирования с использованием различных библиотек XML/XLST, и ее (2) масштабируемость, в конце концов, вы преобразуете любой формат в любом формате ;-)
Если бы вы могли загрузить куда-нибудь простой образец сообщения 940 И его перевод в вашу структуру FF - это вы должны сделать вручную с помощью Блокнота ;-) - у меня было бы время проиллюстрировать мою технику - по крайней мере, дать вам 3 сценария XLST нужный ;-)
Преобразование сообщения EDI в плоский файл — плохая идея, вы, вероятно, потеряете данные и смысл сообщения. Вот почему EDI существует в первую очередь
Некоторые идеи для разбора EDI
http://www.codeproject.com/KB/XML/edix.aspx
http://www.edidev.com/index.htm
Или у Microsoft BizTalk есть коннекторы и для этого.