2008-09-16 3 views
2

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

Формы оркестровки вызова должны знать имя и параметры оркестровки во время разработки. Я попытался с помощью «вызова» XLANG ключевого слова, но оно также требует имени Orchestration, как время разработки, как в форме выражения, мы можем записать в виде

call BizTalkApplication1.Orchestration1(param1,param2); 

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

EDIT: I'musing BizTalk 2006 R1 (ESB Guidance для R2, ​​и я не понимаю, как это могло бы решить мою проблему)

ответ

4

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

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

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

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

-1

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