3.20.1 JP1/Scriptを実行する方法
バッチジョブ実行システムでJP1/Scriptを実行するためには,EXEC要素に必要な情報を定義する。
- 〈この項の構成〉
(1) EXEC要素
バッチジョブ実行システムでJP1/Scriptを実行する場合には,次に示す情報をジョブ定義XMLファイルに指定する。バッチジョブ実行システムは,これらの情報を指定してsptxeプログラムを呼び出し,JP1/Scriptを実行する。
要素 |
属性 |
指定する値 |
最大長 |
説明 |
---|---|---|---|---|
EXEC |
PGM |
スクリプトファイル名(必須) |
1,023文字 |
JP1/Scriptのスクリプトファイル名を指定する。※ 例: PGM="/home/user/script/echo" |
LANG |
"JP1Script"(必須) |
9文字 |
実行するプログラムがJP1/Scriptであることを示す。常に"JP1Script"を指定する。 例: LANG="JP1Script" |
|
PARM |
実行するプログラムに渡す引数 |
958文字 |
JP1/Scriptに渡す引数としてsptxeの位置変数とオプションを指定する。位置変数とオプションは,空白で区切って指定する。 例: PARM="Hello -SPT:SPXLV=3" |
注※ 環境変数PATHにスクリプトファイルが格納されているディレクトリを設定した場合,スクリプトファイル名だけの指定ができる。また,STEPLIB要素でスクリプトファイルが格納されているディレクトリを指定した場合,スクリプトファイル名だけの指定ができる。
指定方法を次に示す。
<EXEC PGM="<スクリプトファイル名>" LANG="JP1Script" PARM="<位置変数> <sptxeのオプション>" />
上記のXML定義ファイルを指定した場合,バッチジョブ実行システムは次のようにsptxeコマンドを実行する。sptxeのパスは次のパスで固定である。スクリプトファイル名を相対パスで記述した場合,カレントディレクトリからの相対パスとなる。
/opt/jp1script/bin/sptxe <スクリプトファイル名> <位置変数> <sptxeのオプション>
JP1/Scriptの実行例を次に示す。
<EXEC PGM="/home/user/script/echo" LANG="JP1Script" PARM="Hello -SPT:SPXLV=3" />
上記のEXEC要素を指定した場合,次のコマンドライン文字列が生成される。
/opt/jp1script/bin/sptxe /home/user/script/echo Hello -SPT:SPXLV=3
スクリプトファイル名に拡張子を省略した場合,拡張子として".SPT"が仮定される。
(2) 注意事項
(a) JP1/ScriptからCOBOLプログラムを実行する場合
バッチジョブ実行システムからCOBOLプログラムを実行する場合と比べて,バッチジョブ実行システムからJP1/Scriptを実行し,JP1/ScriptからCOBOLプログラムを実行する場合,次の点が異なる。
-
DD要素で割り当てたファイルのパスが環境変数CBL_<DD名>に格納されない。DDN_<DD名>に格納される。COBOLプログラムがCBL_<DD名>にファイルのパスが格納されていることを期待している場合,DD要素のRENAME属性でファイルのパスが格納される環境変数名をCBL_<DD>名に変更するか,JP1/Script内で環境変数CBL_<DD名>に環境変数DDN_<DD名>の値をコピーすること。
-
PDEファイル形式2の帳票を作成できない。PDEファイル形式2の帳票を作成したい場合,バッチジョブ実行システムからCOBOLプログラムを実行すること。
-
SYSOUTデータファイルに追加して書き込みができない。SYSOUTデータファイルに追加して書き込みたい場合,バッチジョブ実行システムからCOBOLプログラムを実行すること。