BizTalk EDIFACT разделение документов

Наш партнер отправляет EDIFACT, который имеет несколько пользовательских сегментов. Я обновил одну из существующих монтажных схем, чтобы иметь эти пользовательские сегменты. Сценарии счастливого дня работают. Сейчас мы пытаемся реализовать негативные сценарии. Бизнес хочет, чтобы BizTalk обработал успешное сообщение в рамках обмена и выдал ошибку для неудачных. Я не использую партнерское соглашение. В настройках отката EDIFACT я установил параметр входящей пакетной обработки, чтобы разделить обмен как наборы транзакций - приостановить транзакцию при ошибке.

Проблема: мой партнер отправит несколько данных (в нашем случае несколько S01Loop) в рамках одного набора транзакций, т.е. в UNH-UNT. Если я применяю вышеупомянутую логику, весь обмен терпит неудачу.

Требование: мы хотим, чтобы определенные данные цикла не сработали, а остальные положительные должны пройти.

Что я пробовал: для edifact-файла на основе HIPAA существует концепция, называемая subdocument_break. Я применил эти аннотации в XSD. К сожалению, это не сработало.

Если нет готового решения, я планирую написать компонент конвейера сплиттера EDI, который будет настраиваемым компонентом дизассемблера плоских файлов, который разделит несколько данных на отдельные экземпляры. Затем я буду использовать дизассемблер EDI для анализа данных.

Дайте мне знать, если у кого-то есть специальная функция, доступная в BizTalk, для этого.

1 ответ

В этом случае разделение вспомогательных документов не поможет, потому что в случае синтаксической ошибки весь набор транзакций в любом случае потерпит неудачу.

Для этого есть причина. Если сегменты не в порядке, парсер не может надежно определить его место.

Правильный способ справиться с этим - перенести проверку на более поздние этапы процесса, чтобы после анализа были обнаружены недействительные сообщения. Если Торговый партнер отправляет действительно недействительный EDI, ему действительно необходимо это исправить.

Другие вопросы по тегам