Синтаксический анализ плоского файла EDI с помощью C #?
Вопрос
Изначально я думал использовать SSIS для анализа файла EDI, однако я видел несколько ручных анализаторов EDI (сопоставление полей) и хотел бы автоматизировать эту функциональность в C #.
Пример EDI-файла:
Решение
Другие советы
Есть 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/