コマンド・セット

コマンド・セットは、プロジェクトからオブジェクトをビルドする方法を定義します。 コマンド・セットは、その名前が暗黙に示すとおり、コマンドで構成されています。

IBM® i オブジェクト (モジュール、ファイル、プログラムなど) は、 プロジェクトに含まれるソースからビルドされます。 プロジェクト内の各ソース・ファイルは、ビルドのためにコマンド・セットに関連付けることができます。 コマンド・セットとソース・メンバー・セットの関連付けは、ビルダー内で定義されます。

他のタイプの IBM i オブジェクト (データ域、サービス・プログラム、権限リストなど) も作成できます。 この種のオブジェクトはソース・メンバーからビルドされるのではなく、コマンドによってのみ定義されます。 この種のオブジェクトは、コマンド・セットを使用しても定義できます。

コマンド・セットには CL コマンドが含まれています。 CL コマンドには変数を組み込むことができます。 このような変数はビルド時に設定できるため、 コマンド・セットは、オブジェクトを作成したり、プロジェクトのビルド時に 実行する必要があると考えられるその他の各種タスクを遂行したりするためのテンプレートとみなすことができます。

コマンド・セットは、そのコマンド・セットを使用するプロジェクトのビルド仕様で定義できます。 また、コマンド・セットは、他のプロジェクトからの外部コマンド・セットとして参照できます (最初にプロジェクト参照を定義して、次にそのプロジェクトから使用対象のコマンド・セットを指定します)。 この機能を使用すれば、すべてのプロジェクトで使用されるコマンド・セットの共通セットを定義できます。

2 種類のコマンド・セット

コマンド・セットには、汎用コマンド・セットと条件付きコマンド・セットの 2 種類があります。 汎用コマンド・セットは、ビルドごとの実行が必要となるタスクを実行するために使用されます。 汎用コマンド・セットは、セットアップ、コンパイル用のオーバーライドの設定、パッケージ化、およびクリーンアップに役立ちます。 条件付きコマンド・セットを実行できるかどうかは、コマンド・セットを使用しているビルダーの出力の状態に基づきます。 つまり、ビルダーの出力オブジェクトが存在するが古すぎて無効である場合、または出力オブジェクトが 1 つも存在しない場合に、条件付きコマンド・セット内のコマンドを実行できます。

コマンド・セット内のコマンドは、処理セクションにグループ化されています。 汎用コマンド・セットの処理セクションは 1 つのみです。 条件付きコマンド・セットは、条件付きコマンド・セットを使用するビルダーに対して定義された出力オブジェクトの状態に応じて処理を行います。 条件付きコマンド・セットには 2 つのセクションがあります。 1 つは、出力オブジェクトが存在するが入力や依存関係よりも古い場合に実行されます。 もう 1 つは、出力オブジェクトが 1 つも存在しない場合に実行されます。 このような処理が必要になる良い例として考えられるのは、 物理ファイルが存在しないときは CRTPF を使用して物理ファイルを作成し、 物理ファイルが存在するときは CHGPF を使用して物理ファイルを変更する場合です。 データ域や、データを保持する他のオブジェクトでは、同様の特殊処理が必要となる場合があります。 セクションを分ける必要がない場合は、「出力オブジェクトが存在しない」セクションと「出力オブジェクトが存在するが古すぎて無効である」セクションで 同じコマンドが実行されるように設定できます。

ビルダーがコマンド・セットを実行する方法

ビルダーは、コマンド・セットを使用するビルダーで指定された入力処理の種類に基づいてコマンド・セットを実行します。 コマンド・セット内のコマンドは必ず、指定された順序で実行されますが、ビルダーでコマンド・セットに関連付けられている入力のタイプによっては、複数回実行されることがあります。

入力としてソース・オブジェクト/メンバーのリストが指定された場合、そのリストにあるメンバーごとにコマンド・セットが 1 回実行されます。 このようなタイプの処理は、CRTRPGMOD、CRTRPGPGM、CRTBNDRPG などのコマンドを使用してメンバーのリストをコンパイルする場合に適しています。 このタイプのコマンド・セットを使用する場合は、以下の特殊変数を使用してコマンドをパラメーター化できます。
&N
ソース・リスト内のオブジェクトまたはメンバーの名前。
&F
メンバーを含むソース・ファイルの名前。 これは、オブジェクト・リストが指定された場合は空ストリングです。
&L
リストからのオブジェクトまたはメンバーを含むライブラリーの名前。
&X
リストからのオブジェクトまたはメンバーの説明テキスト。

ソース・オブジェクト/メンバーのリストを指定しない場合は、ビルダーに関連付けられた出力オブジェクトで必要とされたときに、条件付きコマンド・セットが最大で 1 回のみ実行されます。 これは、CRTPGM など、パラメーターとしてオブジェクトのリストを使用できるコマンドを実行する場合に適しています。

汎用コマンド・セットは必ず 1 回のみ実行されます。 汎用コマンド・セットは、オブジェクトを作成しないが、コンパイルのためのオーバーライドの設定など、ビルド・セットアップに必要な部分になる可能性のあるコマンドまたはコマンド・セットに適しています。

コマンドおよび置換変数

コマンドには置換変数が含まれます。 この置換変数の値は、このコマンドがビルダーで使用されるときに設定できます。 入力を一度に 1 つずつ処理する必要がある場合に使用できる 4 つの特殊変数については、既に説明したとおりです。 このほかに、コマンドで使用するだけで定義できる変数もあります。 このような変数は置換変数であり、CL 変数ではありません。 置換変数は、宣言する必要がありません。 置換変数は実行時に値を受け取り、ストリングとしてのみ置換されます。 置換変数が値を受け取ることができるのは、Rational® Team Concert ビルド定義の プロパティー・セットから、他の変数から、あるいはビルダーまたはビルド仕様で設定されたストリング定数からです。 置換変数は CL 変数のように見えますが、類似点もあれば相違点もあります。
  • 置換変数は、宣言する必要がありません。
  • 置換変数は、CL 変数と同様にアンパーサンド (&) で始まります。
  • 置換変数には、26 文字のラテン・アルファベット (A から Z、a から z)、数字 0 から 9、および下線 (_) を使用できます。 先頭の文字はラテン・アルファベットでなければなりません。
  • 置換変数の長さは最大で 50 文字です。
  • 置換変数に大/小文字の区別はありません。 &ABC は &abc と同じです。

詳しくは、Jazz™.net を参照してください。


フィードバック