AS400 IT備忘録

AS400/IBMi 便利なコマンドまとめ

投稿日:2019年3月14日 更新日:

備忘録です。追記していきますので書きかけです。

 

コマンドの一覧を表示する

SLTCMD CMD(*ALL)

これでコマンドの一覧が表示される。

だいたいDSPとかWRKとかCHKとかCRTとかの3文字で始まるので、こんな機能無いのかなと思う時、役割で調べることができる。

 

 

物理ファイルを指定して、そこから作られている論理ファイルの一覧(関連)を調べる

DSPDBR ライブラリ名/物理ファイル名

指定されたファイルに従属するファイルという名目で、複数の論理ファイルが表示される。

ちなみに論理ファイルを指定しても特段変わった情報は表示されない。

もちろんViewを指定しても論理ファイルと同様。むしろファイルタイプが論理になっている。

画面表示がデフォルトなので、このまま実行すればいい。

 

物理ファイルを指定して、その物理ファイルと関連する論理ファイルの、キーとレコード様式と表示する

DSPKEY ライブラリ名/物理ファイル名 *

正直ソースを見ればいいと思ったが、オブジェクトから参照できるので信頼性は高い。

ちなみに論理ファイルを指定すると一切表示されない。

最後の*は画面表示の意味。デフォルトは*PRINT。

 

物理ファイルを指定してフィールドの属性を調べる

DSPFMT ライブラリ名/物理ファイル名 *  ←こちらは罫線付で見やすいしカラムの詳細も見れる。オススメ。

DSPFFD ライブラリ名/物理ファイル名  ←DSPFMTと同じなので、使う必要なし。

出力されるのは、フィールド名・データタイプ(CHARとかZONEDとか)・フィールド長・バッファー長・バッファー長・フィールドの使用法・カラムの見出し。

見慣れないのはバッファ長とバッファ位置。バッファ長はフィールド長と同じ。バッファ位置は、ファイルレイアウトフォームやDSで切るときの、何桁目から何桁目のようなもの。

DSPFMTはデフォルトが*PRINT印刷なので、*を付けること。

 

RPGやCLやDDSなどのメンバー一覧を取得する

要するにソースコードの一覧を取得できる。

QRPGSRCとかQCLSRCとかあると思うが、その中に入っているメンバーの一覧だ。どんな名前のソースコードがあるのか一覧で出力できる。

DSPFD FILE(調べたいライブラリ名/調べたいソースファイル名) TYPE(*MBRLIST) OUTPUT(*OUTFILE) OUTFILE(出力ライブラリ名/任意のファイル名)

OUTFILEでファイル出力ができる。出力したいライブラリを指定して、どういう名前で出力するか決める。

参考ソースは、

DSPFD FILE(CHECKLIB/QRPGSRC) TYPE(*MBRLIST) OUTPUT(*QPRINT) OUTFILE(MYLIB/QRPGSRCLIST)

 

出力できる情報は、

検索世紀・検索日・検索時刻・ファイルライブラリ・タイプ(PF/LF)・ファイル属性・未使用・ファイル属性・システム名・補助記憶域プール・未使用・メンバーの数・メンバー・現在のレコード数・削除済みレコード数・データ空間ND検索サイズ・S/38上でのS/38ビューのソース仕様タイプ・メンバー作成世紀・メンバー作成日・最終変更世紀・最終変更日付・最終変更時刻・テキスト記述ソース仕様タイプ・最終使用世紀・最終使用日付・使用日数カウント・使用状況データリセット世紀・使用状況データリセット日付・データ空間および索引サイズ・メンバー記憶域解放

使えそうなフィールドは赤字のところくらい。

 

CL内でオブジェクトの存在チェック

コマンドでオブジェクトの存在チェックはDSPFDやDSPOBJD、プログラムならDSPPGMを使えばいいが、CLの中で存在するか確認してから処理したいとき。

CHKOBJ OBJ(ライブラリ名/ファイル名) OBJTYPE(オブジェクトの種類)

MONMSG MSGID(CPF9801) EXEC(CLコマンド)

存在しなければCPF9801のメッセージ標識が返されるので、そこにその場合の処理を書けばよい。

 

OS400のバージョンを調べる

コマンドラインから、

  1. GO LICPGM
  2. 10導入済みライセンスプログラムの表示を選択
  3. F11キーでリリースのフィールドが表示される。
  4. IBM I導入済みリリースがOSのレベル。その他プログラムも同様。

「V7R1MO」のような文字列がバージョンのこと。
V=バージョン大幅な機能の改訂
R=リリース中位の機能の改訂
M=モディフィケーション少しの機能の改訂

 

CPFなどのメッセージ一覧を眺める

メッセージとは主にCPF〇〇〇〇しか使わない感じだが、実際には死ぬほどある。

その一覧を照会するには、

WRKMSGF MSGF(*ALL)

で一覧照会できる。ただメッセージはメッセージファイルという中にあり、このコマンドでは、そのファイルの一覧が照会されるだけ。

そのCPFのメッセージは、QCPFMSGファイルにあるが、CPF以外にも膨大にあるので探すのは実に大変。

