Разбор EDI-файла с помощью C #? - PullRequest
14 голосов
/ 12 января 2010

Изначально я думал о том, чтобы использовать SSIS для анализа файла EDI, однако я видел несколько ручных анализаторов EDI (отображение полей) и хотел бы использовать эту функцию для автоматизации в C #.

Пример файла EDI:

Example EDI File

Ответы [ 5 ]

9 голосов
/ 02 августа 2016

Существует EDI.Net библиотека с открытым исходным кодом, поддерживающая все три известных формата EDI (X12, EDIFact, Tradacoms). В вашем случае для X12 вам необходимо предоставить пользовательскую реализацию IEdiGrammar со следующими предустановками.

public class EDI_X12Grammar : IEdiGrammar
{
...
}

var grammar = new EDI_X12Grammar() 
       {
            ComponentDataElementSeparator = new[] { '>' },
            DataElementSeparator = new[] { '*' },
            DecimalMark = null,
            ReleaseCharacter = null,
            Reserved = new char[0],
            SegmentTerminator = '~',
            ServiceStringAdviceTag = null,
            InterchangeHeaderTag = "ISA",
            FunctionalGroupHeaderTag = "GS",
            MessageHeaderTag = "ST",
            MessageTrailerTag = "SE",
            FunctionalGroupTrailerTag = "GE",
            InterchangeTrailerTag = "IEA",
        };

Отказ от ответственности Я написал библиотеку.

8 голосов
/ 23 февраля 2010
2 голосов
/ 04 апреля 2012

Это для X12 и хорошо работает для моих целей:

http://x12parser.codeplex.com/

Это командная строка, которая выводит XML-файл для вашего EDI-файла.

Вы могли бы адаптировать его для своих целей.

1 голос
/ 12 января 2010

Я не знаком с форматом файла EDI, но может помочь один из следующих способов:

0 голосов
/ 27 марта 2010

Я не уверен, что вы открыты для коммерческих инструментов, но я выкидываю эту ссылку на всякий случай. Это может кому-то помочь. Отказ от ответственности: я не связан с этим поставщиком.

FRAMEWORK EDI - Инструменты EDI для программиста (Commercial Framework) - найдите его здесь: http://www.edidev.com/

...