データベースへのアクセス、データの更新、印刷などのアルゴリズムを実装するプログラムまたはルーチンを定義します。
1. 典型的な例としてはリストがあります。このリストでは、プロシージャーはいくつかのテーブルをナビゲートし、データベースを読み込み、出力内容を取得して、ブラウザー上に PDF フォーマットで表示します。たとえば、Travel Agency アプリケーションの場合の旅行者の観光スポットのリストです:
2. もう 1 つの例として、ある空港から特定の日に出発する予定のフライトがすべて延期されたとします。これには、プロシージャーを記述して Flights テーブルをナビゲートし、該当するフライトの出発の日付と時刻を変更する必要があります (この場合、出力は必要ありません)。
3. 3 つ目の例は、航空会社により設定されたレートに基づいて航空券の価格を増額するプロセスです。
4. 最後の例として、希望する結果 (たとえば、全航空会社を対象として、ある期間に多くの旅客が到達する目的地など) を得るためにいくつかのテーブルをナビゲートして特定の関数、式、および変換を使用する必要のある複雑な計算 (式ではなく) が挙げられます。
Procedure オブジェクトには、次のように定義されるセクションがあります。
- ソース: プロシージャーの論理に対応するコードが記述されている主要セクションです。
- レイアウト: このセクションでは、出力の表示を定義します。このような出力をしないプロシージャーや、出力自体を行わないプロシージャーもあります。逆に言うと、プロシージャーで情報を印刷する場合、このセクション内で対応する出力を設計し、出力する情報とフォーマットを指定する必要があるということです。プロシージャー内のレイアウトは、Web パネルまたはトランザクション内でフォームとして表示できます。
- ルール: オブジェクトが受け取るパラメーターや変数の既定値などをどのように宣言すべきかを決めます。
- 条件: このセクションでは、取得するデータが満たさなければならない条件 (一般的なフィルタ) を定義します。
- 変数: ほとんどのオブジェクトと同様に、変数 (オブジェクトのローカル変数) を定義するセクションもあります。
- ヘルプ: プロシージャーについての詳説です。実行時には、エンドユーザー用のオンラインヘルプになります。
- ドキュメンテーション: プロシージャーについて詳説し、ドキュメント化します。
ほとんどのオブジェクトと同様に、オブジェクト全般を設定するプロパティエディターがあります。名前などはオブジェクトすべてに適用され、出力の種類 (ファイルのみ、プリンター出力など) や、オブジェクトがメインオブジェクトである場合の呼び出しプロトコルなどは、特定のプロシージャーのオブジェクトのみに適用されます。
まとめると、プロシージャーは目的によって次のように区分できます:
注: その名前のとおり、対応するプログラミング作法は命令型ですが、宣言型である部分 (つまり、レイアウト) もあります。
Travel Agency で取り扱う航空会社を一覧表示するために、PDF レポートを出力する必要があるとします。この要件を実装するプロシージャーは、次のようなレイアウトになります (詳細については、「プロシージャーレイアウト」を参照してください)。
ロジックは次のとおりです。
Header
Print Pb_Header
End
For each Airline
Print Pb_Body
Endfor
Header コマンドには、出力結果のレポートの各ページに表示されるヘッダーを指定します。For Each コマンドはデータベースにアクセスするために使用し、Print コマンドはレイアウトに定義した print block を出力して印刷します。
プロシージャーをメインオブジェクトとして宣言すると、次のように先頭に「a」が付いて生成されます: aProcedureName (.NET と Java のみ)。
Introduction to For Each command to access the database
Database update using procedures. An introduction
|