最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

9.51.豆知識1

[ Previous ] [ HOME ] [ Upper ] [ Next ]


会社で、メールでAS/400のチップスを出しています。そこから、抜粋です。まあ、多くの人に共有してもらいましょう。

WRKACTJOBの自動再表示

何かジョブの動きを監視してしていたくて、ずーっと、WRKACTJOBでF5をちょんちょんと押しつづけたことはありませんか?実は、WRKACTJOBでは、自動的に再表示できるオプションがあります。

実行方法

  1. WRKACTJOB + F4 +F10 で出てくるINTERVALにたとえば 5と入れる(5秒間隔で再表示を指示)。※省略すれば、前回指定した値。     例 WRKACTJOB INTERVAL(5)
  2. そのまま実行キーを押して、いったん、活動ジョブたちの画面を出す。
  3. F19(F19= 自動最新表示の開始)を押下。これで、自動再表示モードになります。

アクセスパスの相関関係

1.ある物理ファイルに、どんな論理ファイルが、ぶら下がっているか、の表示コマンド
 (物理ファイル⇒論理ファイル) 

DSPDBR 物理ファイル 

2.ある論理ファイルが、どの物理ファイルに、くっついているのか、の表示コマンド
(論理ファイル⇒物理ファイル)    

DSPFD 論理ファイル  *ACCPTH


LEAVEとITERの動きの違い 

LEAVEはDOループから、文字通り、Leave(去る)ですよね。これは割合よく使われていると思います。単語の意味もわかりやすいですね。 

問題はITERです。語源となる英単語の意味としては、iterate(イタレイト)「反復する」、という意味です。 
Dow-EndDoでは、最初に条件式を判定して、処理して、「ENDDO」文の命令で、DOWへ戻ります。たいていは、DOWに戻るのですが、ITERは、このENDDOへ飛びます。 

これは、たとえば、 

※()内の数字は実行順序です。 

     F3    DOWEQ PUSHED (4) 
           EXFMT FMT01 (5)  
           ... 
     F21   IFEQ PUSHED 
           ... 
           GOTO LOOP    (1) 
           ENDIF 
           ... 
     LOOP  TAG          (2) 
           ENDDO        (3) 

または、(変わったコーディングですが、理解のためのソースです) 

     F3    DOWNE PUSHED 
     REDSP TAG           (2) 
           EXFMT FMT01   (3) 
           ... 
     F21   IFEQ PUSHED 
           ... 
           GOTO REDSP    (1) 
           ENDIF 
           ... 
           ENDDO 

をITERを使うと、以下のようになります。 

     F3    DOWNE PUSHED  (3) 
           EXFMT FMT01   (4) 
           ... 
     F21   IFEQ PUSHED 
           ... 
           ITER          (1) 
           ENDIF 
           ... 
           ENDDO         (2) 

ITERの次の実行ステップは、最後のENDDOにいったん飛んで、ENDDO文を実行して、その結果として、DOWEQに戻っています。結果だけ見ていると、あたかも、一番内側のDOループの先頭に戻っているかのようです。でも、ENDDOに飛んでいることを忘れずに。もし、ENDDOに標識がついていれば、それなりに動きますよ。このときの動きはLEAVEと同じになってしまいますね(下図)。

     F3    DOWEQ PUSHED 
           EXFMT FMT01 
           ... 
     F21   IFEQ PUSHED 
           ... 
           MOVE *ON    *IN90 
           ITER         (1) 
           ENDIF 
           ... 
 N90       ENDDO        (2) 
           ...          (3) 
参考マニュアル

RPGと数字の話 パック、ゾーン、2進数と符号

もう、皆さんご存知でしょうが、まあ、老婆心でお送りします、情報は、数字データのことです。 

ゾーン10進数 

  1. RPGIII 最大整数桁は30、最大小数桁は 9までです。 

  2. RPGIV 最大整数桁は30、最大小数桁は30までです。 

