Oracle Applications開発者ガイド リリース12 E06048-01 | 目次 | 前へ | 次へ |
TEMPLATEフォームは、新しいフォームを開発する場合、どのような開発においても出発点として必要となるフォームです。新しいフォームを開発するには、まず、TEMPLATE.fmbファイルをローカル・ディレクトリにコピーし、適切な名前に変更します。TEMPLATE.fmbファイルは$AU_TOP/forms/US(またはユーザーの言語およびプラットフォームに対応するもの)に格納されています。
TEMPLATEには次のものが含まれています。
APPSTANDフォーム(STANDARD_PC_AND_VA、STANDARD_TOOLBARおよびSTANDARD_CALENDAR)内のオブジェクト・グループへのプラットフォーム非依存の参照。
FNDSQF、APPCOREおよびAPPDAYPKを含む様々なライブラリの、プラットフォーム非依存の添付。
必須コード付きの、様々なフォーム・レベル・トリガー。
パッケージAPP_CUSTOMの仕様と本体を含むプログラム・ユニット。ウィンドウの開閉イベントについてのデフォルト動作が含まれています。通常、開発中の特定のフォームでは、このコードを修正する必要があります。
関連項目: ウィンドウの動作の制御
Applicationsのカラー・パレット。これには、参照先の視覚属性(キャンバスおよびボタン)で必要とされる2色、黒、白、青、赤などの純色、およびr40g70b100などのように赤、青、緑の混合率によって名前が付けられているその他の様々な色が含まれています。
カレンダ、ツールバー、代替リージョンおよびメニューをサポートする、オブジェクト・グループからの多数の参照オブジェクト。これらのオブジェクトには、値リスト、ブロック、パラメータおよびプロパティ・クラスなどが含まれます。
TEMPLATEフォームには、一般的な項目やレイアウト外観を示すサンプル・オブジェクトが含まれています。これらは単にサンプルの目的のためのみに提供されているものです。サンプルをすべて削除するには、次のオブジェクトを削除します。
ブロック: BLOCKNAME、DETAILBLOCK
ウィンドウ: BLOCKNAME
キャンバス・ビュー: BLOCKNAME
TEMPLATEフォームには、様々なライブラリのプラットフォーム非依存の添付が含まれています。これらのライブラリの一部は、TEMPLATE(FNDSQF、APPCOREおよびAPPDAYPK)に直接添付されていますが、それ以外のものは、これらの3つのライブラリに添付されています。ただし、Oracle Formsでは、異なるタイプの添付は区別できません。後でこれらのライブラリにさらにライブラリを添付した場合でも、追加されたライブラリはTEMPLATEに直接添付されているように見えます。
次のライブラリはすべてTEMPLATEに添付されています。また、特にユーザー・サイトで複数の国のOracle Applicationsを使用していたり、Oracle Industry Applicationsを使用している場合には、さらに多くのライブラリが添付されている可能性があります。
警告: CUSTOMライブラリ以外のOracle Applicationsライブラリを変更しないでください。変更すると、Oracle Applications製品が破損する恐れがあります。
APPCOREには、メニュー、ツールバーおよびその他の標準動作をサポートするために、すべてのフォームで必須とされるパッケージおよびプロシージャが含まれています。また、APPCOREには、フィールドを有効化する方法、特定のタイプのウィンドウの動作、動的な特殊メニューなどのような、『Oracle Applicationsフォーム・ベース製品のユーザー・インタフェース標準』に準ずる一定の実行時動作を達成するためにコールする必要のあるパッケージも含まれています。さらに、例外処理、メッセージ・レベルなどに使用する、その他の各種ユーティリティも含まれています。いくつかのAPPCOREイベント・ルーチンは、VERT、GLOBEおよびCUSTOMライブラリのルーチンを(この順序で)コールします。
APPCOREのプロシージャおよびファンクションには、通常APPで始まる名前が付けられています。
関連項目: APPCOREルーチンAPI
APPDAYPKには、Oracle Applicationsのカレンダ機能を制御するパッケージが含まれています。
関連項目: カレンダ
FNDSQFには、メッセージ・ディクショナリ、フレックスフィールド、プロファイル、コンカレント処理のためのパッケージおよびプロシージャが含まれています。また、ナビゲーション、複数通貨、WHOなどに使用する各種ユーティリティも含まれています。
FNDSQFのプロシージャおよびファンクションには、通常FNDで始まる名前が付けられています。
CUSTOMライブラリを使用して、Oracle Applicationsのコードを変更することなくOracle Applicationsフォームを拡張できます。ズーム(たとえば、他のフォームに移動して特定のレコードの問合せを行うなど)、ビジネス・ルールの実施方法(たとえば、ベンダー名に大文字を使用するなど)、およびサイトに適用しないフィールドの無効化などについてのカスタマイズに、このCUSTOMライブラリを使用できます。
コードはCUSTOMライブラリで、提供されているプロシージャ・シェル内に作成します。ロジックはすべて、実行対象のフォームおよびブロックに基づいてブランチする必要があります。Oracle ApplicationsではイベントがCUSTOMライブラリに送信されます。カスタム・コードはこれらのイベントに基づいて機能します。
関連項目: CUSTOMライブラリの使用
Oracle Applications開発者は、GLOBEライブラリを使用して、グローバルまたは地域的な機能をOracle Applicationsフォームに組み込むことができます。このときOracle Applicationsのベース・フォームを変更する必要はありません。Oracle ApplicationsはイベントをGLOBEライブラリに送ります。リージョン・コードはこれらのイベントに基づいて実行されます。GLOBEライブラリは、JA、JE、JLのルーチンをコールします。
Oracle Applications開発者は、VERTライブラリを使用して、Oracle Applicationsフォームに垂直業種機能(自動車業界に対しては、消費者用パッケージ製品、エネルギ、およびその他の業種)を組み込むことができます。このとき基本Oracle Applicationsフォームを変更する必要はありません。Oracle ApplicationsはVERTライブラリにイベントを送ります。垂直業種コードはこれらのイベントに基づいて実行されます。また、VERTライブラリは、他のライブラリのルーチンをコールします。
JAライブラリには、アジア太平洋地域特有のコードが含まれており、GLOBEライブラリによってコールされます。
JEライブラリには、EMEA(ヨーロッパ、中東、アフリカ)地域特有のコードが含まれており、GLOBEライブラリによってコールされます。
JLライブラリには、中南米地域特有のコードが含まれており、GLOBEライブラリによってコールされます。
TEMPLATEフォームには、他のルーチンが正常に動作するために必須となる、いくつかのフォーム・レベルのトリガーが含まれています。下記に、これらのトリガーを安全に修正するためのいくつかの規則を説明します。
重要: どのような場合でも、これらのトリガーは削除しないでください。
これらのトリガー内にあるテキストは、トリガー内に残る必要があります。ただし、開発者がこのテキストの前後に別のテキストを追加することが必要な場合が多くあります。トリガーには次のものがあります。
警告: トリガーがフォームで参照されている場合には、Oracle Forms Developerで変更が技術的に可能であっても、そのトリガーは変更しないでください。参照されているトリガーを変更すると、フォームに問題が生じたり、将来のアップグレードの際に問題が発生する可能性があります。
KEY-CLRFRM
KEY-COMMIT
KEY-DUPREC
KEY-EDIT
KEY-EXIT
KEY-HELP
KEY-LISTVAL
KEY-MENU
ON-ERROR
POST-FORM
PRE-FORM
WHEN-FORM-NAVIGATE(参照)
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-WINDOW-CLOSED
WHEN-WINDOW-RESIZED
ACCEPT
CLOSE_THIS_WINDOW(参照)
CLOSE_WINDOW
EXPORT(参照)
FOLDER_ACTION
FOLDER_RETURN_ACTION
LASTRECORD(参照)
MENU_TO_APPCORE(参照)
QUERY_FIND
STANDARD_ATTACHMENTS(参照)
ZOOM(参照)
APP_STANDARD.EVENT('ACCEPT');
このトリガーは、「ファイル」->「保存して実行」メニュー選択またはツールバー・ボタンの呼出しを処理します。保存後は、「最初のナビゲーション・ブロック」として指定されているブロックの次のレコードに移動します。
このトリガーのコードを置き換えるか、または、実行スタイル「オーバーライド」のブロック・レベルのトリガーを作成します。
関連項目: 保存して続行
null;
このトリガーによって特定のフォルダ・イベントをカスタマイズできます。
テキストを、フォルダの処理を実行するのに必要な特定のコードに置き換えます。
警告: オラクル社では、Oracle Applicationsの内部で使用する以外の目的での、このトリガーの変更をサポートしていません。
APP_STANDARD.EVENT('KEY-DUPREC');
このトリガーは、Oracle Formsのデフォルト機能であるレコードの複製機能を無効にします。
「編集」->「複製」->「前レコード」のメニュー選択を適切に処理するには、ブロック・レベルのKEY-DUPRECを実行スタイル「オーバーライド」でコーディングします。このトリガーによってduplicate_recordが実行され、必要に応じてフィールドの検証または消去が行われます。
関連項目: レコードの複製
APP_STANDARD.EVENT('KEY-CLRFRM');
このトリガーにより、フォームの消去前にレコードの検証が行われます。
追加のコードは、供給されているテキストの後に追加します。フォームに代替リージョンがある場合は、通常、GO_BLOCKコールを追加します。そのようにすると、フォームの消去処理の後にGO_BLOCKコールによってリージョン管理ポップリストが再移入されます。
APP_STANDARD.EVENT('KEY-MENU');
このトリガーはOracle Formsのブロック・メニュー・コマンドを無効にします。
特定のブロックからキーボードを使用して代替リージョンを操作できるようにするには、ブロック・レベルのKEY-MENUトリガーを実行スタイル「オーバーライド」でコーディングします。このトリガーによって代替リージョン管理ポップリストと同様の選択肢を持つ値リストが開きます。
関連項目: 代替リージョン
APP_STANDARD.EVENT('KEY-LISTVAL');
このトリガーによって、フレックスフィールド処理または値リストの起動が実行されます。
カレンダを使用するフィールドまたは動的にフレックスフィールドを起動するフィールドに、実行スタイル「オーバーライド」でブロック・レベルまたは項目レベルのトリガーを作成します。
関連項目: カレンダ
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_STANDARD.EVENT('POST-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は変更しないでください。
関連項目: ウィンドウの動作の制御
APP_STANDARD.EVENT('QUERY_FIND');
このトリガーにより、問合せ検索が使用できないことを示すデフォルト・メッセージが発行されます。
このトリガー内のコードを置き換えるか、または、フォーム内に「検索」ウィンドウまたは行値リストを作成するときに、実行スタイルを「オーバーライド」としてブロック・レベルのトリガーを作成します。
関連項目: 「問合せ検索」ウィンドウ
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コールの変更をサポートしていません。
APP_STANDARD.EVENT('WHEN-NEW-RECORD-INSTANCE');
このトリガーは、Oracle Applicationsのメニューおよびツールバーのステータスの管理に使用します。
必要に応じて、実行スタイルを「前」としてブロック・レベルのトリガーを作成します。
関連項目: 同期化
APP_STANDARD.EVENT('WHEN-NEW-BLOCK-INSTANCE');
このトリガーは、Oracle Applicationsのメニューおよびツールバーのステータスの管理に使用します。
必要に応じて、実行スタイルを「前」としてブロック・レベルのトリガーを作成します。
関連項目: 同期化
APP_STANDARD.EVENT('WHEN-NEW-ITEM-INSTANCE');
このトリガーは、Oracle Applicationsのメニューおよびツールバーのステータスの管理に使用します。
フレックスフィールド・ルーチン・コールを追加する場合は、APP_STANDARD.EVENTコールの前に追加する必要があります。通常は、このトリガーに他のコードを追加しないでください。このトリガーにコードを追加した場合、そのコードがフォーム内の各項目に影響し、フォームのパフォーマンスを損なう可能性があるためです。
必要に応じて、実行スタイルを「前」としてブロック・レベルまたは項目レベルのトリガーを作成します。
関連項目: 同期化
Oracle Applicationsでは、次のフォーム・レベルのトリガーについては、どのような変更もサポートしていません。
このトリガーは、「ファイル」->「ウィンドウのクローズ」メニューからAPP_CUSTOM.CLOSE_WINDOWを起動します。
APP_CUSTOM.CLOSE_WINDOW(:SYSTEM.EVENT_WINDOW);
このトリガーは、すべてのウィンドウのクローズ・イベントを処理します。ウィンドウのクローズ・イベントを処理するためのコードは、APP_CUSTOM.CLOSE_WINDOWパッケージ内にある必要があります。
関連項目: ウィンドウの動作の制御
app_standard.event('EXPORT');
このトリガーは、「ファイル」->「エクスポート」メニュー選択の呼出しを処理します。
app_folder.event(:global.folder_action);
このトリガーは、「フォルダ」メニューのエントリの呼出しを処理します。
APP_STANDARD.EVENT('KEY-COMMIT');
このトリガーは、通常のフォームまたはコールされるフォームでのコミットを処理します。
警告: オラクル社は、コールされるフォームを使用しないことをお薦めします。このプロシージャでは、下位互換性の目的でのみこれらをサポートしています。
APP_STANDARD.EVENT('KEY-EDIT');
このトリガーはフレックスフィールド処理、またはカレンダやエディタの呼出しを実行します。
APP_STANDARD.EVENT('KEY-EXIT');
このトリガーは、クローズ・イベントを処理し、問合せ入力モードはそのまま保持します。
APP_STANDARD.EVENT('KEY-HELP');
このトリガーはウィンドウ・ヘルプ・システムを起動します。
APP_STANDARD.EVENT('LASTRECORD');
このトリガーはメニュー・イベント「移動」->「最終レコード」を処理します。
APP_STANDARD.EVENT(:global.menu_to_appcore);
このトリガーはスペシャル・メニューをサポートします。
atchmt_api.invoke;
このトリガーは「添付」メニュー・エントリまたはツールバー・ボタンの呼出しを処理します。
execute_trigger('CLOSE_WINDOW');
このトリガーは、Oracle Applicationsまたはウィンドウ・マネージャのメニューからのウィンドウ・クローズ・イベントを集中化します。
この参照トリガーは変更できません。このトリガーは、最小化されているフォームにナビゲートするとフォームが通常のサイズに戻るなどの、一定の標準動作を有効化します。
このフォーム・イベントを使用するには、GLOBAL.WHEN_FORM_NAVIGATEと呼ばれるグローバル変数を、ユーザー命名トリガーの名前とともに移入します。通常、GO_FORMを発行する直前に、このグローバル変数を移入します。
関連項目: フォームへの指示の渡し
appcore_custom.event('ZOOM');
このトリガーは、「アクション」->「ズーム」メニュー選択またはツールバー・ボタンの呼出しを処理します。