Синтаксический анализ плоского файла EDI с помощью C #?

StackOverflow https://stackoverflow.com/questions/2046553

Вопрос

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

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

Example EDI File

Это было полезно?

Решение

Другие советы

Есть 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",
        };

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

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

http://x12parser.codeplex.com/

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top