2013-11-20 54 views
0

我必須實現一個簡單的bpel工作流程,它只對數據庫執行選擇查詢。我已經能夠創建一個數據服務的WSDL文件。它的流程作爲圖像文件與此問題一起附加。請首先看看。如果你看到這個圖像,那麼我最終會爲參數「Name」(由wso2 Data Service Server自動生成的wsdl代碼)創建一個複雜的結構。它有一個名爲「Customer」的複雜元素,它具有2個字符串值「Name」和「nid」。我還複製了wsdl文件,以防您需要查看它。這裏:http://pastebin.com/QTKZbdzn簡單的bpel工作流程:選擇查詢返回多行

我相信我沒有發送任何輸入參數,而當我嘗試直接調用數據服務而沒有接收模塊時,它給出一個錯誤,說「沒有啓動活動已被定義爲進程」。 DataService WSDL

任何爲數據服務實施了類似BPEL工作流程的人,請讓我知道。數據服務工作正常!我已經單獨進行了測試。謝謝!

UPDATE


我最終作出一個BPM這樣的: 我必須改變DSS還,讓我提供一些輸入BPM。喜歡而不是「選擇*從客戶」我現在正在實施「選擇*從客戶其中nid =?」。它被證明是相當成功的。感謝您幫助我找到vimesh。但是,如果您仍然知道如何使用where子句進行查詢,請在此處進行更新。 bpm

+0

我還沒有實現WSO2數據服務,但我可以在BPEL上提供一些提示。在BPEL流程中,您必須有一個可以是「接收」或「選擇」的開始活動。這就是他[他的規格說明](http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html#_Toc164738484)。您的解決方案可能是通過這樣的活動啓動您的流程,並以某種方式保持活動狀態,然後您可以通過'repeatEvery'在'onAlarm'' eventHandler'中執行您的repetivite邏輯。 – joergl

回答

1

我用數據服務做了一個bpel流程。 我們需要做的第一件事是在bpel流程中添加一個接收元素。實際上,它讓我們向bps發送請求,同時bps用請求創建一個新實例。 那麼你可以做任何你想做的事情,比如調用ESB代理服務器,DSS服務等,同時調用外部服務,你可以通過參數來請求這個請求。即使您沒有向DSS服務發送任何輸入參數,您也應該以正確的格式向BPS內部的DSS發出請求(我的意思是正文部分) 您可以簡單地繼續使用this中提供的bpel樣本,然後更好地從DSS集成開始。

+0

hello vimesh,你介意與我分享類似的bpel工作流程樣本不能讓我清楚地瞭解以下內容。我不確定這些觀點:1.是否必須使用循環來處理返回多行的DS(如select * from table)? 2.正如你所說,即使我沒有使用任何參數,我也必須向DSS提出請求。它是DS的名字嗎? 3.最後你認爲像「客戶」這樣複雜的數據結構會在這裏造成問題嗎?感謝您的回覆。 – b51n6h

+0

好的,我會和你分享一個樣本。 – vimesh

+2

我做了一個示例,並在http://vimeshsnotes.blogspot.com/ – vimesh