データセット(メンバー)を編集して印刷する(IEBPTPCH)
順次データセットあるいは区分データセットのメンバーはIEBPTPCHユーティリティで印刷することができます。レコードの内容をべたで出力すればいいのならIEBGENERでSYSOUTにコピーする方法がお手軽ですが、PTPCHを使えば、タイトル行を付けたり、データ中のバイナリー部分を16進文字でダンプする、パック10進数をゾーン10進文字に変換したりの簡易編集ができます。
区分データセットのメンバーを印刷する
// JOB Statement //********************************************************************* //* Sample JCL - IEBPTPCH //* ===================== //********************************************************************* //IEBPTPCH EXEC PGM=IEBPTPCH //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=MY.JCL //SYSUT2 DD SYSOUT=* //SYSIN DD * PRINT TYPORG=PO,MAXNAME=10,MAXFLDS=10 TITLE ITEM=('----+----1----+----2----+----3----+----4',1), ITEM=('----+----5----+----6----+----7----+----8',41) MEMBER NAME=DATA1 RECORD FIELD=(80) MEMBER NAME=IEBGENER RECORD FIELD=(80) // //
指定したメンバーの内容をそのまま出力します。MEMBERパラメーターで出力するメンバーを、RECORDパラメーターでレコード長を指定します。複数のメンバーを印刷する場合、MEMBERとRECORDパラメーターの対を印刷するメンバー数分定義します。
区分データセットのメンバー内容を編集して印刷する
// JOB Statement //********************************************************************* //* Sample JCL - IEBPTPCH //* ===================== //********************************************************************* //IEBPTPCH EXEC PGM=IEBPTPCH //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=MY.DATA //SYSUT2 DD SYSOUT=* //SYSIN DD * PRINT TYPORG=PO,MAXNAME=10,MAXFLDS=10 TITLE ITEM=('PRINT OUR APPLICATION PROGRAM DATA') TITLE ITEM=('NAME AMOUNT(PACK) ADDRESS'), ITEM=('DATA/HEX',46) MEMBER NAME=DATA1 RECORD FIELD=(10,1,,1),FIELD=(6,15,PZ,12), FIELD=(20,30,,25),FIELD=(20,60,XE,46) // //
指定したメンバーの内容をフィールドの内容によって編集して印刷します。RECORDパラメーターで編集するフィールドを4つ指定します。最初のFIELDパラメーターはレコードの先頭から10バイトをリストの1桁目から、2番目のFIELDパラメーターはレコードの15文字目から6バイトのパック10進数を編集してリストの12桁目から、3番目のFIELDパラメーターはレコードの30文字目から20バイトをリストの25桁目から、4番目のFIELDパラメーターはレコードの60文字目から20バイトを16進文字に編集してリストの46桁目から印刷します。
順次データセットの内容を印刷する
// JOB Statement //********************************************************************* //* Sample JCL - IEBPTPCH //* ===================== //********************************************************************* //IEBPTPCH EXEC PGM=IEBPTPCH //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=MY.TESTDATA //SYSUT2 DD SYSOUT=* //SYSIN DD * PRINT TYPORG=PS,MAXFLDS=10 TITLE ITEM=('PRINT OUR APPLICATION PROGRAM DATA') TITLE ITEM=('NAME AMOUNT(PACK) ADDRESS'), ITEM=('DATA/HEX',46) RECORD FIELD=(10,1,,1),FIELD=(6,15,PZ,12), FIELD=(20,30,,25),FIELD=(20,60,XE,46) // //
同じ編集方法で区分データセットのメンバーではなく、順次データセットの印刷例です。PRINT文のTYPORGがPS、MAXNAMEパラメーターやMEMBER文を指定しない、ことを除けばPDSメンバーの印刷と同じです。
MVS3.8で実行した印刷例を以下に示します。最新のMVSでも同じです。
IEBPTPCH JCLサンプルの実行結果リスト