2013-10-28 15 views
1

我有一個由以前調用非常簡單的存儲過程的人員構建的流程流。在完成該過程後,過程流程有兩個轉換,一個是存儲過程成功,另一個是否則成功。但是,存儲過程本身並不返回可由流程流直接評估的任何內容,如返回結果。現在,如果這個過程失敗了(帶有無限的最大存在性問題),它將調用分支,它將調用存儲過程來發送失敗的電子郵件消息。如果成功,相反會發生。我不得不調整程序,所以我創建了一個新的程序。現在,如果它失敗或成功,無論如何調用成功分支。我已經檢查了oracle的所有文檔,以瞭解如何使這項工作成爲可能,並且對於我的生活無法確定如何使其正常工作。我首先在oracle論壇上發佈了這個消息,但沒有得到任何迴應。有沒有人有一個想法如何使這項工作?Oracle倉庫構建器(owb)在流程流程中評估存儲過程結果

+1

請問現有過程遇到錯誤時會拋出未處理的異常?新程序?爲什麼2013年有人會得到一個最大範圍異常? –

回答

0

按照Oracle倉庫構建指南:

當您添加過渡到畫布上,默認情況下,過渡沒有適用於它的條件。

確保您已按文檔的Defining Transition Conditions部分所述正確定義了條件轉換。

如果一個用戶定義的活動將返回ERROR結果:

  1. 它拋出一個異常,或
  2. 它返回值3Use Return as Status選項設置爲true
+0

我改變了存儲過程,使其具有單個輸出整數返回值。然而,無論它被設置爲1,2還是3,它們被定義爲成功,警告或錯誤的評估值,它們仍然分支到成功分支。 – sldahlin

+0

@sldahlin:它需要是一個函數,而不是一個使用存儲函數的程序 –

+0

我能夠完成需要的東西。文檔需要以更完整的方式闡明這一點。非常感謝你 – sldahlin

0

「但是,存儲過程本身不會返回任何 可以通過進程流直接進行評估,如返回結果。」

這是關鍵:如果操作過程程序沒有產生任何信號,您如何判斷它是否成功?事實上,在這種情況下成功的定義是什麼?

我不明白爲什麼當你必須「調整程序」時,你寫了一個新的而不是,呃調整原來的程序。要解決這個問題的唯一方法是從原始程序中獲得一些反饋。

在這一點上,我們用盡了細節。直接的選擇是編輯原始程序,以便傳回結果信息,可能通過OUT參數或通過引入一些記錄功能。或者,重新編寫它以在失敗時引發異常。間接選擇是編寫一些查詢來確定程序在給定運行中所取得的成果,然後確定這是否構成成功。

個人而言,重寫原始程序似乎是更好的選擇。


如果這個答案不能幫助你,那麼你需要解釋更多關於你的情況。你的程序做了什麼,你如何評估它,爲什麼你不能重新寫它。