プログラム学習室 http://studyhallweb.com/

AS/400 の操作に関するメモ

通信関係

WRKACTJOB
現在実行中のジョブ一覧を表示する

WRKOUTQ (出力待ち行列)
OUTQ 一覧を表示する

WRKCFGSTS *CTL AP*
パススルーに関する情報を見る

WRKCFGSTS *LIN *ELAN
通信ラインに関する情報を見る

WRKCFGSTS *CTL *ALL
接続されている端末に関する情報を見る

STRTCP, ENDTCP
TCPを上げ下げする

端末のOff/On
WRKCFGSTS *CTL *ALL で各端末が表示されるので、接続を切る端末を 2.オフに構成変更 -> 1.オンに構成変更 する
これで切れないときはWRKACTJOBで 4.終了 を入力し F4で終了方法 *IMMED を指定して実行

ファイル操作

ファイルの内容を見る
DSPF (ファイル名)

定義せずにキュリーを使ってファイルの内容を見る
RUNQRY *N (ファイル名)

ファイルのメンバーを消す
CLRPFM … 指定メンバー内のレコードを一括して消す
RMVM … メンバーそのものを削除する

ファイルの再構築
RGZPFM

ファイルのメンバー一覧
DSPFD FILE(SRCLIB/SRCFILE) TYPE(*MBRLIST) OUTPUT(*OUTFILE) OUTFILE(OUTLIB/WRKOUTF)

ファイル(SRCFILE)のメンバー一覧を別のファイル(WRKOUTF)に書き出す
WRKOUTFは存在しなければ自動で作成される
ファイルメンバの更新日一覧
DSPFD FILE(DATALIB/*ALL) TYPE(*MBR) OUTPUT(*OUTFILE) FILEATR(*PF) OUTFILE(DATALIB/WRKOUTF)

MBFILE ファイル
MBNAME メンバー
MBCHGD 最終変更日付:年/月/日
MBCHGT 最終変更時刻:時/分/秒
MBTXT テキスト ' 記述 '

ファイル情報の一覧
DSPOBJD OBJ(DATALIB/*ALL) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(DATALIB/WRKOUTF)

WRKOUTFのフィールド名(抜粋)
ODOBNM オブジェクト名
ODOBTP オブジェクトタイプ
ODOBAT オブジェクトの属性
ODOBTX テキスト記述
ODLDAT 更新日付  ※要注意、この日付はDSPFDでみたメンバの更新日付と異なる
ODLTIM 更新時刻
ODUDAT 最終使用日付
ODUCNT 使用日数カウント
※日付はMMDDYYの並びなので注意すること

統合ファイルシステム(IFS)の操作
WRKLNK

プログラム開発

プログラム用のメニューを表示する
STRPDM

ソースファイルの作成
CRTSRCPF

DDSファイルをコンパイルして物理ファイルを作成する
CRTPF

RPGのコンパイル
CRTBNDRPG

CLのコンパイル
CRTCLPGM

C++のコンパイル
CRTCPPMOD

統合ファイルシステムの領域(ROOT領域)にソースファイルがあるとき
CRTCPPMOD SRCSTMF('/home/xxx/xxx.cpp')

コンパイルログの表示
WORJOBの「4.スプールファイルの処理」でコンパイルのログが見れる

デバックの仕方
  1. プログラムのコンパイル時にオプション DBGVIEW  を *SOURCE に設定
  2. コマンドラインで、STRDBGと入力しF4でデバックするプログラムを指定し、パラメータにUPDPROD *YES
  3. 画面にソースが表示されるので、F6でフレークポイントを指定、F12で画面を抜ける
  4. デバックするプログラムを実行するとブレークポイントで止まる
  5. ファンクションキーにステップイン、インスタントウォッチ等あるので利用する
  6. デバックを終了するには、コマンドラインでENDDBGを実行する

そのプログラムがどのプログラムから呼び出されているか調べる方法
プログラム名をソースコードから検索して調べる
検索の方法は、
  1. STRPDMのメンバーの処理で、オプション「25.ストリングの検索」を指定する
  2. 全メンバーを対象とするため「F13= 反復」を選ぶ
  3. 実行するとストリング検索画面になるので、検索する文字を入力し実行する
  4. 続けて検索するにはF16(Shift + F4)を押す

ライブラリー操作

ADDLIBLE
ライブラリーリストに指定ライブラリーを追加

RMVLIBLE
ライブラリーリストから指定ライブラリーを削除

画面操作

前面キー + 次ページ
コンソールの切り替え

F19 (Shift F7) / F20 (Shift F8)
画面の左/右移動

ファイル送受信

AS/400間にファイルを送受信する方法として、SNDNETF/RCVNETFとFTPがある
SNDNETF/RCVNETFはファイルの中身を送受信するのみで、ファイルの新規作成はしない
すなわち、受け側にファイルがないと送信できない
FTPはファイルのメンバー単位でないと送受信できないようだ

SNDNETF/RCVNETFによるファイルの送受信

SNDNETFは受信側にファイルを新規作成しないらしい。
未知のファイルを送信する方法を調べたのでメモとして残す。
具体的には、ファイルを保管ファイルに保存し、SNDNETF/RCVNETFで送受信する。
保管ファイルを用いることにより一度に複数のファイルを送受信可能となる。
また受信側に予めファイルを作成する必要がなくなる(保管ファイルは必要)。
1. CRTSAVFで保管ファイルを作成する
送信側、受信側のASでそれぞれ作成する必要がある 例. CRTSAVF FILE(TESTLIB/TESTSAV)
2. SAVOBJでファイルを保管する
送信側で送信するファイルを保管ファイルに保管する
ライブラリー丸ごとの保管も可能
例. SAVOBJ OBJ(*) LIB(DATALIB) DEV(*SAVF) SAVF(TESTLIB/TESTSAV)
3. SNDNETFで送信する
保管ファイルを送信する
例. SNDNETF FILE(TESTLIB/TESTSAV) TOUSRID((USERID ASHOST))
この例では、ASHOSTというAS/400のUSERIDというプロファイル宛に送信している
4. RCVNETFで受信する
受信側のAS/400でファイルを送られたプロファイルで処理する
例. RCVNETF FROMFILE(TESTSAV) TOFILE(SAVLIB/*FROMFILE)
5. RSTOBJで保管ファイルの中身を取り出す
例. RSTOBJ OBJ(*ALL) SAVLIB(DATALIB) DEV(*SAVF) SAVF(SAVLIB/TESTSAV) RSTLIB(DEVLIB)
この例では、元はDATALIBにあったファイルをDEVLIBに解凍している

FTPによるファイル送信

※データベースファイルを転送する前に受け側で空のファイルを作成しておく
  1. FTP '(AS SYSTEM名)' と入力しFTPに接続する
  2. USERIDとPASSWORDを聞かれるので入力する
  3. CD /QSYS.LIB/(指定したいライブラリ)でカレントライブラリを変更
  4. BINと入力しバイナリ転送モードにする(バイナリモードにしないと半角カナや漢字が化ける)
  5. GET (取得するファイル名).FILE (REPLACE でファイルが転送される
  6. QUIT でFTP接続を終了する

その他

ソフトウェア資産の表示
DSPSFWRSC
AccessでiSeriesのテーブルをリンクする方法