EDI EDIFACT. Кто может проконсультировать в Спецификациях (хотя бы теории)? Краткая суть задачи. Используемый язык PHP, но к языку не обязательно привязываться, хочу просто уловить суть механизма. Есть 10 компаний которые будут скидывать EDI файлы. Стандарты у них различные (однако они предоставили спецификации). Отрасль: грузоперевозки. EDI у нас не было и я с EDI прежде не работал, поэтому и прошу хоть каких-то подсказок. Заранее спасибо. Хочу прописать классы с абстрактной фабрикой чтоб можно было передавать им ЕДИ файлик, а оно его жевало и всё правильно разбирало. И вот небольшой список вопросов =)По поводу самого EDI файла. 1) UNH (это как начало конверта, насколько я понял). И вот некоторые компании скидывают всё в одном UNH (инфо о каждом грузе), другие же скидывают каждый груз в отдельном UNH - UNT. 2) В спецификации есть поле "Position", но я так и не до конца понял как лучше с ним работать. То что оно отвечает за порядок полей - я понял, однако многие поля пропускаются (Conditional)... 3) Как точно узнать к какой именно группе-сегментов относится данная строка (сегмент данных). Так же интересует про вложенные группы сегментов.По поводу кода Поскольку не все компании используют EDIFACT, есть ещё стандарт (не нашел нормальное название) который имеет структуру в стиле: 18AAAA1234567 7229932 2H000386CTNS 0000000752200006.86 Поскольку изначально задача стояла в разборе только 1 формата (строкой выше) и достаточно редкого применения, а сроки поджимали, то писалось на коленке... Идея была в стиле: Есть класс, внутри него есть массив "specification", в котором массивы по кодам $this->specification['18'] = array(); $this->specification['18'][] = array('column_range_start' => 2, 'column_range_end' => 16); $this->specification['18'][] = array('column_range_start' => 17, 'column_range_end' => 31); и так по каждому коду спецификации. Потом проходили по каждой строке, брали первые 2 символа (код) и доставали откуда по куда доставать инфо. Когда попросили добавить для EDIFACT, всё с теми же горящими сроками и всё на той же коленке. $this->specification['RFF'] = array('callback'=>'parseMblHblUML'); Ну а при построчном переборе мы просто вызывали этот метод и через регулярные выражения доставали все необходимые значения. Мне не надо 100% универсального решения на все случаи жизни. Просто хотелось бы услышать мнения и советы профессионалов, которые может подскажут как лучше работать с этими EDI файлами. Ибо нормальной литературы я не нашел. Разве что хоть как-то мне прояснило что такое EDI и с чем его едят "A GXS TUTORIAL EDIFACT Standards Overview Tutorial." Спасибо что дочитали до конца =)
EDI (Electronic Data Interchange) является стандартом обмена данными между компаниями, который используется для автоматизации бизнес-процессов. EDIFACT, в свою очередь, является одним из форматов обмена данными в рамках стандарта EDI.
Для работы с EDI файлами вам необходимо разбираться в структуре конкретных спецификаций, которые предоставили компании, отправляющие вам эти файлы. UNH является началом каждого сообщения (транзакции) в формате EDIFACT, а UNT - его окончанием.
Поле "Position" обычно используется для определения порядка полей в сегментах данных, однако не все поля являются обязательными и некоторые могут быть пропущены в зависимости от условий, указанных в спецификации.
Для определения к какой группе сегментов относится данная строка, вам необходимо изучить спецификации каждой транзакции. Вложенные группы сегментов могут быть определены по специфическим правилам, зависящим от конкретного стандарта.
Для разбора EDI файлов вам необходимо создать классы с абстрактной фабрикой, которые будут уметь обрабатывать различные форматы данных в соответствии с предоставленными спецификациями. Ваши методы должны уметь парсить информацию из каждого сегмента данных в соответствии с правилами, указанными в спецификациях.
Если у вас есть конкретные вопросы или проблемы с разбором EDI файлов, лучше обратиться за консультацией к профессионалам, имеющим опыт работы с этим стандартом. Также полезно изучить документацию и обучающие материалы по EDI и EDIFACT, чтобы лучше понимать механизмы обмена данными в этом формате.
EDI (Electronic Data Interchange) является стандартом обмена данными между компаниями, который используется для автоматизации бизнес-процессов. EDIFACT, в свою очередь, является одним из форматов обмена данными в рамках стандарта EDI.
Для работы с EDI файлами вам необходимо разбираться в структуре конкретных спецификаций, которые предоставили компании, отправляющие вам эти файлы. UNH является началом каждого сообщения (транзакции) в формате EDIFACT, а UNT - его окончанием.
Поле "Position" обычно используется для определения порядка полей в сегментах данных, однако не все поля являются обязательными и некоторые могут быть пропущены в зависимости от условий, указанных в спецификации.
Для определения к какой группе сегментов относится данная строка, вам необходимо изучить спецификации каждой транзакции. Вложенные группы сегментов могут быть определены по специфическим правилам, зависящим от конкретного стандарта.
Для разбора EDI файлов вам необходимо создать классы с абстрактной фабрикой, которые будут уметь обрабатывать различные форматы данных в соответствии с предоставленными спецификациями. Ваши методы должны уметь парсить информацию из каждого сегмента данных в соответствии с правилами, указанными в спецификациях.
Если у вас есть конкретные вопросы или проблемы с разбором EDI файлов, лучше обратиться за консультацией к профессионалам, имеющим опыт работы с этим стандартом. Также полезно изучить документацию и обучающие материалы по EDI и EDIFACT, чтобы лучше понимать механизмы обмена данными в этом формате.