読者です 読者をやめる 読者になる 読者になる

タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

CL

【AS400】RPGLEからCLコマンドを実行(ex.DLYJOB)

RPGプログラムからDLYコマンドを実行させたいケースがありましたので、まとめます。 下記のサイトを参考にさせていただきました。 Capturing QCMDEXC error codes | RPGPGM.COM - From AS400 to IBM i RPGプログラムからDLYJOBを実行するサンプル 単純にプロ…

【AS400】特定のオブジェクトを参照するプログラムの調査方法

前回では、フィールド等の使用状況調査についてを書きましたが、今回は、特定のオブジェクト(テーブルやプログラム)を参照するプログラムを確認する方法を書きます。 あるプログラムが、どのプログラムで呼び出されているか? あるテーブルが、どのプログ…

【AS400】複数ソースプログラムでのフィールド利用調査方法

ソースプログラム内で、このフィールドがどこで使われているかな?と調査するケースがよくあるかと思います。 IDEであれば、プロジェクト内でキーワード検索をかければ一発なのですが、P-COMMオンリーでは厳しいものがありますね。 しかしながら、PDMのオプ…

【AS400】CL-システム値の取り出し

CLからシステム値を取得する方法を書いてみました。 日付、時間であれば、RPGからだと、便利な組込関数の%DATE()や%TIME()でサクッと取り出せるのですが、それをCL上でやるにはどうするかという話になります。 RPGでの日付、時間の取得方法 C EVAL W@DAT = %…

【AS400】修正したはずのプログラムが正しく反映されない?

GitなどのVersion管理システム(IBMならば、Team Concertでしょうか)で運用していれば、表題のような問題は発生しないかもしれませんが、 個人的にちょくちょくこういうことがありました(本来あってはいけません)。 修正したはずのプログラムが反映されて…

【AS400】CLでの例外処理

前回のRPG例外処理に続き、今度はCLでの例外処理です。 方法は、MONMSG命令により実行プログラムが例外扱いと判定するので、その際に吐き出されるメッセージIDをキャッチし、その例外処理を実装する、そんな感じでしょうか。 実際に、サンプルを見ます。 下…

【AS400】CL-文字変数の一部取り出し

概要 サブストリング組み込み関数(%SST)を使用します。 サンプルソース DCL VAR(&YYMD) TYPE(*CHAR) LEN(8) VALUE('20081231') DCL VAR(&MMMM) TYPE(*CHAR) LEN(2) DCL VAR(&DDDD) TYPE(*CHAR) LEN(2) CHGVAR VAR(&MMMM) VALUE(%SST(&YYMD 5 2)) CHGVAR VAR(…

【AS400】CL-文字ストリング式

概要 文字ストリング式とは、2つの文字列を連結(結合)する命令です。操作対象の変数は、いずれも文字ストリングでなければなりません。 命令の種類 (1) *CAT演算子 (連結、記号||) 普通に2つの文字列を連結します。 (2) *BCAT演算子(ブランク挿入連結、…

【AS400】CL-変数定義と演算

概要 CL言語と言っても、パラメータを制御したり、カウンターなどを演算したり、必要に応じてプログラム制御を行う必要があります。ここでは、変数の定義方法と演算方法を記載しておきたいと思います。 CL変数の定義 文字変数(*CHAR) 最大桁数 9999 省略時の…

【AS400】CL-SNDPGMMSG(コマンドラインへ文字列出力)

概要 CLプログラムを実行した場合、WindowsのDOS窓のように変数の値や計算の結果などを「コマンドラインへ表示して確認したい!」となるケースがあります。その場合、SNDPGMMSGコマンドを使って実現します。メッセージタイプ(MSGTYPE)は、出力結果のため「完…

【AS400】ソースファイルを物理ファイルとして読む方法

概要 RPGからソースファイルのメンバを参照することも可能です。ソースの行を更新することもできます(あまり意味がないかな!?)。 ソースファイルをRPGで指定するためには、CLで事前に参照したいメンバを別名で指定しておく必要あります。(OVRDBF) サンプ…