一部のメンバーをある PDS から別の PDS にコピーしようとしています。1 つの PDS に 500 のメンバーがあるとします。最初の 100 を 2 番目の PDS に、次の 100 を 3 番目の PDS に、というように移動しようとしています。別の PDS にコピーされたメンバーも、ソース PDS から削除する必要があります。
JCLを使用してこれを行うことは可能ですか? IEBGENER を見ていますが、名前を指定してメンバーを直接コピーできることがわかりました。
これは、いくつかのジョブステップで実行できます。概要として:
MEMBERSリストを選択してREPRO/DELETEコマンドにフォーマットするようにICETOOLを設定することは、これまでで最も難しいステップです。実際、すべてをまっすぐにするために、ICETOOLのいくつかのステップを連鎖させる必要があるかもしれません。ICETOOLの使用経験が豊富でない限り、これを理解するのに非常に長い時間がかかる可能性があります。これは、 IBM DFSORTプログラミング・ガイド(ICETOOLはDFSORTの単なるBATCHフロントエンドです)へのリンクであり 、何に反対しているのかを理解するのに役立ちます。
別のアプローチを提案します。ICETOOLステップを置き換えるためにREXXプロシージャーを作成してみてください。LISTDS出力をトラップし、それを適切なIDCAMS REPRO / DELETEコマンドにフォーマットすることは、はるかに簡単なプロセスです。
REXXは、ほぼすべてのIBMメインフレームで使用できるため、アクセスに問題はありません。
これについてさらにサポートが必要な場合は、データセットの命名規則についてもう少し詳しく説明してください。特に、出力されたPDS名。正確な名前は必要ありません。正確な名前は、どのように構成されているかだけです。たとえば、次のようになりますか?
ここで、最初の100個のメンバーがFILE001にコピーされ、次の100個がFILE002などにコピーされます。これにより、ファイルコピーユーティリティを一般化する方法に違いが生じる可能性があります。また、入力PDSが使い果たされるまで、または停止制限があるまで、100のブロックでコピーを続けますか?
「SAS」と呼ばれる製品を使用している場合、選択したメンバーをある PDS から別の PDS にコピーするのは非常に簡単です。
DATA PDS;
FILENAME OLD 'A*.B*.C*' DISP=SHR;
FILENAME NEW 'A*.B*.D*' DISP=OLD;
PROC PDSCOPY INDD=OLD OUTDD=NEW ALIASMATCH=BOTH
SHAREINPUT;
SELECT AJ:;
RUN;
注: AJ で始まるすべてのメンバーは、古いデータセットから新しいデータセットにコピーされます。