[Develop]Lab8-InvokeWS
開啟WWF專案前先介紹要被叫用的 我們自己用.Net 撰寫了一個 Web Service。( 假如你不會用 .Net 寫 Web Service 的話,你可以參考前面 SOA 教學範例 )。 這個WS我架在IIS下的,網址是 http://localhost/lab1_HelloWorld/Service.asmx 位址。這個 Web Service 裡面有一個服務,叫做 HelloWorld! 看到這個 HelloWorld 服務的內容,它是一個接收使用者傳入 UserName 後,會回傳給你一個 Username + HelloWorld 參考結果!! 開啟一個新的WWF專案。 這個範例中我們要使用的是 [ 循序工作流程主控台應用程式 ] 。檔案名稱我們命名為 [ Lab8_InvokeWS ] 。 我們在工具箱上拉出一個 [ InvokeWebService ] 到循序工作流程中。 這時畫面上會跳出 WebService 的設定視窗。以後會常常看到這個視窗,因為整個網站就是一直不斷的再談整合的課題。 我們在 URL 加入 http://localhost/lab1_HelloWorld/Service.asmx 的網址,這樣 .Net HelloWorld 的服務。在 Web 參考名稱的部份,我們輸入 Lab8_HelloWorld( 你也可以輸入你想要的的名稱,這個動作你可以想像為 付予這個服務在你的專案裡面的名稱空間 )。 我們看到專案裡面被加入了一個 Web 參考了;再循序工作流程上也多了這個 [ invokeWebServiceActivity ] 的元件。 點選 [ invokeWebServiceActivity ] 的屬性視窗,我們在 MethodName 的屬行裡面選擇 [ HelloWorld 看到了兩個欄位;[ ReturnValue ] 與 [ Username ]。這是你要傳送給Web Service 的 Username 點選 循序工作流程 的程式碼編輯,在這邊我們撰寫兩個變數。一個是 [ ResponseMessage ] 另一個則是 [ RequestMessage 接著我們將 [ Username ] 屬性選擇 [ RequestMessage ]。這是當我們呼叫 Web Service 時要送給他的值。 接著在 [ RetuenValue ] 中指定 [ ResponseMessage ] 的值。這是用來接收 Web Service 回傳結果用的變數。 我們在工作循序流程中再寫兩個方法,程式碼如下。一個是用來設定值,而另一個是用來將結果列印出來的。 然後在 [ InvokeWebService ] 元件的屬性繼續設定 [ 處理常式 ] 部分的設定。將 Invoked 設定為剛剛寫的 WS 而 Invoking 則指定 WSInvoking 的方法。 完成測試! 完成了這個範例,我門來測試一下結果吧!! |