Настройка сообщения об ошибке валидации узла в OSB 12c

Когда мы добавляем узел проверки в OSB 12c для проверки входящего запроса на XSD, и если проверка не удается, в некоторых сообщениях об ошибках отображается имя поля, которое вызывает ошибку проверки. Но только для десятичных значений сообщение об ошибке просто говорит о недопустимом десятичном значении и не упоминает поле, из которого возникла ошибка. Можем ли мы решить эту проблему


person Karthi    schedule 14.08.2017    source источник


Ответы (1)


Я не уверен, что это прямое решение. Но есть обходной путь, который может удовлетворить ваши потребности.

Создайте XQuery, который проверяет полезную нагрузку и выдает настраиваемые сообщения об ошибках.

например: для элемента xml, который должен содержать десятичное значение abc

if ($a instance of xs:long) then () else (fn:error(xs:QName('Your error code'), 'your error message')) Это подходящий метод, если полезная нагрузка небольшая.

https://gibaholms.wordpress.com/2013/09/24/osb-throw-exception-in-xquery 1

Если полезная нагрузка большая

  1. определите поля, в которых предполагается наличие проблем такого типа.
  2. Создайте XQuery для проверки этих полей с сообщениями об ошибках.
  3. Используйте узел проверки внутри этапа и используйте обработчик ошибок этапа
  4. Подтвердите полезную нагрузку с помощью xquery внутри обработчика ошибок этапа
person Vinoth Kumar K    schedule 18.08.2017