ヘッダーをスキップ

Oracle Applications開発者ガイド
リリース12
E06048-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

TEMPLATEフォーム

TEMPLATEフォームの概要

TEMPLATEフォームは、新しいフォームを開発する場合、どのような開発においても出発点として必要となるフォームです。新しいフォームを開発するには、まず、TEMPLATE.fmbファイルをローカル・ディレクトリにコピーし、適切な名前に変更します。TEMPLATE.fmbファイルは$AU_TOP/forms/US(またはユーザーの言語およびプラットフォームに対応するもの)に格納されています。

TEMPLATEには次のものが含まれています。

TEMPLATEフォームでのライブラリ

TEMPLATEフォームには、様々なライブラリのプラットフォーム非依存の添付が含まれています。これらのライブラリの一部は、TEMPLATE(FNDSQF、APPCOREおよびAPPDAYPK)に直接添付されていますが、それ以外のものは、これらの3つのライブラリに添付されています。ただし、Oracle Formsでは、異なるタイプの添付は区別できません。後でこれらのライブラリにさらにライブラリを添付した場合でも、追加されたライブラリはTEMPLATEに直接添付されているように見えます。

次のライブラリはすべてTEMPLATEに添付されています。また、特にユーザー・サイトで複数の国のOracle Applicationsを使用していたり、Oracle Industry Applicationsを使用している場合には、さらに多くのライブラリが添付されている可能性があります。

警告: CUSTOMライブラリ以外のOracle Applicationsライブラリを変更しないでください。変更すると、Oracle Applications製品が破損する恐れがあります。

APPCORE

APPCOREには、メニュー、ツールバーおよびその他の標準動作をサポートするために、すべてのフォームで必須とされるパッケージおよびプロシージャが含まれています。また、APPCOREには、フィールドを有効化する方法、特定のタイプのウィンドウの動作、動的な特殊メニューなどのような、『Oracle Applicationsフォーム・ベース製品のユーザー・インタフェース標準』に準ずる一定の実行時動作を達成するためにコールする必要のあるパッケージも含まれています。さらに、例外処理、メッセージ・レベルなどに使用する、その他の各種ユーティリティも含まれています。いくつかのAPPCOREイベント・ルーチンは、VERT、GLOBEおよびCUSTOMライブラリのルーチンを(この順序で)コールします。

APPCOREのプロシージャおよびファンクションには、通常APPで始まる名前が付けられています。

関連項目: APPCOREルーチンAPI

APPDAYPK

APPDAYPKには、Oracle Applicationsのカレンダ機能を制御するパッケージが含まれています。

関連項目: カレンダ

FNDSQF

FNDSQFには、メッセージ・ディクショナリ、フレックスフィールド、プロファイル、コンカレント処理のためのパッケージおよびプロシージャが含まれています。また、ナビゲーション、複数通貨、WHOなどに使用する各種ユーティリティも含まれています。

FNDSQFのプロシージャおよびファンクションには、通常FNDで始まる名前が付けられています。

CUSTOM

CUSTOMライブラリを使用して、Oracle Applicationsのコードを変更することなくOracle Applicationsフォームを拡張できます。ズーム(たとえば、他のフォームに移動して特定のレコードの問合せを行うなど)、ビジネス・ルールの実施方法(たとえば、ベンダー名に大文字を使用するなど)、およびサイトに適用しないフィールドの無効化などについてのカスタマイズに、このCUSTOMライブラリを使用できます。

コードはCUSTOMライブラリで、提供されているプロシージャ・シェル内に作成します。ロジックはすべて、実行対象のフォームおよびブロックに基づいてブランチする必要があります。Oracle ApplicationsではイベントがCUSTOMライブラリに送信されます。カスタム・コードはこれらのイベントに基づいて機能します。

関連項目: CUSTOMライブラリの使用

GLOBE

Oracle Applications開発者は、GLOBEライブラリを使用して、グローバルまたは地域的な機能をOracle Applicationsフォームに組み込むことができます。このときOracle Applicationsのベース・フォームを変更する必要はありません。Oracle ApplicationsはイベントをGLOBEライブラリに送ります。リージョン・コードはこれらのイベントに基づいて実行されます。GLOBEライブラリは、JA、JE、JLのルーチンをコールします。

VERT

