Более трех лет назад нас попросили в срочном порядке разработать решение EDI для клиента.
Им нужен был полный IP / контроль и т. Д. Над решением, и они не хотели использовать бесплатные решения с открытым исходным кодом, платить большие суммы денег за подобные BizTalk и т. Д. Или платить регулярные сборы VAN.
В то время мы провели некоторое исследование и на самом деле не нашли много информации о форматах EDI, синтаксическом анализе и т. Д., Поэтому наша команда разработчиков из двух человек сразу же взялась за дело и разработала решение на C # / ASP.Net. Из-за небольшого количества транзакций сообщений EDI, которые будут иметь место (около 100 в день), мы приняли процесс RegEx для синтаксического анализа, проверки и вставки в базу данных. Это было сделано с помощью отдельного приложения C #, которое должно было запускаться каждые несколько минут и подключаться к клиентам различных провайдеров по FTP, AS2, EBMX и загружать данные, а также загружать любые исходящие сообщения EDI.
Затем мы разработали веб-интерфейс, который предоставил персоналу клиентов полный доступ к данным с различными отчетами о доходах, возможность контролировать данные, а также позволял некоторым агентам клиентов входить в систему, а также взаимодействовать с данными и инициировать транзакции по счетам. тоже.
Теперь клиент хочет, чтобы работа с EDI была проделана для другого направления своего бизнеса, однако на этот раз транзакции edi-сообщений вырастут до тысячи. Наши группы разработчиков обеспокоены использованием RegEx. Недавно я прочитал, что использование RegEx для синтаксического анализа EDI имеет огромные накладные расходы и его следует избегать.
Единственная причина, по которой мы приняли его в первую очередь, заключалась в том, что мы не знали, что лучше всего использовать. Тем не менее, RegEx упростил управление шаблонами сообщений edi, включая проверку в шаблонах. Клиент добавил в свои книги еще несколько поставщиков, и мы смогли добавить новые шаблоны сообщений (с индивидуальными изменениями) за считанные минуты.
Проведя гораздо больше исследований недавно, мы обнаружили, что большинство решений анализируют файлы EDI в XML. Для этого есть причина? Это просто для того, чтобы принять более общий формат и / или избежать доступа к базе данных? Быстрее ли просто проанализировать XML по сообщениям EDI в плоских файлах?
Мы хотим, чтобы элементы данных из файла EDI находились в базе данных? Не могли бы мы вместо этого просто проанализировать XML-файл? Разве это не еще один шаг обработки, которого можно было бы избежать?
Прошу прощения за общий характер моего вопроса, но мне трудно найти ответы.
Большое спасибо за ваше время.
ПРИМЕЧАНИЕ. Наша команда разработчиков использует только продукты Microsoft, поэтому примите это во внимание при отправке отзывов.