IBM® i オブジェクト (モジュール、ファイル、プログラムなど) は、 プロジェクトに含まれるソースからビルドされます。 プロジェクト内の各ソース・ファイルは、ビルドのためにコマンド・セットに関連付けることができます。 コマンド・セットとソース・メンバー・セットの関連付けは、ビルダー内で定義されます。
他のタイプの IBM i オブジェクト (データ域、サービス・プログラム、権限リストなど) も作成できます。 この種のオブジェクトはソース・メンバーからビルドされるのではなく、コマンドによってのみ定義されます。 この種のオブジェクトは、コマンド・セットを使用しても定義できます。
コマンド・セットには CL コマンドが含まれています。 CL コマンドには変数を組み込むことができます。 このような変数はビルド時に設定できるため、 コマンド・セットは、オブジェクトを作成したり、プロジェクトのビルド時に 実行する必要があると考えられるその他の各種タスクを遂行したりするためのテンプレートとみなすことができます。
コマンド・セットは、そのコマンド・セットを使用するプロジェクトのビルド仕様で定義できます。 また、コマンド・セットは、他のプロジェクトからの外部コマンド・セットとして参照できます (最初にプロジェクト参照を定義して、次にそのプロジェクトから使用対象のコマンド・セットを指定します)。 この機能を使用すれば、すべてのプロジェクトで使用されるコマンド・セットの共通セットを定義できます。
コマンド・セットには、汎用コマンド・セットと条件付きコマンド・セットの 2 種類があります。 汎用コマンド・セットは、ビルドごとの実行が必要となるタスクを実行するために使用されます。 汎用コマンド・セットは、セットアップ、コンパイル用のオーバーライドの設定、パッケージ化、およびクリーンアップに役立ちます。 条件付きコマンド・セットを実行できるかどうかは、コマンド・セットを使用しているビルダーの出力の状態に基づきます。 つまり、ビルダーの出力オブジェクトが存在するが古すぎて無効である場合、または出力オブジェクトが 1 つも存在しない場合に、条件付きコマンド・セット内のコマンドを実行できます。
コマンド・セット内のコマンドは、処理セクションにグループ化されています。 汎用コマンド・セットの処理セクションは 1 つのみです。 条件付きコマンド・セットは、条件付きコマンド・セットを使用するビルダーに対して定義された出力オブジェクトの状態に応じて処理を行います。 条件付きコマンド・セットには 2 つのセクションがあります。 1 つは、出力オブジェクトが存在するが入力や依存関係よりも古い場合に実行されます。 もう 1 つは、出力オブジェクトが 1 つも存在しない場合に実行されます。 このような処理が必要になる良い例として考えられるのは、 物理ファイルが存在しないときは CRTPF を使用して物理ファイルを作成し、 物理ファイルが存在するときは CHGPF を使用して物理ファイルを変更する場合です。 データ域や、データを保持する他のオブジェクトでは、同様の特殊処理が必要となる場合があります。 セクションを分ける必要がない場合は、「出力オブジェクトが存在しない」セクションと「出力オブジェクトが存在するが古すぎて無効である」セクションで 同じコマンドが実行されるように設定できます。
ビルダーは、コマンド・セットを使用するビルダーで指定された入力処理の種類に基づいてコマンド・セットを実行します。 コマンド・セット内のコマンドは必ず、指定された順序で実行されますが、ビルダーでコマンド・セットに関連付けられている入力のタイプによっては、複数回実行されることがあります。
ソース・オブジェクト/メンバーのリストを指定しない場合は、ビルダーに関連付けられた出力オブジェクトで必要とされたときに、条件付きコマンド・セットが最大で 1 回のみ実行されます。 これは、CRTPGM など、パラメーターとしてオブジェクトのリストを使用できるコマンドを実行する場合に適しています。
汎用コマンド・セットは必ず 1 回のみ実行されます。 汎用コマンド・セットは、オブジェクトを作成しないが、コンパイルのためのオーバーライドの設定など、ビルド・セットアップに必要な部分になる可能性のあるコマンドまたはコマンド・セットに適しています。
詳しくは、Jazz™.net を参照してください。