プロシージャーの [ Source ] は、
Procedure オブジェクトのロジックに対応するコードを記述するエレメントです。
プログラミング作法は手続き型 (命令型) であり、ソースは文 (コマンド) の連続となり、命令の順序が重要となります。一部の例外を除いて、命令が指定される順序は実行する順序となります。
例: 開発者は、会社での勤務年数が 10年を超える従業員全員の給与を (15%) 増加させる処理を定義する必要があるとします。そのため、表示された
ソースで、次のプロシージャーを定義します:
図で示しているように、
For Each コマンドの横に
ベーストランザクションが指定されています (Employee)。ベーストランザクションは、関連する物理テーブルをナビゲートするトランザクションの名前であるため、GeneXus は、Employee 物理テーブルをナビゲートすることを決定します (Employee 物理テーブルは、EmployeeSeniority 項目属性や EmployeeSalary 項目属性など、会社の従業員の情報をすべて格納しています)。そして、GeneXus は、勤続年数が 10 年を超える社員だけに絞り込むことを決定し、その給与を 15% 増加して更新します。
ほかの命令型言語と同様、プロシージャーの
ソースでは、次のタイプのコマンドを利用できます:
- 条件付きの実行を実装するコントロールコマンド: If、Do Case
- 反復コマンド: Do While、For In
- ほかのオブジェクトの呼び出し: Call
- ループの反復をブレークする文: Exit
- プログラムを終了して呼び出し元に戻る文: Return など
次の目的の特殊コマンドも利用できます:
サブルーチンは
ソースの最後で定義します。該当コマンド (Do) を使用して、コードの任意の場所から呼び出すことができます。
また、
ビジネスコンポーネントのコンセプトを使用して、データベースに書き込むこともできます。「
コマンドを使用してデータベースを直接更新する方法とビジネスコンポーネントを使用する方法」を参照してください。
プロシージャーでデータを印刷する必要が生じる場合があります。印刷については「
プロシージャーレイアウト」を参照してください。
プロシージャーにおけるコマンド ソース コード エディター