Правило BRE не срабатывает при вызове из маршрута ESB Toolkit

Я запускаю решение BizTalk 2013r2 по следующему маршруту:

введите описание изображения здесь

Все в порядке с выбранным параметром «Auth Endpoint Detail»

Это вызывает BRE, передавая следующее сообщение:

<ns0:MasterCardRequest xmlns:ns0="http://www.EsbToolkit.TargetWebService/Authorization/MasterCardRequest">
  <ns0:AuthAmount>300</ns0:AuthAmount>
  <ns0:CardNumber>1111-1111-1111-1111</ns0:CardNumber>
  <ns0:OrderNumber>130</ns0:OrderNumber>
</ns0:MasterCardRequest>

Это должно вызвать срабатывание следующего правила MasterCard, которое затем будет отправлять значения конечной точки в контексте сообщения:

введите описание изображения здесь

Проблема в том, что не стреляет! Он срабатывает, когда я вручную «Тестирую политику» из BRE Composer. Однако, когда я запускаю сообщение через BizTalk и проверяю DebugView, я вижу следующее:

введите описание изображения здесь

Я дважды проверил, что развернута правильная версия политики. Я был бы очень признателен за любые идеи, по которым правило не срабатывает.


person Rob Bowman    schedule 29.09.2016    source источник
comment
Сколько конечных точек вы решаете? Вам действительно нужно использовать ESBT? Роли здесь тоже выглядят как вариант.   -  person Johns-305    schedule 30.09.2016
comment
Да, необходимо использовать инструментарий для этого решения как часть PoC   -  person Rob Bowman    schedule 30.09.2016
comment
Что ж, тогда самое время исключить ESBT. :)   -  person Johns-305    schedule 30.09.2016
comment
Ха-ха, я так понимаю, ты не фанат? Должен сказать, мне сложно обосновать дополнительную сложность.   -  person Rob Bowman    schedule 30.09.2016
comment
Победитель, победитель. Я никогда не видел, чтобы ESBT делал что-то проще, просто сложнее разрабатывать, отлаживать и поддерживать. Динамическую маршрутизацию довольно легко сделать с помощью только BRE.   -  person Johns-305    schedule 30.09.2016


Ответы (1)


Вы можете проверить, совпадает ли свойство типа документа, определенное в наборе правил BRE, с DocType, показанным в окне отладки. Механика преобразователя BRE плохо документирована, возможно, это поможет: что означает свойство распознавать формат сообщения?

Также, когда doctype должен быть универсальным, рекомендуется избегать имени пространства имен в правилах.

person dmitrio    schedule 30.09.2016
comment
Спасибо, dmitrio, проблема заключалась в том, что мое правило гласило, что существует в Microsoft.Practices.Esb.ResolveProviderMessage - буквы ESB должны быть полностью прописными. - person Rob Bowman; 03.10.2016