パック10進数 

  1. RPGIII 最大整数桁は30、最大小数桁は 9までです。 

  2. RPGIV 最大整数桁は30、最大小数桁は30までです。 

2進数形式 

RPGIII および RPGIV 

  1. 2バイト長の場合、最大整数桁は4までです。(9,999まで) 

  2. 4バイト長の場合、最大整数桁は9までです。(999,999,999まで)

符号 

AS/400では、正符号はX'F'で、負符号はX'D'となります。また、文字フィールド内での数字もX'F'です。 

ゾーン10進数+150は、X'F1F5F0' で、-150は X'F1F5D0' です。文字の150は、X'F1F5F0' です。 

16進数'C'の概念はAS/400では出てきませんが、SAA環境の統一らしく、CをFの数字符号として、扱うようです。ただし、この16進数Cは、RPGのマニュアルには出てきません。

---------------------------------------------------------------

それから、いつもどこに出ていたっけなー、と探してしまう資料を偶然発見しましたので、備忘録として、URLを付けます。

付録1.1 付録A. データベース・ファイルのサイズ


OUTQ+DTAQ

CRTOUTQにて、DTAQを指定しておくと、そのOUTQにスプールが入ったときに、DTAQにそのスプール情報が入ります。したがって、どのタイミングでスプールができるかわからない場合に、そのスプールの生成監視をしたい場合は、DATAQを作成して、CRTOUTQ(CHGOUTQではDATAQを指定できないので、OUTQを新規作成時のみ指定可能です。)で、そのDATAQを指定することで、モニター可能です。

「3.5 プログラムとプロシージャー間の通信のためのデータ待ち行列の使用法」

を参考にして下さい。


CRTDUPOBJとCPYFの違い

CPYFは、ファイル間のレコード単位の複写です。したがって、FMTOPTで、*NOCHKや、 *CVTSRCや、*MAP, *DROPなど、レコード様式変換のオプションが使えます。レコードの入力と出力のプログラムが内部で起動するので、この程度のオプションはつけてもらえるのですね。それから、レコード別のプログラムなので、MBROPT(*ADD)や MBROPT(*REPLACE)、最近にいたっては、*UPDADDまでできるようになりました。

CRTDUPOBJは、その名のとおり、オブジェクトの複製をするだけです。つまり、レコード別ではなく、ファイル全体のディスク上のイメージをそのまま複製するわけです。ファイルに限らず、プログラムやその他、オブジェクトなら何でも複製
できます。

但し、CRTDUPOBJは、FROMLIBが必須入力なので、ライブラリー名をハードコードしてしまいます。もし、*LIBLで最初に見つかったオブジェクトのコピーならば、RTVOBJDを併用しましょう。

PGM 

DCL &OBJLIB *CHAR ( 10 ) 

RTVOBJD OBJNAME *FILE RTNLIB(&OBJLIB) 

CRTDUPOBJ OBJNAME &OBJLIB *FILE TOLIB 

RETURN 
ENDPGM 
こんな感じであれば、ライブラリー名をプログラム内にハードコードしないで済みます。

※ほんとだったら、CRTDUPOBJにこの機能を組み込んでほしいのだけどなあ>ロチェスタ


代替次ページ/代替前ページ

Roll Up/Downの代わりとして、F7/F8を使う場合、便利なキーワードが、

ALTPAGEUP, ALTPAGEDWN

です。これを指定すると、ロールアップでのコーディングをしておけば、特にF7,F8のコーディングは不要です。実際には、ロールアップダウンキーも使え、同時にF7, F8も使えます。

0013.00 A                                      ALTPAGEUP                        
0014.00 A                                      ALTPAGEDWN                       
0015.00 A                                      DSPSIZ(24 80 *DS3)               
0016.00 A                                      ERRSFL                           
0017.00 A                                      PRINT                            
0018.00 A                                      INDARA                           
0019.00 A                                      CA03                             
0020.00 A                                      CA12                             
0021.00 A                                      CA23                             
2001-1-8
 

[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送