◇Q171. 装置記述を誰が変更したかを知りたい
◇A171.
DSPLOG MSGID(CPC2613)を実行し、F1を押して更にF9を押してください。制御装置は、CPC2614 回線は、CPC2615を指定してください。
◇Q172. 複数メンバーをもっているファイルについてメンバー名順に処理したい
◇A172.
参照メンバーの指定は、作成日付順あるいはメンバー名順の指定ができます。
サンプルはメンバー名順で全メンバーを処理する場合です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
PGM DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10) DCL VAR(&POSITION) TYPE(*CHAR) LEN(10) DCL VAR(&CURUSER) TYPE(*CHAR) LEN(10) DCL VAR(&RTNMBR) TYPE(*CHAR) LEN(10) RTVJOBA CURUSER(&CURUSER) CHGVAR VAR(&MEMBER) VALUE(*FIRSTMBR) CHGVAR VAR(&POSITION) VALUE(*SAME) NEXT: RTVMBRD FILE(xxxx/yyyyy) MBR(&MEMBER &POSITION) + RTNMBR(&RTNMBR) MONMSG MSGID(CPF3049) EXEC(GOTO END) SNDMSG MSG('PROCESSING MEMBER' *BCAT &RTNMBR *TCAT + '.') TOUSR(&CURUSER) /* NEXTメンバーのセット */ CHGVAR VAR(&MEMBER) VALUE(&RTNMBR) CHGVAR VAR(&POSITION) VALUE(*NEXT) GOTO NEXT END: ENDPGM |
◇Q173. 論理ファイルを再作成する際に、ソースファイルを使用しない方法はないか?
◇A173.
RMVMで論理ファイルを外しておけば、ADDLFMで再作成できます。
この場合は、ソースファイルは必要ありません。
◇Q174. 配信要求時に「HUL1102」のエラーになる
◇A174.
転送グループの中のホスト名が詳細ホスト情報に登録されているか確認してください。
◇Q175. 重複レコードがどのくらいあるか調べたい
◇A175.
SQLで簡単に行うことができます。
サンプルは、仕入先番号単位でカウントし、1件以上のものを表示した例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
CMD PROMPT('RETRIEVE SUBSYSTEM STATUS') PARM KWD(SBSNAM) TYPE(SBSNAM) SNGVAL((*)) MIN(1) + PROMPT('SUBSYSTEM NAME') SBSNAM: QUAL TYPE(*NAME) LEN(10) EXPR(*YES) QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) + SPCVAL((*LIBL) (*CURLIB)) EXPR(*YES) + PROMPT('LIBRARY') PARM KWD(SBSSTS) TYPE(*CHAR) LEN(9) RTNVAL(*YES) + PROMPT('CL VAR SUBSYSTEM STATUS (9)') CLP SOURCE: PGM PARM(&SBSNAM &SBSSTS) DCL VAR(&SBSNAM) TYPE(*CHAR) LEN(20) DCL VAR(&SBSSTS) TYPE(*CHAR) LEN(9) DCL VAR(&SBSSTSC) TYPE(*CHAR) LEN(12) DCL VAR(&RCV) TYPE(*CHAR) LEN(244) DCL VAR(&RCVL) TYPE(*DEC) LEN(4) DCL VAR(&SBSFMT) TYPE(*CHAR) LEN(8) DCL VAR(&ERR) TYPE(*DEC) LEN(4) CHGVAR VAR(&RCVL) VALUE(244) CHGVAR VAR(&SBSFMT) VALUE(SBSI0200) CALL PGM(QWDRSBSD) PARM(&RCV &RCVL &SBSFMT &SBSNAM &ERR) CHGVAR VAR(&SBSSTSC) VALUE(%SST(&RCV 53 12)) CHGVAR VAR(&SBSSTS) VALUE(&SBSSTSC) RETURN ENDPGM |
SBSSTSの内容は以下のとおりです。
1 2 3 4 5 |
*ACTIVE : サブシステムは活動中である。 *ENDING : ENDSBSを実行中である。 *INACTIVE : サブシステムは停止している。 *RESTRICT(ED) :サブシステムは制限状態にある。 *STARTING : サブシステムは開始中である。 |
◇Q176. 1台のマシンでDDMのテストを行いたい
◇A176.
APPC記述をサンプルのように作成すればDDMを使用することができます。
また、パススルーもできます。
1台の中でDDMを行う方法
1 |
CRTCTLAPPC CTLD(LOCALCTL) LINKTYPE(*LOCAL) |
2.コマンド
1 2 |
CRTDEVAPPC DEVD(RMTDEV) RMTLOCNAME(RMTDEV) LCLLOCNAME(LCLDEV) CTL(LOCALCTL) APPN(*NO) |
3.コマンド
1 2 |
CRTDEVAPPC DEVD(LCLDEV) RMTLOCNAME(LCLDEV) LCLLOCNAME(RMTDEV) CTL(LOCALCTL) APPN(*NO) |
4.コマンド
1 |
CRTDDMF FILE(xxxx/DDMF) RMTFILE(xxxxx/PF) RMTLOCNAME(RMTDEV) |
5.CTLDをONに変更する。
1 |
◇Q177. RPGからCLコマンドを実行したい。NEW
◇A177.
以下の方法があります。
a.QCMDEXC、QCAPCMDを使う。
b.Cのランタイム関数 system()を使う。
◇Q178. SBMJOBしたのに実行されない。NEW
◇A178.
以下の項目をチェックしてみてください。
①WRKJOBQでJOBQの状態を見てみる。JOBQがHOLDになっていないか?
②同じくWRKJOBQでサブシステムに接続されているか?
③サブシステムが立ち上がっているか?
④JOBQの多重度をチェックする。
DSPSBSD→ジョブ待ち行列項目→最大活動
⑤JOBがHOLDになっていないか?
◇Q179. 印刷ファイルをリコンパイルするときに、パラメータの設定をまちがいなく行いたい。NEW
◇A179.
まちがったままコンパイルしても気がつきませんので、本番で実行するまで問題は発覚しません。以下のようなコマンドで対応しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
CMD PROMPT('印刷ファイルのコンパイル') PARM KWD(FILE) + TYPE(QUAL1) + PROMPT('印刷ファイル') PARM KWD( REFFILE ) + TYPE( QUAL1 ) + PROMPT('参照ファイル') QUAL1: QUAL TYPE(*NAME) LEN(10) + EXPR(*YES) QUAL TYPE(*NAME) + LEN(10) DFT(*LIBL) + SPCVAL( + *LIBL + *ALLUSR + *CURLIB + *ALL) ************************************************************************** 注意:CLのコンパイル時は、QTEMP/FDOUTFをDSPFDで作成してから行ってください。 ************************************************************************** PGM ( &FILE + &REFERENCE + ) DCL &FILE *CHAR ( 20 ) DCL &REFERENCE *CHAR ( 20 ) DCL &CRTLIB *CHAR ( 10 ) DCL &CRTFILE *CHAR ( 10 ) DCL &REFLIB *CHAR ( 10 ) DCL &REFFILE *CHAR ( 10 ) DCL &SRCFLIB *CHAR ( 10 ) DCL &SRCF *CHAR ( 10 ) DCL &SRCMBR *CHAR ( 10 ) DCLF FDOUTF CHGVAR &CRTFILE %SST( &FILE 1 10 ) CHGVAR &CRTLIB %SST( &FILE 11 10 ) CHGVAR &REFFILE %SST( &REFERENCE 1 10 ) CHGVAR &REFLIB %SST( &REFERENCE 11 10 ) RTVOBJD OBJ( &REFLIB/&REFFILE ) OBJTYPE( *FILE ) SRCF( &SRCF ) + SRCFLIB( &SRCFLIB ) SRCMBR( &SRCMBR ) DSPFD FILE( &REFLIB/&REFFILE ) + FILEATR( *PRTF ) + TYPE( *ATR ) + OUTPUT( *OUTFILE ) + OUTFILE( QTEMP/FDOUTF ) READ: RCVF MONMSG ( CPF0864 ) EXEC( + GOTO END ) ?CRTPRTF FILE( &CRTLIB/&CRTFILE ) + ??SRCFILE( &SRCFLIB/&SRCF ) + ??SRCMBR( &SRCMBR ) + DEV( &PRDEVN ) + PAGESIZE( &PRFSZL &PRFSZW ) + LPI( &PRLPI ) + CPI( &PRCPI ) + OVRFLW( &PROVRF ) + FONT( &PRFONT ) MONMSG ( CPF6801 ) END: ENDPGM |
◇Q180. CLをリフォーマットし綺麗にしたい。NEW
◇A180.
F4を押してプロンプト画面を出していけば綺麗になります。
ただ、1行ずつ手で実行するのは大変ですのでマクロを作成するか編集プログラムを作成し、F4の代わりにQCAPCMDを使用すれば一括編集できます。