2016-11-11 6 views
0

私はWHEN-BUTTON-PRESSEDトリガーを販売取引を処理するトリガーの中に販売取引金額のチェックがあります。実行時にoracleフォームでユーザー入力を受け取る方法は?

額が1000より大きい場合は、上級者の認証コードが必要です。

引き続きトリガー内にあるときに、その認証コードをどのように受け取ることができますか?

認証コードを受け取るために新しいキャンバスを呼び出そうとしましたが、WHEN-BUTTON-PRESSED引き金が引き続き実行されます。

答えて

0

Raise 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( "数字を入力してください:"); int n = reader.nextInt(); – Sabe

+1

キャンバスを使用しないで回避策を見てください:「新しいキャンバスではできませんが、(認証コードを受け入れる)別のフォームを呼び出すと、WBPトリガーは呼び出されたフォームから戻ってから続行するまで待機しますその実行 "http://www.orafaq.com/forum/m/657510/#msg_657510 – Sabe

+0

はい、これは動作します。典型的な「ダイアログ」を開発し、他のフォームから使用することができます。フォームと呼ばれるトランザクションを意識して、独自のフォームを持つことができますが、私はあなたのケースでは問題ではないと思います。 –

関連する問題