Oracle Applications開発者は、VERTライブラリを使用して、Oracle Applicationsフォームに垂直業種機能(自動車業界に対しては、消費者用パッケージ製品、エネルギ、およびその他の業種)を組み込むことができます。このとき基本Oracle Applicationsフォームを変更する必要はありません。Oracle ApplicationsはVERTライブラリにイベントを送ります。垂直業種コードはこれらのイベントに基づいて実行されます。また、VERTライブラリは、他のライブラリのルーチンをコールします。

JA

JAライブラリには、アジア太平洋地域特有のコードが含まれており、GLOBEライブラリによってコールされます。

JE

JEライブラリには、EMEA(ヨーロッパ、中東、アフリカ)地域特有のコードが含まれており、GLOBEライブラリによってコールされます。

JL

JLライブラリには、中南米地域特有のコードが含まれており、GLOBEライブラリによってコールされます。

TEMPLATEフォームでの特殊トリガー

TEMPLATEフォームには、他のルーチンが正常に動作するために必須となる、いくつかのフォーム・レベルのトリガーが含まれています。下記に、これらのトリガーを安全に修正するためのいくつかの規則を説明します。

重要: どのような場合でも、これらのトリガーは削除しないでください。

これらのトリガー内にあるテキストは、トリガー内に残る必要があります。ただし、開発者がこのテキストの前後に別のテキストを追加することが必要な場合が多くあります。トリガーには次のものがあります。

警告: トリガーがフォームで参照されている場合には、Oracle Forms Developerで変更が技術的に可能であっても、そのトリガーは変更しないでください。参照されているトリガーを変更すると、フォームに問題が生じたり、将来のアップグレードの際に問題が発生する可能性があります。

標準Formsトリガー

ユーザー命名トリガー:

変更を必要とするトリガー

ACCEPT

APP_STANDARD.EVENT('ACCEPT');

このトリガーは、「ファイル」->「保存して実行」メニュー選択またはツールバー・ボタンの呼出しを処理します。保存後は、「最初のナビゲーション・ブロック」として指定されているブロックの次のレコードに移動します。

このトリガーのコードを置き換えるか、または、実行スタイル「オーバーライド」のブロック・レベルのトリガーを作成します。

関連項目: 保存して続行

FOLDER_RETURN_ACTION

null;

このトリガーによって特定のフォルダ・イベントをカスタマイズできます。

テキストを、フォルダの処理を実行するのに必要な特定のコードに置き換えます。

警告: オラクル社では、Oracle Applicationsの内部で使用する以外の目的での、このトリガーの変更をサポートしていません。

KEY-DUPREC

APP_STANDARD.EVENT('KEY-DUPREC');

このトリガーは、Oracle Formsのデフォルト機能であるレコードの複製機能を無効にします。

「編集」->「複製」->「前レコード」のメニュー選択を適切に処理するには、ブロック・レベルのKEY-DUPRECを実行スタイル「オーバーライド」でコーディングします。このトリガーによってduplicate_recordが実行され、必要に応じてフィールドの検証または消去が行われます。

関連項目: レコードの複製

KEY-CLRFRM

APP_STANDARD.EVENT('KEY-CLRFRM');

このトリガーにより、フォームの消去前にレコードの検証が行われます。

追加のコードは、供給されているテキストの後に追加します。フォームに代替リージョンがある場合は、通常、GO_BLOCKコールを追加します。そのようにすると、フォームの消去処理の後にGO_BLOCKコールによってリージョン管理ポップリストが再移入されます。

KEY-MENU

APP_STANDARD.EVENT('KEY-MENU');

このトリガーはOracle Formsのブロック・メニュー・コマンドを無効にします。

特定のブロックからキーボードを使用して代替リージョンを操作できるようにするには、ブロック・レベルのKEY-MENUトリガーを実行スタイル「オーバーライド」でコーディングします。このトリガーによって代替リージョン管理ポップリストと同様の選択肢を持つ値リストが開きます。

関連項目: 代替リージョン

KEY-LISTVAL

APP_STANDARD.EVENT('KEY-LISTVAL');

このトリガーによって、フレックスフィールド処理または値リストの起動が実行されます。

カレンダを使用するフィールドまたは動的にフレックスフィールドを起動するフィールドに、実行スタイル「オーバーライド」でブロック・レベルまたは項目レベルのトリガーを作成します。

関連項目: カレンダ

ON-ERROR

APP_STANDARD.EVENT('ON-ERROR');



