カラム73以降のJCLデータに、ヌルやブランク、数値等がある場合はエラーといった検証は可能ですか?
Release : 12.0
Component : JCLCheck Workload Automation (JCLCheck Workload Automation)
はい。検証可能です。
カラム73以降の文字列は、ユーザーEXITやREXXインターフェースにて、80バイトJCLデータを取得参照することで検証できます。
[ DDEXIT(CAZ1XDD)の場合 ]
JCLCheckのDDEXITは、JCLCheckによるそれぞれのDD検証完了後に制御がわたります。
DDEXITでは、80バイトJCLステートメントは以下のフィールドを参照することで取得できます。
・DDEXITに制御がわたった際の対象ステートメントの先頭アドレスが、JCL検証時のポインター情報を保持する$JCLSPB制御ブロック内「SPBRJB」に設定されます。
SPBRJB DS A ADDR OF 1ST RAW JCL BLOCK
・80バイトJCLデータは$JCLRJB制御ブロック内「RJBDATA」に展開されます。
RJBDATA DS CL80 STORAGE FOR A SINGLE CARD
・CAZ1XDDでDDステートメントの80バイトJCLデータ「RJBDATA」にアクセスするには、$JCLXJB制御ブロック内「SPBRJB」のアドレスを、$JCLRJB制御ブロックの「RJBDSECT DSECT」へ関連付けることで可能となります。
R4で関連付けする例
USING RJBDSECT,R4
L R4,SPBRJB
・$JCLXJB制御ブロック内「SPBRJB」はDDステートメントで最初の行です。
同一DD内の次ステートメントのアドレスは、$JCLRJB制御ブロックの「RJBRJB」が保持しており、同一DD内の最終ステートメント以降のアドレスは「0」が設定されます。
RJBRJB DS A PTR TO NEXT RJB
「RJBRJB」のアドレスが「0」ではないかぎり、同一DDステートメントのJCLステートメントは継続しています。
[ REXXインターフェースの場合 ]
JCLCheckでは、お客様環境で独自の検証を可能とするために、アセンブラでコードする各種EXITの他、REXXによるインターフェースについても提供しております。
REXXインターフェースについては以下マニュアル文書をご参照ください。
REXX for JCLCheck and JCLNeat
またREXXインターフェース概要について以下日本語文書についてもご参照ください。
REXXによるユーザー独自の検証について
カラム73以降の文字列検証では以下のREXX変数が使用可能です。
Prefix. CAZ2OPTN(CAZ1REX2)をお客様のREXXライブラリにコピーし、カラム73以降の文字列検証に使用可能であるREXX変数を参照し、お客様の要件に沿った処理をコードしてください。
RAW_DATA_PROCESSING: 内
$CA.RSTYPE -> データタイプ 「$CA.RSTYPE='DD'」の場合、DDステートメントとなります。
$CA.RCOUNT -> 毎ステートメントの行数
$CA.RECORD.n -> 80バイトJCLデータ (nはバイト)
例:$CA.RECORD.74で74バイト目のデータ
[ EDCHEK実行時の80バイトJCLデータを取得可能とするオプション ]
「!JCK」EDCHEK実行で、ユーザーEXITやREXXインターフェースにてカラム73以降の文字列を検証するのに80バイトJCLデータを取得参照するには、「KEEP7380」オプションの指定が必要です。
「KEEP7380」オプション指定によるメッセージ表示差異については以下文書をご参照ください。