3.2.6 プロシジャ内のEXEC要素の修正方法
プロシジャ内のEXEC要素の属性を修正したい場合,プロシジャを呼び出すためのCALL要素内にREPLACE要素,REPLACESTEP要素と修正するEXEC要素の属性および値を記述する。REPLACESTEP要素のNAME属性には,修正したいプロシジャ内のジョブステップ名を記述する。属性の追加の場合も同じように記述する。ただし,PGM属性は修正・追加できない。
この修正は,プロシジャ内の複数のEXEC要素および各EXEC要素に対して複数の属性の修正を指定できる。
EXEC要素の属性の置き換えまたは削除の指定方法を次に示す。
-
プロシジャ内のEXEC要素の属性をある値に置き換える場合
<REPLACE > [<REPLACESTEP NAME="修正するプロシジャステップ名">] <EXEC 置き換えたい属性="値" /> [</REPLACESTEP>] </REPLACE>
-
プロシジャ内のEXEC要素の属性を無効にしたい場合
<REPLACE > [<REPLACESTEP NAME="修正するプロシジャステップ名">] <EXEC 無効にしたい属性="" /> [</REPLACESTEP>] </REPLACE>
EXEC要素内のパラメータをREPLACE要素で修正する場合,プロシジャ内のジョブステップ名を指定するREPLACESTEP要素を省略すると,プロシジャ内の先頭のジョブステップを修正する。
プロシジャをREPLACE要素で修正する方法を次に示す。
(1) 先頭ステップだけを修正する方法
- カタログドプロシジャの例(TEST2.xml)
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.3" os="unix"> <PROC NAME="TEST2"> <STEP> <EXEC PGM="PGMNAME" PARM="123" COND="0,NE" /> </STEP> </PROC> </HitachiBatchJobExec>
- カタログドプロシジャTEST2を呼び出すジョブ定義XML
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.3" os="unix"> <JOB NAME="CALLTEST2" > <STEP> <CALL NAME="TEST2" > <REPLACE> <EXEC PARM="456"/> </REPLACE> </CALL> </STEP> </JOB> </HitachiBatchJobExec>
この例では,カタログドプロシジャ内の指定は次に示すとおりである。
-
EXEC要素のPGM属性は"PGMNAME"
-
EXEC要素のPARM属性は"123"
-
EXEC要素のCOND属性は"0,NE"
しかし,プロシジャを呼び出すときにREPLACE要素でPARM属性だけを置き換える。プロシジャ中の先頭ステップに対する修正であるため,REPLACESTEP要素を記述する必要はない。COND属性は指定をしていないため,最初に指定した"0,NE"が有効となり,次に示す値で実行する。
-
EXEC要素のPGM属性は"PGMNAME"
-
EXEC要素のPARM属性は"456"
-
EXEC要素のCOND属性は"0,NE"
(2) 先頭ステップ以外のステップを修正する方法
- カタログドプロシジャの例(TEST3.xml)
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.3" os="unix"> <PROC NAME="TEST3"> <STEP NAME="STEP1"> <EXEC PGM="PGMNAME" PARM="123" COND="0,NE" /> </STEP> <STEP NAME="STEP2"> <EXEC PGM="PGMNAME" PARM="456" COND="8,LE" /> </STEP> </PROC> </HitachiBatchJobExec>
- カタログドプロシジャTEST3を呼び出すジョブ定義XML
<?xml version="1.0" encoding="Shift_JIS" ?> <HitachiBatchJobExec version="1.3" os="unix"> <JOB NAME="CALLTEST3" > <STEP> <CALL NAME="TEST3" > <REPLACE> <REPLACESTEP NAME="STEP2"> <EXEC PARM="789"/> </REPLACESTEP> </REPLACE> </CALL> </STEP> </JOB> </HitachiBatchJobExec>
この例では,カタログドプロシジャ内の指定は次に示すとおりである。
-
STEP1のEXEC要素のPGM属性は"PGMNAME",PARM属性は"123",COND属性は"0,NE"
-
STEP2のEXEC要素のPGM属性は"PGMNAME",PARM属性は"456",COND属性は"8,LE"
しかし,プロシジャを呼び出すときにREPLACE要素とREPLACESTEP要素でSTEP2のPARM属性だけを置き換える。COND属性は指定をしていないため,最初に指定した"8,LE"が有効となり,次に示す値で実行する。
-
STEP1のEXEC要素のPGM属性は"PGMNAME",PARM属性は"123",COND属性は"0,NE"
-
STEP2のEXEC要素のPGM属性は"PGMNAME",PARM属性は"789",COND属性は"8,LE"