このトリガーは、メッセージ・ディクショナリ・コールを使用して、サーバー側およびクライアント側のすべてのエラーを処理します。

特定のエラーを検出するには、APP_STANDARDコールの前に該当エラーをチェックします。

declare

           original_mess      varchar2(80);

        begin

    IF MESSAGE_CODE = <your message number> THEN

              original_mess := MESSAGE_TYPE||'-'||

                 to_char(MESSAGE_CODE)||': '||MESSAGE_TEXT;

     --- your code handling the error goes here

             message(original_mess);

           ELSE

              APP_STANDARD.EVENT('ON_ERROR');

           END IF

        end;

関連項目: メッセージ・ディクショナリの概要

APP_EXCEPTION: 例外処理API

POST-FORM

APP_STANDARD.EVENT('POST-FORM');

このトリガーは将来の使用のために予約されています。

追加のコードは、供給されているテキストの前に追加します。

PRE-FORM

FND_STANDARD.FORM_INFO('$Revision: <Number>$',

                   '<Form Name>',

                   '<Application Shortname>',

                   '$Date: <YY/MM/DD HH24:MI:SS> $',

                   '$Author: <developer name> $');

APP_STANDARD.EVENT('PRE-FORM');

APP_WINDOW.SET_WINDOW_POSITION('BLOCKNAME',

                   'FIRST_WINDOW');

このトリガーはOracle Applicationsの内部の値とメニューを初期化します。ここで入力した値は、Oracle Applicationsメニューから「ヘルプ」->「Oracle Applicationsについて」を選択したときに表示されます。

アプリケーション短縮名を変更する必要があります。このアプリケーション短縮名によって、ユーザーがツールバー上のウィンドウ・ヘルプ・ボタンを押した際、どのアプリケーションのオンライン・ヘルプ・ファイルにアクセスするかが制御されます。アプリケーション短縮名をFNDのままにすると、ヘルプは表示されません。これは、Oracle Applicationsが有効なヘルプ・ターゲットを構築できないためです。

フォーム名はユーザー・フォーム名(フォーム・タイトル)を指します。これは参照目的のみのもので、他で使用されることはありません。

オラクル社では、$で始まる値を自動的に更新するソース管理システムを使用しています。ソース管理システムを使用していない場合は、ユーザーの開発情報でこれらの値を変更する必要があります。

また、BLOCKNAMEのかわりにユーザー独自のブロック名(先頭のブロックのブロック名)を使用するには、APP_WINDOWコールを変更する必要があります。文字列FIRST_WINDOWは変更しないでください。

関連項目: ウィンドウの動作の制御

QUERY_FIND

APP_STANDARD.EVENT('QUERY_FIND');

このトリガーにより、問合せ検索が使用できないことを示すデフォルト・メッセージが発行されます。

このトリガー内のコードを置き換えるか、または、フォーム内に「検索」ウィンドウまたは行値リストを作成するときに、実行スタイルを「オーバーライド」としてブロック・レベルのトリガーを作成します。

関連項目: 「問合せ検索」ウィンドウ

WHEN-NEW-FORM-INSTANCE

FDRCSID('$Header: ... $');

APP_STANDARD.EVENT('WHEN-NEW-FORM-INSTANCE');



-- app_folder.define_folder_block('template test',

    'folder_block', 'prompt_block', 'stacked_canvas',

    'window', 'disabled functions');

-- app_folder.event('VERIFY');

このトリガーのAPP_STANDARD.EVENTコールは、FND_FUNCTION.EXECUTEによって起動される問合せ専用モードをサポートしています。FDRCSIDコールは、Oracle Applicationsのソース管理システムをサポートしています。APP_FOLDERコールは、Oracle Applications内部での使用専用です。カスタム・フォームではFDRCSIDコール、APP_FOLDERコールのいずれも必要ありませんが、トリガーの中に残っていても問題はありません。

追加のコードは、供給されているテキストの前に追加します。

警告: オラクル社では、Oracle Applicationsの内部で使用する以外の目的での、APP_FOLDERコールの変更をサポートしていません。

WHEN-NEW-RECORD-INSTANCE

APP_STANDARD.EVENT('WHEN-NEW-RECORD-INSTANCE');



このトリガーは、Oracle Applicationsのメニューおよびツールバーのステータスの管理に使用します。

必要に応じて、実行スタイルを「前」としてブロック・レベルのトリガーを作成します。

