共用方式為


CallOrchestration (BizTalk Server 範例)

CallOrchestration 範例示範如何從一個協調流程呼叫另一個 BizTalk 協調流程。

此範例的用途

此範例示範使用下列步驟順序呼叫另一個協調流程的協調流程:

  1. 主要協調流程收到訂單 (PO) 訊息。

  2. 主要協調流程呼叫次要協調流程,以決定 PO 的出貨價格。

  3. 次要協調流程計算要求的出貨價格,然後將它傳回主要協調流程。

  4. 主要協調流程使用傳回的出貨價格更新 PO 訊息。

  5. 主要協調流程將更新的 PO 訊息放到資料夾中供您檢閱。

此範例的設計方式和原因

此範例的主要目的是為您顯示如何從一個協調流程呼叫另一個協調流程。 呼叫協調流程的功能可讓您將商務程序切割為可重複使用的元件。 您可將常用的程序列入個別的協調流程中,供其他人重複使用。

在此範例中,receivePO.odx 中的 呼叫協調流程 圖形會叫用 findShippingPrice.odx,並等候巢狀協調流程 findShippingPrice.odx 來計算並傳回運送價格,再傳送採購單。 協調流程 findShippingPrice.odx 使用下列邏輯計算出貨價格:

If ( weight * shippingRate ) < minShippingPrice Then  
    shippingPrice = minShippingPrice  
Else  
    shippingPrice = weight * shippingRate  
End If  

範例 PO 輸入檔 InputPO.xml 指定重量為 20,使 PO 輸出訊息將其出貨價格從 10 變更為 20。

注意

您無法從不可部分完成的協調流程呼叫執行時間很長的交易。

注意

使用 呼叫協調流程 圖形和 開始協調流程 圖形之間的差異在於呼叫協調流程時,呼叫端會等候巢狀協調流程傳回,再繼續。 若是從一個協調流程啟動另一個協調流程,在呼叫者初始化動作之後,呼叫者會繼續進行程序流程中的下一個步驟。 呼叫者所叫用的協調流程會獨立執行,直到完成程序流程。 如需詳細資訊,請參閱 如何設定呼叫協調流程圖形。 另請參閱 如何設定開始協調流程圖形

可在何處找到此範例

<範例路徑>\Orchestrations\CallOrchestration\

下表顯示此範例中的檔案,並描述其用途。

檔案 Description
CallOrchestration.btproj, CallOrchestration.sln 這個範例的專案及解決方案檔案。
CallOrchestrationBinding.xml 用於自動化設定,例如連接埠繫結。
Cleanup.bat 用來解除部署組件,以及將它從全域組件快取中移除。 移除傳送埠和接收埠。 視需要移除 Microsoft Internet Information Services (IIS) 虛擬目錄。
findShippingPrice.odx 做為次要協調流程的 BizTalk 協調流程,從主要協調流程 receivePO.odx 呼叫。
InputPO.xml 符合 PO.xsd 檔案中定義之結構描述的範例 PO 輸入訊息。
PO.xsd 結構描述,定義範例輸入檔案 InputPO.xml 等 PO 輸入訊息的結構,以及定義結構描述中之三個項目的屬性升級。
PropertySchema.xsd 參與結構描述 PO.xsd 中之三個項目之屬性升級的屬性結構描述檔案。
receivePO.odx 做為此範例中之主要協調流程的 BizTalk 協調流程。 它會從接收資料夾擷取 PO 訊息,然後呼叫另一個協調流程 findShippingPrice.odx,來計算和更新出貨價格。
Setup.bat 用來建置和初始化此範例。

建置和初始化此範例

建置和初始化 CallOrchestration 範例

  1. 在命令視窗中,瀏覽至下列資料夾:

    <範例路徑>\Orchestrations\CallOrchestration\

  2. 執行檔案 Setup.bat,這會執行下列動作:

    • 在 CallOrchestration 資料夾中建立此範例的輸入 (In) 和輸出 (Out) 資料夾。

    • 針對此範例,編譯及部署包含這兩個協調流程的 Visual Studio 專案。

    • 建立並繫結 BizTalk Server 接收位置以及傳送和接收埠。

    • 啟用接收位置並啟動傳送埠。

注意

在嘗試執行此範例之前,您應該確認 BizTalk Server 沒有在建置和初始化程序期間報告任何錯誤。

執行此範例

執行 CallOrchestration 範例

  1. 將檔案 InputPO.xml 的複本放置到 In 資料夾。

  2. 觀察在 Out 資料夾中建立的 XML PO 更新檔案。 它包含已修改的原始 PO 訊息,此訊息包括如上述說明中計算出的出貨成本。 此檔案名的格式是 <MessageID>.xml,其中< MessageID >是產生來唯一識別訊息的 GUID。

解除安裝這個範例

解除安裝 CallOrchestration 範例

  1. 在 Visual Studio 命令視窗中,流覽至下列資料夾:

    <範例路徑>\Orchestrations\CallOrchestration\

  2. 執行 Cleanup.bat。

另請參閱

協調流程 (BizTalk Server Samples 資料夾)