共用方式為


雙向動作 PIPAutomation 協調流程

DoubleAction.odx 範例顯示如何實作協調流程,自動為雙向動作「夥伴介面程序 (PIP)」0C2、0C4、3A2 和 3A4 產生回應。 您可以擴充此範例專案來支援其他的雙向動作 PIP。

注意

在範例資料夾中的對應是範例。 您必須根據特定的需求,對這些對應進行變更後,才能加以使用。

注意

您應該擴充這個範例專案,使其僅支援雙向動作 PIP,而非單向動作 PIP。 如果將它擴充為處理單向動作 PIP,這個協調流程將會傳回錯誤。 若要確認這個協調流程將不會處理單向動作 PIP,請參閱下面的「篩選單向動作訊息」部分。

根據預設,Microsoft® BizTalk Accelerator for RosettaNet (BTARN) 安裝程式會在drive> :\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 中安裝此範例 < 。

這個範例專案包括:

  • 預存程式 (PipAutomationGetAction) 擷取 PIP 0C2、0C4、3A2 和 3A4 的新動作訊息。

  • 繫結至 SQL 預存程序的接收位置 (MessagesToLOB_Receive_Location)。

  • 處理每個 PIP、根據每個 PIP 的對應產生適當的回應,以及將回應儲存在 BTARNDATA 資料庫之 MessagesFromLOB 資料表中的協調流程。 協調流程會 RNIFSubmit 使用來自 Microsoft.Solutions.BTARN.Shared.dll 的 方法來提交訊息。

  • Setup.bat 檔用來建立 MessagesToLOB_Receive_Port (與 DoubleAction 協調流程搭配使用) 的繫結檔案 (DoubleActionBinding.xml)。

  • 用於建置及初始化範例的安裝程式檔案。 如果在 32 位電腦上執行BizTalk Server,請在磁片磁碟機 > :\Program Files\Microsoft BizTalk Accelerator for RosettaNet \SDK\PIPAutomation\DoubleAction 資料夾中執行檔案 setup.bat < 。 如果BizTalk Server是在 64 位電腦上執行,請在相同的資料夾中執行 setupx64.bat。

    協調流程會使用 BTARNData 資料庫 (來源檔案是 DoubleAction 目錄中的 DoubleAction.sql 檔) 中的 PipAutomationGetAction 預存程序,接收訊息。 這個預存程序會接收來自 MessagesToLOB 資料表的訊息。

    若要擴充這個範例專案,使其支援其他的雙向動作 PIP,請在協調流程中,為該雙向動作 PIP 加入路徑。 這個路徑必須包含將把回應訊息建構為要求訊息的對應。 例如,請參閱 3A2 要求至 3A2 回應對應範例3A4 對 3A4 回應對應範例 [RN3] 的要求

若要建置並初始化這個範例

  1. 在命令提示字元中,找出< drive >:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 資料夾。

    注意

    執行安裝程式前,在 [記事本] 中開啟 DoubleAction.sql 檔案 (在上述資料夾中)。 在 [檔案] 功能表上,按一下 [另存新檔]。 在 [編碼 ] 清單中,選取 [ANSI],然後按一下 [ 儲存]。 按一下 [是 ] 以覆寫現有的檔案。

  2. 如果您的BizTalk Server是在 32 位電腦上執行,請在磁片磁碟機 > :\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 資料夾中執行檔案 setup.bat < 。 如果您的BizTalk Server安裝是在 64 位電腦上執行,請在相同的資料夾中執行 setupx64.bat。 這個批次檔將會執行下列動作:

    • 在 BTARNDATA 資料庫中建立 SQL 預存程式 (PipAutomationGetAction) ,以從 MessagesToLOB 資料表擷取動作訊息。 這也能確保所擷取的記錄將不會再遭到讀取。

    • 編譯 HeaderHelper .NET 專案,並在全域組件快取中註冊組件。

    • 建立並繫結 BizTalk Server SQL 接收埠 (MessagesToLOB_Receive_Port)。

    • 啟用接收位置 (MessagesToLOB_Receive_Location)。

    • 編譯及部署雙向動作 PIPAutomation 協調流程 (DoubleAction.odx)。

    • 繫結和啟動 BizTalk Server 協調流程。

      注意

      範例在編譯時會出現一些警告。 您可以忽略這些警告。

      注意

      此範例會在部署專案時使用預設主機名稱 BizTalkServerApplication 。 如果您想要在不同的主機下執行範例,您必須編輯 SDK\PIPAutomation\DoubleAction 資料夾下 <> DoubleActionBinding.xml 中找到的預設主機名稱。

執行雙向動作 PIPAutomation 範例

  1. 建立主要角色為啟動者的 3A4 協議。 將主要組織的 GBI 設為 123456789,並將夥伴組織的 GBI 設為 987654321。 這會讓您使用 SDK 的 SampleInstances 資料夾之 LOBApplication 資料夾底下提供的範例。

  2. 使用「回送」鏡像協議公用程式,為步驟 1 所建立的 3A4 PIP 建立鏡像。

  3. 使用 LOBApplication.exe SDK 公用程式,提交「3A4 PIP 要求」訊息。 BTARN SDK 會在[安裝目錄> ] 資料夾 <\SDK\LOBApplication\SampleInstances\3A4_Request.xml 中包含輸入範例。

  4. 在 BTARNDATA 資料庫上執行下列查詢:

    Select * from MessagesToLOB  
    
  5. 經過數秒後,資料表中會出現四個訊息。 其中兩個是確認信號。 一個是「非同步 3A4 要求訊息」。 另一個則是「非同步 3A4 回應訊息」。

    注意

    若要復原 Setup.bat 所進行的變更,請執行 Cleanup.bat。 您必須先執行 Cleanup.bat,才能再度執行 Setup.bat。

備註

公用協調流程會自動產生確認訊息 (ACK 和 NACK 信號訊息)。 商務營運系統 (LOB) 應用程式則不需要產生這些訊息。

這種路由至 MessagesFromLOB 資料表的訊息格式,稱為 LOBMessage。 架構適用于 C:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\RNIFSchemas\GlobalSchemas\LOBMessage.xsd。 如果您使用 RNIFSubmit 方法,就不需要使用訊息格式。 您只需要提交具有其他資訊的 ServiceContent。 RNIFSubmit 會將記錄填入 MessagesFromLOB 資料表中。

篩選單向動作訊息

這個協調流程應該只會接收雙向動作訊息。 您不應該擴充此範例專案來支援單向動作 PIP。 如果您使用這個協調流程處理單向動作訊息,BTARN 將會回報錯誤。 為了避免協調流程接收單向動作訊息,請變更下列 PIPAutomationGetAction 預存程序中的程式碼行:

SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB  

在上述程式碼行中,加入將會篩選出單向動作訊息的 WHERE 子句。 將所有您要處理的單向動作訊息包含在 WHERE 子句中。 這個程式碼行看起來應該如下:

SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB WHERE PIPCode NOT IN ( '0A1', '3B2', '3C3', '0C1', '0C3' )  

另請參閱

3A2 要求至 3A2 回應的對應範例
3A4 要求至 3A4 回應的對應範例
協調流程範例