2016-11-11 65 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可以有它自己的,但我认为它对你来说不是问题。 –

相关问题