関連項目: 同期化

WHEN-NEW-BLOCK-INSTANCE

APP_STANDARD.EVENT('WHEN-NEW-BLOCK-INSTANCE');

このトリガーは、Oracle Applicationsのメニューおよびツールバーのステータスの管理に使用します。

必要に応じて、実行スタイルを「前」としてブロック・レベルのトリガーを作成します。

関連項目: 同期化

WHEN-NEW-ITEM-INSTANCE

APP_STANDARD.EVENT('WHEN-NEW-ITEM-INSTANCE');

このトリガーは、Oracle Applicationsのメニューおよびツールバーのステータスの管理に使用します。

フレックスフィールド・ルーチン・コールを追加する場合は、APP_STANDARD.EVENTコールの前に追加する必要があります。通常は、このトリガーに他のコードを追加しないでください。このトリガーにコードを追加した場合、そのコードがフォーム内の各項目に影響し、フォームのパフォーマンスを損なう可能性があるためです。

必要に応じて、実行スタイルを「前」としてブロック・レベルまたは項目レベルのトリガーを作成します。

関連項目: 同期化

変更不可のトリガー

Oracle Applicationsでは、次のフォーム・レベルのトリガーについては、どのような変更もサポートしていません。

CLOSE_THIS_WINDOW

このトリガーは、「ファイル」->「ウィンドウのクローズ」メニューからAPP_CUSTOM.CLOSE_WINDOWを起動します。

CLOSE_WINDOW

APP_CUSTOM.CLOSE_WINDOW(:SYSTEM.EVENT_WINDOW);



このトリガーは、すべてのウィンドウのクローズ・イベントを処理します。ウィンドウのクローズ・イベントを処理するためのコードは、APP_CUSTOM.CLOSE_WINDOWパッケージ内にある必要があります。

関連項目: ウィンドウの動作の制御

EXPORT

app_standard.event('EXPORT');

このトリガーは、「ファイル」->「エクスポート」メニュー選択の呼出しを処理します。

FOLDER_ACTION

app_folder.event(:global.folder_action);

このトリガーは、「フォルダ」メニューのエントリの呼出しを処理します。

KEY-COMMIT

APP_STANDARD.EVENT('KEY-COMMIT');

このトリガーは、通常のフォームまたはコールされるフォームでのコミットを処理します。

警告: オラクル社は、コールされるフォームを使用しないことをお薦めします。このプロシージャでは、下位互換性の目的でのみこれらをサポートしています。

KEY-EDIT

APP_STANDARD.EVENT('KEY-EDIT');

このトリガーはフレックスフィールド処理、またはカレンダやエディタの呼出しを実行します。

KEY-EXIT

APP_STANDARD.EVENT('KEY-EXIT');

このトリガーは、クローズ・イベントを処理し、問合せ入力モードはそのまま保持します。

KEY-HELP

APP_STANDARD.EVENT('KEY-HELP');

このトリガーはウィンドウ・ヘルプ・システムを起動します。

LASTRECORD

APP_STANDARD.EVENT('LASTRECORD');

このトリガーはメニュー・イベント「移動」->「最終レコード」を処理します。

MENU_TO_APPCORE

APP_STANDARD.EVENT(:global.menu_to_appcore);

このトリガーはスペシャル・メニューをサポートします。

STANDARD_ATTACHMENTS

atchmt_api.invoke;

このトリガーは「添付」メニュー・エントリまたはツールバー・ボタンの呼出しを処理します。

WHEN-WINDOW-CLOSED

execute_trigger('CLOSE_WINDOW');

このトリガーは、Oracle Applicationsまたはウィンドウ・マネージャのメニューからのウィンドウ・クローズ・イベントを集中化します。

WHEN-FORM-NAVIGATE

この参照トリガーは変更できません。このトリガーは、最小化されているフォームにナビゲートするとフォームが通常のサイズに戻るなどの、一定の標準動作を有効化します。

このフォーム・イベントを使用するには、GLOBAL.WHEN_FORM_NAVIGATEと呼ばれるグローバル変数を、ユーザー命名トリガーの名前とともに移入します。通常、GO_FORMを発行する直前に、このグローバル変数を移入します。

関連項目: フォームへの指示の渡し

ZOOM

appcore_custom.event('ZOOM');

このトリガーは、「アクション」->「ズーム」メニュー選択またはツールバー・ボタンの呼出しを処理します。