ExpenseReportSubmission
ExpenseReportSubmission 範例說明如何透過如 Microsoft Excel 的多功能用戶端,將文件提交到 BizTalk Server 協調流程。
多功能的用戶端可以讓您在用戶端上執行資料驗證和初步計算等動作。 這有助於降低與後端伺服器的互動,相當適合只有低頻寬連線的情形。
必要條件
您必須確定已設定和啟用您的開發環境來使用 BizTalk Server Web 服務。 如需詳細資訊,請參閱 啟用 Web 服務。
此範例的用途
此範例說明如何使用下列步驟,直接從 Excel 將費用報表提交到 BizTalk Server:
使用者執行 Excel 試算表中提供的手動範例步驟。
試算表中的巨集程式碼會將試算表資料轉換成可延伸標記語言 (XML) 格式,並且使用 HTTP 連線將 XML 訊息提交到 BizTalk Server。
執行 BizTalk Server 的電腦會擷取 XML 費用報表訊息、使用提供的結構描述驗證它的格式,然後將它放置到不同的資料夾。
在實際情況中 (這超出此範例的說明範圍),其他如「企業資源規劃」(ERP) 系統的應用程式會擷取試算表檔案,並進行進一步的處理。
可在何處找到此範例
<範例路徑>\AdaptersUsage\ExpenseReportSubmission\
下表顯示此範例中的檔案,並描述其用途。
檔案 | Description |
---|---|
Cleanup.bat | 從全域組件快取 (GAC) 解除部署並移除組件;移除傳送和接收埠;視需要移除 Microsoft Internet Information Services (IIS) 虛擬目錄。 |
ExpenseReport.15.3.xls | Excel 試算表,含有費用報表配置、關聯的巨集以及可叫用巨集的按鈕。 |
MessageExample.xml | XML 費用報表格式的範例。 |
Setup.bat | 建置並初始化此範例。 |
在 \BTSExpenseDemo 資料夾中: AssemblyInfo.cs、 BTSExpenseDemo.btproj、 BTSExpenseDemo.sln |
提供此範例的專案、解決方案和關聯檔案。 |
在 \BTSExpenseDemo 資料夾中: BTSExpenseDemoBinding.xml |
用於自動化安裝,例如連接埠繫結。 |
在 \BTSExpenseDemo 資料夾中: BTSExpenseOrchestration.odx |
提供此範例的 BizTalk Server 協調流程。 |
在 \BTSExpenseDemo 資料夾中: SchemaExpenseReport.xsd |
提供 XML 費用報表格式的結構描述。 |
若要建置並初始化這個範例
在命令視窗中,瀏覽至下列資料夾:
<範例路徑>\AdaptersUsage\ExpenseReportSubmission
執行檔案 Setup.bat,這會執行下列動作:
編譯此範例的 Microsoft Visual Studio 專案,並部署產生的元件。
建立並繫結 BizTalk Server 傳送和接收埠。
注意
此範例會在建立和繫結連接埠時顯示下列警告:
Warning: Receive handler not specified for receive location "BTSExpenseReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.BTSExpenseDemo.BTSOrchestration"; updating with first available host
.您可以安全地忽略這些警告。 (繫結檔案已省略主控件名稱與接收處理常式,以配合使用者安裝中可能的命名差異)。
啟用接收位置並啟動傳送埠。
設定 IIS。
繫結和啟動 BizTalk Server 協調流程。
將 HTTP 位址設定至 Excel 試算表預期的位置。
注意
如需 BizTalk ISAPI 篩選的詳細資訊,請參閱 如何設定 HTTP 接收位置的 IIS。
注意
在嘗試執行此範例之前,您應該確認 BizTalk Server 沒有在建置和初始化程序期間報告任何錯誤。
注意
如果您在此範例中選擇開啟並建置專案,而不執行檔案 Setup.bat,必須先使用 .NET Framework Strong Name Utility (sn.exe) 建立強式名稱金鑰組。 請使用這個金鑰組來簽署產生的組件。
注意
若要復原 Setup.bat 所進行的變更,請執行 Cleanup.bat。 您必須先執行 Cleanup.bat 才能再度執行 Setup.bat。
setup.bat 檔會設定此範例的虛擬目錄,以在與預設網站關聯的 IIS 應用程式集區中執行。 若要設定此範例的虛擬目錄,以在 BizTalk 隔離主機使用者 和 IIS_WPG 使用者群組的使用者內容下執行,您應該將虛擬目錄設定為在新 IIS 應用程式集區中執行。 請依照下列步驟執行,將虛擬目錄設定為在新的 IIS 應用程式集區中執行:
注意
如果您已經為其他 SDK 範例建立新的應用程式集區,則可以繼續執行下面最後一項步驟。
按一下 [開始],指向 [ 程式],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
在 Internet Information Services (IIS) Manager中,流覽至 [應用程式集區 ] 資料夾。
以滑鼠右鍵按一下 [應用程式集區 ] 資料夾,然後按一下 [ 新增]、[ 應用程式集區...
輸入 應用程式集區識別碼的名稱: 例如 BizTalkSDKSamples,確認已選取 [ 使用新應用程式集區的預設設定 ] 選項,然後按一下 [ 確定 ] 以建立新的應用程式集區。
以滑鼠右鍵按一下新的應用程式集區,然後按一下 [ 屬性]。
按一下 [屬性] 對話方塊的 [ 身分識別 ] 索引標籤,並將此應用程式集區執行所在的身分識別變更為 BizTalk 隔離主機使用者 群組成員的使用者。 此使用者也應該是本機 IIS_WPG 使用者群組的成員。
設定這個 SDK 範例的虛擬目錄為在新的應用程式集區下執行。 [應用程式集區:] 設定可在 [虛擬目錄屬性] 對話方塊的 [虛擬目錄] 索引標籤上取得。 為這個範例建立的虛擬目錄是 ExpenseReportSubmission。
為 HTTPReceive.dll 將 Web 服務延伸模組新增至 IIS
在 [Internet Information Services (IIS) 管理員] 中,流覽至 [Web 服務延伸模組 ] 資料夾。
以滑鼠右鍵按一下 [Web 服務延伸模組 ] 資料夾,然後選取 [ 新增 Web 服務延伸模組 ] 以顯示 [ 新增 Web 服務延伸模組 ] 對話方塊。
輸入 ExpenseReportSubmission 以取得 延伸模組名稱:
按一下 [新增 ] 以顯示 [ 新增檔案 ] 對話方塊。
按一下 [流覽] 以顯示 [開啟] 對話方塊,然後流覽至< [BizTalk Server安裝資料夾 >]\HttpReceive\BTSHTTPReceive.dll,然後按一下 [開啟],然後按一下 [確定]。
啟用 [ 將擴充功能狀態設定為允許 ] 的選項,然後按一下 [ 確定]。
執行此範例
使用下列程序以執行 ExpenseReportSubmission 範例。
注意
如果您使用 Microsoft Excel 的增強型安全性功能,試算表中的巨集可能會被停用。 如需有關如何執行來自信任來源的未簽署巨集的資訊,請參閱 Excel 所提供的指示。
執行此範例
開啟此範例所隨附的 Excel 檔 ExpenseReport.15.3.xls。
在試算表中變更範例資料,但不要變更它的格式 (選擇性)。
在試算表中,按一下 [ 開始 ] 以執行本機計算。
按鈕的文字會從 [開始 ] 變更為 [ 提交]。
在試算表中,按一下 [ 提交]。
檢查所提交訊息的文字、資料表上背景為黃色的結果 (儲存格 C7),以及右下方實際的傳回程式碼和文字描述 (儲存格 G23)。
如果提交失敗,請再試一次, 並請參閱<註解>一節中的疑難排解表格。
註解
例如現場銷售人員配備的舊版 Microsoft Windows 不支援 .NET Framework,且不具有升級為最新版 Windows 的條件,就可能會發生這樣的情況。
此範例展示的重要功能如下:
透過多功能的用戶端 (非 .NET) 提交
Microsoft Office 整合
HTTP 接收連線
簡易的協調流程
File adapter (FILE 配接器)
下表說明一些可能發生的提交錯誤及其解決方案。
HTTP 錯誤碼 | 可能的動作 |
---|---|
401 未經授權 | 允許匿名存取虛擬目錄。 |
503 服務無法使用 (以及大部分在 400 和 500 範圍內的其他 HTTP 代碼) | 確認主機正在執行,且服務已部署完成、繫結至正確的連接埠並已啟動。 |