2010-01-12 11 views
10

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

Пример ЭОД файла:

Example EDI File

+0

На самом деле, что я недавно узнал, это формат EDI X12 820 4010 ... – ElHaix

ответ

0

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

РАМОЧНЫЕ EDI - EDI Инструменты для программиста (Commercial Framework) - Найти его здесь: http://www.edidev.com/

1

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

http://x12parser.codeplex.com/

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

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

5

Существует библиотека 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", 
     }; 

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

+0

Привет. Я хочу использовать вашу библиотеку, но мне кажется, мне нужно использовать ASP.net Core? Какую рамочную версию я должен использовать, пожалуйста? Спасибо – Fandango68

+1

@ Fandango68 он построен с помощью новой утилиты sdk dotnetcore, но это не ограничивается этим. Он доступен в Full .Netframework 4.5 и более поздних версиях. Проверьте [поддерживаемые рамки на nuget.org] (https://www.nuget.org/packages/indice.Edi/), чтобы открыть список в разделе «Зависимости». – cleftheris