噂のSQLのメッセージもこの中にある。ファイルはQSQLMSG。SQL〇〇〇〇というよく聞くメッセージも含まれている。

というか、ここからメッセージを探しに行くことなんかあるのだろうか。

 

CPFなどのメッセージを番号指定で個別に調べる

AS400の場合はCLやバッチでエラーをぶっこいてメッセージが表示されることはあっても、自分からエラー番号を指定してその内容を見たいということはあまりないだろうが、そんなコマンド。

DSPMSGD CPF〇〇〇〇

表示された画面で1を選んで実行キーを押せば、メッセージ内容が確認できる。

 

 

オブジェクトの一覧を画面表示したり、ファイルに出力する

ライブラリにあるオブジェクトの一覧を表示するコマンド

 

DSPOBJD OBJ(HOGELIB/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(HOGELIB/OBJLST)

こんな感じ。HOGELIBの全てのオブジェクトの一覧を、HOGELIBのなかにOBJLSTというファイルで作成する。

ちなみに、OBJTYPEを(*QRYDFN)にすればQRY定義だけを絞って取り出すこともできる。

 

出力のデフォルトは画面出力なので、画面表示をしたいだけなら下記だけでOK。

DSPOBJD OBJ(HOGELIB/*ALL) OBJTYPE(*ALL)

 

出力できる情報は、

表示世紀・表示日付・表示時刻・ライブラリオブジェクトオブジェクトタイプ・オブジェクトの属性・記憶域解放・オブジェクトサイズ・テキスト記述・オブジェクトのロック・損傷オブジェクト・作成世紀・生成日付・作成時刻・オブジェクト所有者・保管世紀・保管日付・保管時刻・保管コマンド・保管されたサイズ・開始スロット・保管装置・保管ボリューム・継続ボリューム・復元世紀・復元日付・復元時刻・ソースファイル名・ソースファイルライブラリ・ソースファイルメンバ・ソース変更世紀・ソース変更日付・ソース変更時刻・コンパイラ名・コンパイラレベル・オブジェクトレベル・ユーザ変更・LICPGM名・LICPGMレベル・PTF番号・APARID・順序番号・変更世紀・変更日付・変更時刻・保管ファイル・保管ファイルのライブラリ・ASP番号・ファイルラベル・PTFID・システム名・作成ユーザー・作成したシステム・使用状況の更新・最終使用世紀・最終使用日付・使用日数カウント・リセット世紀・リセット時刻・オブジェクト定義域・システムバージョン・コンパイラバージョン・LICPGMバージョン・圧縮状況・オーバーフロー・API変更可能・APIによる変更・ユーザ定義の属性・保管活動世紀・保管活動日付・保管活動時刻・オブジェクト監査値・装置中のオブジェクトサイズ・装置あたりのバイト数・一次グループ・大順序番号・ディジタル署名・現在ジャーナル処理中・ジャーナル名・ジャーナルライブラリ・ジャーナルイメージ・除外ジャーナル項目・ジャーナル世紀・ジャーナル日付・ジャーナル時刻・保管サイズ単位数・保管サイズ乗数・オブジェクトASP番号・ライブラリASP番号・オブジェクトASP装置名・ライブラリASP装置名・トラステッドソースによる署名済・複数署名・関連スペースサイズ・最適スペース調整・オブジェクトASPグループ名・ライブラリASPグループ名・適用する開始ジャーナル・レシーバー名・開始ジャーナルレシーバーライブラリ・開始レシーバーライブラリASP装置・開始レシーバーライブラリASPグループ・リモートジャーナルフィルター

 

これだけ。見た感じプログラムで使えそうなデータは赤字の4つくらい。

ファイル名は指定できるけど、レコード様式はOLIDOBJDで決まっているみたい。

スポンサーリンク




スポンサーリンク




-AS400, IT備忘録

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

Laravel SQLでWhereをIF文で追加したり外したりしたい

LaravelでSQL文を直で打ちたいときは、コントローラーの冒頭で

を宣言し、   こんな感じでSQL文を書く。 [cra …

Atomの初期設定 備忘録

Atomの初期設定を覚え書きしておきます。内容はドットインストール様の抜粋です。   開くと表示されている、Welcome/Welcome Guide/Telementry Consentは …

【ExcelVBA】シフト文字を含めてバイト数をカウントする

AS400にエクセルに入力したデータをアップロードする仕組みがあるのだが、もちろん10バイトしか入らないカラムだとすると、エクセル上も10バイトしか入れてはいけない。     しか …

Windows ファイルをゴミ箱に入れずに完全に消去する

やり方 ファイルを選択して、「Shiftキー」を押しながら「Deleteキー」を押す。これだけ。   使い道 システムエンジニアをやっているせいか、別の社員のパソコンにリモートで入って作業を …

WordPress リカバリー まっさらにして戻ってこれたぜ

先日からブログをやっているが、投稿を重ねれば重ねるほど、ぶっ壊れたときに復旧できるのかが心配になってきた。さくらVPSは、サーバのSSDがぶっ壊れたがデータは知らんという事例があるようだ。ちゃんとバッ …