Biztalk Отличительная проблема поля

Я передаю сообщение в biztalk, в результате чего следующее приостановленное сообщение:

Внутреннее исключение: произошла ошибка при оценке отличительного поля MessageStatus с данными части сообщения. Данные части сообщения не содержат по крайней мере один из узлов, указанных в выражении XPath (перечисленных ниже), который соответствует выделенному полю. Причиной этой ошибки может быть то, что данные части сообщения не были инициализированы или что данные части сообщения не соответствуют сообщению

В моей оркестровке я использую карту, которая отображает идентификатор с именем textID в поле textID в моем построенном сообщении "MessageAttempt". У меня также есть поле с именем MessageStatus со значением, установленным в "Nothing", с которым не следует путать.

После моей карты я использую форму назначения сообщения, чтобы установить для элемента MessageAttempt.MessageStatus значение "Попытка" со следующим кодом:

Message_MessageAttempt.MessageStatus = var_Attempt;

Я пытался понять это весь день. У меня есть похожая форма ConstructedMessage/Transform/Assignment на другой ветви в моей оркестрации, настроенной одинаково и работающей просто отлично. Я не уверен, что я мог пропустить.

1 ответ

Функция XPath не может найти элемент. Для этого есть две возможные причины.

  1. Элемент не существует. Если он не существует, вы должны сначала создать его. Вы можете сделать это на карте, установив для свойства value значение <empty>или с использованием пустого функтоида String Concatenate с выводом в этот узел.
    Вы сможете убедиться в этом, зайдя в групповой концентратор, открыв приостановленное сообщение и просмотрев часть сообщения. Вы обнаружите, что он не содержит узла, на который ссылается XPath.

  2. Пространства имен в сообщении не определены должным образом. XPath в оркестровке сталкивается с проблемами, если вы не используете префиксы пространства имен для сообщения и просто полагаетесь на стандартные / пустые xmlns.

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