AS400(system-i)のCLの使い方
CLはウィンドウズでいうバッチのようなもので、RPGプログラムやCobolなどを呼び出すことができます。
記述方法
CLは、PGMで始まり、ENDPGMで終わります。
PGM
・・・
ENDPGM
CLに引数を渡す方法
CLには引数を渡して実行することができます。これはウィンドウズのバッチと同じです。
記述方法は以下のようにします。
PGM PARM(&ID &NO &RC)
IF文の記述方法
CLでは、変数は&IDというように&から始まります。
IF文の条件式にはCONDを使います。
IF COND(&ID *EQ 0) THEN (GOTO CMDLBL(ABC))
EQは、=です。&ID = 0なら、THEN以降を実行します。NEは、!=です。
複数コマンド実行させたい場合は以下のようにDOを記述します。
IF COND(&ID *EQ 0) THEN(DO) ・・・ ・・・ ENDDO
変数定義
変数定義には、DCLを使います。TYPEには、CHAR、DECの3種類あります。
以下宣言例です。
DCL VAR(&ID) TYPE(*CHAR) LEN(10) DCL VAR(&YYMM) TYPE(*DEC) LEN(6 0)
*DECのときはLEN(6 0)としていますが、これは6桁で、小数点0桁を意味します。
CHGVARを使うと変数の値を変更することができます。以下は&IDを100にする例です。
CHGVAR VAR(&ID) VALUE('100')
コメント
CLのコメントは/~/を使います。複数行コメントすることができます。
ラベル
GOTO CMDLBL(ABC)
とすることで、ABCというラベルに遷移することができます。
例えば、ABCというラベルに遷移し、プログラムを終了させる場合以下のように記述します。
ABC: ENDPGM
ネットワーク属性を検索するコマンドで、RTVNETAコマンドがあります。
RTVNETA SYSTEM(&SS)
上記のように記述すると、&SSにシステム名が設定されます。
ファイル(テーブル)関連
ファイル(テーブル)に対してなにかしたい場合、OVRDBF,OPNQRYFコマンドを使います。この辺は作法だと思います。
OVRDBF FILE(テーブル名) SHARE(*YES) OPNQRYF FILE((テーブル名)) QLYSLT('COL = ""'*CAT &NO *CAT'""') ・・・ ・・・ CLOF OPNID(テーブル名) /* ファイルクローズ */ DLTOVR
QRYSLT内でテーブルが100万件あるとすると、条件で絞り込んで件数を指定することができます。
また、QLYSLT内で、CL変数はシングルクォート、または、ダブルクォートで囲む場合は*CAT演算子で囲む必要があります。
QLYSLT内で絞り込み条件が複数の場合は以下のように、&で条件をつなげます。
QLYST('COL = ""' *CAT &NO *CAT '"" & FLG *NE ""1""')
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント