REXX メンバー選択
PDS または PDSE データ・セットの場合、メンバー・レコード内で「真」である条件によって、メンバーをコピーするかしないかを判別することができます。この条件テストは、以下の RETURN ストリングの少なくとも 1 つが含まれる REXX プロシージャーを介して File Manager に提供されます。
- RETURN PROCESS MEMBER
- メンバー全体がコピーに組み込まれることを指示します。このメンバーでは、これ以上のレコードは REXX プロシージャーに渡されません。メンバーはそのままコピーされ、ユーザー REXX プロシージャーが呼び出される前に実行される、指定済みのテンプレート処理があれば、それに従います。
- RETURN DROP MEMBER
- メンバーがコピーから除外されることを指示します。このメンバーでは、それ以上のレコードは処理されません。処理は、次のメンバーから続行されます。
REXX メンバー選択が有効であると、レコードは入力メンバーから読み取られ、メンバーがコピーされるか決定が行われるまで、メモリー内にキャッシュされます。決定が行われると、指定された戻りストリングに従い、メンバー全体がコピーまたはドロップされます。
メンバー全体を処理しても DROP MEMBER または PROCESS MEMBER 戻りストリングが検出されなかった場合、メンバーは指定されたデフォルト・アクションに従って処理されます。
REXX メンバー選択が指定されていないときに REXX 処理によってこれらのストリングのいずれかが戻る場合、警告メッセージが出されるものの、これは引数ストリングなしの RETURN であるものとして扱われます。後続のレコードは、継続して REXX プロシージャーに渡されます。同様に、REXX メンバー選択が指定されているときに REXX 処理によって DROP、STOP または STOP IMMEDIATE ストリングが戻る場合、警告メッセージが出されるものの、これは引数ストリングなしの RETURN であるものとして扱われます。後続のレコードは、メンバーを DROP または PROCESS するかどうかの決定が行われるまで、継続して REXX プロシージャーに渡されます。
レコードのドロップまたは更新を制御する他の REXX ステートメントは、REXX メンバー選択が使用されるときには実行されません。特殊な File Manager が定義した REXX 変数である、OUTREC への変更はすべて無視されます。ただし、レコードの更新またはドロップに関係しない REXX ステートメントは処理されます。これは予期しない結果につながることがあります。一般に、メンバーの内容に基づいて PDS のメンバーを条件付きでコピーする必要があり、メンバーの内容も操作したい場合には、別の REXX プロシージャーを使用して、2 ステップのプロセスとして、このタスクを実行してみてください。
条件付きメンバー処理を指定するには、以下のようにします。
- 「Copy Utility (コピー・ユーティリティー)」パネルの「コピー元」でデータ・セット名と他のコピー・オプションを指定します。
- 「REXX member selection (REXX メンバー選択)」オプションを選択して、横のフィールドにデフォルトのアクション (P または D) を指定します。このフィールドがブランクのままである場合には P が選択されます。P は、メンバーを処理するか、またはコピーすることを示し、D は、メンバーをドロップするか、またはコピーしないことを指定をします。
- 「Use proc (プロシージャーを使用)」オプションを選択して、既存の REXX プロシージャーを指定するか、* をフィールドに入力して新規 REXX プロシージャーを作成します。このプロシージャーには条件付きテストと、関連する RETURN ストリングのうち少なくとも 1 つが含まれている必要があります。
- 必要に応じてコピー・プロセスを完了します。