Oracle FormsをコールするJavaScriptイベントについて

FormsアプレットをホストするWebページでJavaScriptを使用して、JavaScriptからOracle Formsをコールすることもできます。

DOM (Document Object Model)ツリー内の埋め込まれたFormsオブジェクトに新しい機能が提供されています。JavaScriptを使用して次の処理を行います。

document.forms_applet.raiseEvent(event_name, payload);

ここでは、ID構成変数をforms_appletに設定していたことを前提としています。

周囲のWebページがこのJavaScriptコードを実行すると、Oracle FormsがWHEN-CUSTOM-JAVASCRIPT-EVENTという新しいタイプのトリガーを起動します。このトリガーには、system.javascript_event_valuesystem.javascript_event_nameの2つの有効なシステム変数があります。これらの変数に含まれているペイロードとイベント名は、raiseEventメソッドを通じてFormsに渡されたものです。raiseEventメソッドがコールされると、WHEN-CUSTOM-JAVASCRIPT-EVENTという名前のトリガーがサーバー側で起動されます。

declare
    event_val varchar2(300):= :system.javascript_event_value;
begin
    if (:system.javascript_event_name='show') then
        handleShowEvent(event_val);
    elsif(:system.javascript_event_name='grab') then
	  handleGrabEvent(event_val);
    else
        null;
    end if;
end;

このPL/SQLコードは、showとgrabの2つのイベントを認識します。それ以外の名前は無視されます。

イベント・コールをOracle Forms内で行う理由

HTMLベースのアプリケーションは、Javaベースであるかどうかにかかわらず、同じホスト元Webページ内のFormsベース・アプリケーションと同期できます。たとえば、HTMLベースのアプリケーションを使用してデータの問合せを行い、ユーザーが適切なアクセス権限を持っている場合にのみ、Formsを使用してそのデータを更新します。