Как динамически вызывать оркестровку BizTalk - PullRequest
2 голосов
/ 16 сентября 2008

Как я могу динамически вызывать BizTalk Orchestration, зная имя Orchestration?

Формы вызова оркестровки должны знать название и параметры оркестровки во время разработки. Я попытался использовать ключевое слово XLang 'call', но для него также требовалось имя Orchestration в качестве Design Time, например в форме выражения, мы можем написать как

call BizTalkApplication1.Orchestration1(param1,param2);

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

РЕДАКТИРОВАТЬ: я использую BizTalk 2006 R1 (Руководство ESB для R2, ​​и я не понял, как это может решить мою проблему)

Ответы [ 2 ]

4 голосов
/ 18 сентября 2008

Способ, которым я достиг чего-то похожего в прошлом, заключается в использовании портов прямой привязки в оркестровках и предоставлении MsgBox грязной работы за меня. По сути, это выглядит примерно так:

  1. Заставьте вызываемые оркестровки использовать порт с прямой связью, присоединенный к вашей активирующей форме получения.
  2. Установите выражение фильтра для активирующей формы получения с помощью пользовательского свойства на основе контекста и установите его равным значению, которое однозначно идентифицирует оркестровку (например, имя оркестровки или что-либо еще)
  3. В вызывающей оркестровке создайте сообщение, которое вы хотите использовать для запуска новой оркестровки. В этом сообщении установите для свойства пользовательского контекста значение, соответствующее фильтру, используемому в конкретной оркестровке, которую вы хотите запустить.
  4. Отправьте сообщение через порт отправки с прямой связью, чтобы оно отправлялось непосредственно в MsgBox, а все остальные механизмы Pub / Sub в BizTalk позаботятся об этом.

На шаге 4 следует обратить внимание: для правильной работы вам необходимо создать новый тип набора корреляций, включающий ваше свойство пользовательского контекста, а затем убедиться, что порт отправки с прямой связью «следует» за Корреляция установлена ​​на отправку. В противном случае пользовательское свойство будет записано (и не продвигается) только в контекст msg, и маршрутизация завершится ошибкой.

Надеюсь, это поможет!

0 голосов
/ 16 сентября 2008

Посмотрите Руководство ESB (www.codeplex.com/esb). Этот пакет предоставляет функции, которые вы ищете

...