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