Механизм правил Biztalk: как можно использовать классы .net для проверки входящего сообщения

#biztalk #rules #biztalk-rule-engine

#biztalk #Правила #biztalk-rule-engine

Вопрос:

Что я хочу сделать, так это :

Я получаю xml как входящий. Который имеет в качестве элемента «id». Теперь в .net библиотеке классов я хочу проверить, существует ли объект с этим идентификатором в моей базе данных или нет. Если оно уже существует, вызов недопустим.

Как я могу достичь этого, используя механизм правил Biztalk?

Комментарии:

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

2. … и под db вы подразумеваете базу данных MessageBox или какую-либо другую базу данных приложения?

3. Спасибо filburt, но нет, я не хочу обрабатывать это в db, есть несколько причин, одна из которых требует возврата определенного кода ошибки и описания ошибки, и это должно быть настраиваемым

Ответ №1:

Механизм правил BizTalk используется для оценки сообщений на соответствие наборам правил. Набор правил существует в статической структуре, называемой политикой, и нет способа «обогатить» политику вызовами .СЕТЕВЫЕ компоненты. И не должно быть.

Если вам нужно аннулировать сообщение на основе некоторого содержимого с помощью вызова базы данных, сделайте это в оркестровке до (или после) вызова механизма правил.

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

Комментарии:

1. Привет, thicolour, ты уверен? Поскольку словарь позволяет ссылаться на сборки .net. И когда я ссылался на один, мне разрешили включить методы, которые возвращали значение «bool» в условие. но я не смог продолжить … собираюсь попробовать еще раз прямо сейчас, буду держать вас в курсе

2. Сборки .net, на которые ссылаются при определении словаря, предназначены для поддержки использования классов .net в качестве сообщений BizTalk, а не для включения способа выполнения вызовов в .net. Однако я был неправ в своем первоначальном ответе. Существует способ выполнять вызовы базы данных из механизма правил, выбирая «Таблица или столбец базы данных» при определении элемента словаря. Это подробно описано здесь: blogs.msdn.com/b/rgarg/archive/2009/04/23 / …