2008-09-16 241 views
2

如何動態知道業務流程名稱來調用BizTalk Orchestration?如何動態調用BizTalk編排

調用Orchestration形狀需要在設計時知道Orchestrations的名稱和參數。我一直在使用「呼叫」 XLANG關鍵字嘗試,但它也需要業務流程的名稱作爲設計時就像在表達形狀,我們可以

call BizTalkApplication1.Orchestration1(param1,param2); 

我正在尋找一些方法來指定調用業務流程的名字,來自哪裏寫傳入消息或來自SSO配置存儲。

編輯:I'musing的BizTalk 2006年R1(ESB指導是R2和我沒有得到它如何能解決我的問題)在ESB指導(www.codeplex.com/esb)這個包

回答

4

我過去完成類似工作的方式是在業務流程中使用直接綁定端口,並讓MsgBox爲我完成骯髒的工作。基本上,它是這樣的:

  1. 使可調用業務流程使用附加到激活接收形狀的直接綁定端口。
  2. 設置在您的活化過濾器表達式接收形狀與自定義基於上下文的屬性,並將其設置等於唯一標識業務流程(如編排名稱或其他)
  3. 在主叫編排的值,創建您要用來啓動新業務流程的消息。在該消息中,將您的自定義上下文屬性設置爲與您要觸發的特定業務流程中使用的篩選器匹配的值。
  4. 通過直接綁定的發送端口發送消息,以便它直接發送到MsgBox,並且BizTalk中的發佈/訂閱機制將負責處理其餘部分。

有一點要注意在第4步:要正確有這個工作,你需要創建一個新的關聯集類型,包括自定義背景屬性,然後確保直接綁定發送端口「遵循「在發送上設置的相關性。否則,定製屬性將只寫入(而不是升級)到msg上下文,並且路由將失敗。

希望這會有所幫助!

-1

看提供您正在尋找的功能