3.2.7 プロシジャ内のDD要素の修正方法
プロシジャ内のDD要素の修正では次に示すことができる。
-
属性値の変更
-
属性の追加
-
属性の削除
-
DD要素の無効化
プロシジャ内のDD要素の属性を修正する場合は,プロシジャを呼び出すためのCALL要素に続けて,修正情報を持つREPLACE要素内にDD要素を定義する。このREPLACE要素には,修正したいプロシジャ内のジョブステップ名(プロシジャステップ名)をREPLACESTEPとして定義し,実際に修正の対象となるDD要素の名前(NAME属性),修正する属性,および属性値を記述する。また,属性値を無効にする修正の場合は,値を""で指定する。この修正は,EXEC要素の修正と同じく,プロシジャ内の複数のDD要素および各DD要素に対して複数の属性の修正が指定できる。
プロシジャ中のDD要素は,そのプロシジャが呼び出されたとき,DD要素の修正がすべて完了した時点で排他的関係のチェックをする。
なお,NAME属性に対して属性値の変更を行うことはできない。
(1) DD要素を修正するための指定方法
(a) 属性値の変更
DD要素の属性値を変更するための指定方法を次に示す。
プロシジャを呼び出したCALL要素に続いて,修正情報を持つREPLACE要素内にDD要素を指定する。
<REPLACE > [<REPLACESTEP NAME="修正するプロシジャステップ名">] <DD NAME="修正したいDD要素のDD名" 修正する属性="修正する属性値" /> [</REPLACESTEP>] </REPLACE>
プロシジャステップを省略した場合,先頭のプロシジャステップが仮定される。
(b) 属性の追加
DD要素の属性を追加するための指定方法を次に示す。
指定方法は「属性値の変更」と同じだが,プロシジャ内のDD要素に指定していない属性を,修正するDD要素に定義することによって追加となる。
<REPLACE > [<REPLACESTEP NAME="修正するプロシジャステップ名">] <DD NAME="修正したいDD要素のDD名" 追加する属性="追加する属性値" /> [</REPLACESTEP>] </REPLACE>
この場合,追加した属性と排他的な関係の属性をプロシジャ内のDD要素に指定していると,追加処理後に背反のチェックをする。
(c) 属性の削除
DD要素の属性を削除するための指定方法を次に示す。
修正する属性の値を空文字列(="")にすることによって,プロシジャ内のDD要素に指定している属性を削除できる。
<REPLACE > [<REPLACESTEP NAME="削除するプロシジャステップ名">] <DD NAME="削除したいDD要素のDD名" 削除する属性="" /> [</REPLACESTEP>] </REPLACE>
(2) プロシジャ内のDD要素を無効化にする場合
DD要素を無効化する場合は,TYPE属性にDUMMYを指定する。ダミーファイルに変更することで,該当するDD要素を無効化できる。なお,無効化されるDD要素にTYPE=DUMMYと背反する属性値が指定されている場合も,TYPE属性値以外の属性値はすべて無視される。
(3) 連結したDD要素の修正
プロシジャ内で連結したDD要素が定義されている場合,その連結を1つのDD要素で置き換えようとすると最初のDD要素だけ置き換わる。連結している残りのDD要素を置き換える場合には,各DD要素に対して,それぞれ置き換え用のDD要素が必要である。置き換えを指定するDD要素はプロシジャ中の連結DD要素と同じ順序とすること。
また,連結DD要素のどれかを変更したくない場合は,置き換えを指定する対応DD要素は,NAME属性だけを指定する。
- カタログドプロシジャの例(TEST4.xml)
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.3" os="unix"> <PROC NAME="TEST4"> <STEP NAME="STEP00"> <EXEC PGM="PGMNAME" PARM="123" /> <DD NAME="DD00" DSN="A" /> <DD NAME="DD00" DSN="B" /> <DD NAME="DD00" DSN="C" /> <DD NAME="DD00" DSN="D" /> </STEP> </PROC> </HitachiBatchJobExec>
- カタログドプロシジャTEST4を呼び出すジョブ定義XML
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.3" os="unix"> <JOB NAME="CALLTEST4" > <STEP NAME="PROCCALL"> <CALL NAME="TEST4" > <REPLACE> <DD NAME="DD00" /> <DD NAME="DD00" DSN="X" /> <DD NAME="DD00" /> <DD NAME="DD00" DSN="Y" /> </REPLACE> </CALL> </STEP> </JOB> </HitachiBatchJobExec>
- 修正後のDD要素
<DD NAME="DD00" DSN="A" /> <DD NAME="DD00" DSN="X" /> ;修正された <DD NAME="DD00" DSN="C" /> <DD NAME="DD00" DSN="Y" /> ;修正された
プロシジャ内に定義されている連結されたDD要素のうち,2番目と4番目のDSN属性をそれぞれ"X","Y"に修正して実行することを示している。1番目と3番目のDSN属性は元の"A","C"である。