2016-11-11 56 views
0

我有一個WHEN-BUTTON-PRESSED觸發器處理銷售交易,在觸發器內部檢查銷售交易金額。如何在運行時以oracle形式接收用戶輸入?

如果金額大於1000,則需要來自高級的授權碼。

如何在觸發器內仍能收到授權碼?

我試圖調用一個新的畫布來接收授權碼,但WHEN-BUTTON-PRESSED觸發器繼續執行。

回答

0

提高form_trigger_failure取消觸發處理異常。用戶然後再次輸入授權碼和cliks按鈕。

... 
if :your_block.amount > 1000 then 
    message('Enter authorization code'); 
    raise form_trigger_failure; 
end if; 

-- here continue your transaction 
+0

感謝您的回覆,但我想提示用戶在不引發異常的情況下輸入授權碼。在Java中,您可以使用Scanner類來接收來自用戶的輸入。例如System.out.println(「Enter a number:」); int n = reader.nextInt(); – Sabe

+1

請在不使用畫布的情況下查看解決方法:「新畫布不會執行此操作;但是,如果調用另一個窗體(它接受授權代碼),則WBP觸發器將等待,直到您從被調用窗體返回並繼續它的執行。「http://www.orafaq.com/forum/m/657510/#msg_657510 – Sabe

+0

是的,這將工作。您可以開發典型的「對話框」並從其他形式使用它們。意識到事務處理,稱爲form可以有它自己的,但我認爲它對你來說不是問題。 –

相關問題