RPGトピックス


■プログラム状況データ構造
    
    表 9.  プログラム状況データ構造の内容                                                             
    
    開始                                                                                         
    位置   終了                                                                                  
    (26  (26                                                                                 
    32     39                                                                                    
    桁目) 桁目) 形式           長さ   キーワード 情報                                          
    
      1      10   文字           10     *PROC      メイン・プロシージャーがあればその名前。それ  
                                                   がない場合には、主要ソース・セクションと対応  
                                                   する名前。                                    
    
      11     15   ゾーン 10 進   5,0    *STATUS    状況コード。 これらのコードの説明について     
                  数                               は、トピック1.5.2.1.1の『プログラム状況コー   
                                                   ド』 を参照してください。                     
    
      16     20   ゾーン 10 進   5,0               前の状況コード。                              
                  数                                                                             
    
     21     28   文字           8                 RPG IV ソース・リスト行番号またはステートメ   
                                                  ント番号。ソース・リスト行番号は、            
                                                  OPTION(*SRCSTMT) が OPTION(*NOSRCSTMT) の代   
                                                  わりに指定されている場合、ソース・リスト・ス  
                                                  テートメント番号に置き換えられます。そのステ  
                                                  ートメント番号がルート・ソース・メンバーに適  
                                                  用される場合、ステートメント番号全体が組み込  
                                                  まれます。ステートメント番号が 6 桁を超える   
                                                  場合 (すなわち、ゼロ以外のソース ID を組み込  
                                                  んでいる場合)、8 バイト・フィードバック域の   
                                                  最初の 2 桁は、ステートメント番号の残りの部   
                                                  分が 53〜54 桁目に保管されることを示す "+"    
                                                  になります。                                  
    
      29     36   文字           8      *ROUTINE   例外またはエラーが起こった RPG IV ルーチンの  
                                                   名前。 このサブフィールドは RPG IV ルーチン   
                                                   の開始時点、または *STATUS サブフィールドが   
                                                   ゼロ以外の値によって更新される場合にのみ、プ  
                                                   ログラム呼び出しの後に更新されます。 次の名   
                                                   前によってルーチンが識別されます。            
                                                                                                 
                                                                                                 
                                                   *INIT     プログラム初期設定                  
                                                                                                 
                                                   *DETL     明細行                              
                                                                                                 
                                                   *GETIN    入力レコードの入手                  
                                                                                                 
                                                   *TOTC     合計演算                            
                                                                                                 
                                                   *TOTL     合計行                              
                                                                                                 
                                                   *DETC     明細演算                            
                                                                                                 
                                                   *OFL      オーバーフロー行                    
                                                                                                 
                                                   *TERM     プログラム終了                      
                                                                                                 
                                                   *ROUTINE  呼び出されたプログラムまたはプロシ  
                                                             ージャーの名前(最初の 8 文字)      
                                                                                                 
                                                   :  通常の RPG IV サイクルを使用していない   
                                                        場合には、*ROUTINE は有効でありません。  
                                                        プログラムが通常の RPG IV サイクルから   
                                                        はみ出してしまうような論理では、         
                                                        *ROUTINE が正しい値を反映しない場合があ  
                                                        ります。                                 
    
      37     39   ゾーン 10 進   3,0    *PARMS     呼び出しプログラムからこのプログラムに渡され  
                  数                               たパラメーターの数。この値は、%PARMS によっ   
                                                   て戻される値と同じです。 使用可能な情報がな   
                                                   い場合には、-1 が戻されます。                 
    
     桁目    42   文字           3                 例外タイプ(OS/400 システムの例外の場合には   
                                                   CPF またはマシン例外の場合には MCH)。         
    
      43     46   文字           4                 例外番号。 CPF 例外の場合には、このフィール   
                                                   ドには CPF メッセージ番号が入れられます。 マ  
                                                   シン例外の場合には、マシンの例外番号が入れら  
                                                   れます。                                      
    
      47     50   文字           4                 未使用。                                      
    
      51     80   文字           30                メッセージ用の作業域。 この区域は、ILE RPG    
                                                   コンパイラーが内部で使用するための専用区域で  
                                                   す。 情報の編成は、常に一定であるとは限りま   
                                                   せん。 この区域は、ユーザーが表示することが   
                                                   できます。                                    
    
      81     90   文字           10                プログラムが入っているライブラリーの名前。    
    
      91    170   文字           80                検索された例外データ。 位置 *STATUS に 09999  
                                                   が入っている場合に、CPF メッセージがこのサブ  
                                                   フィールドに入れられます。                    
    
     171    174   文字           4                 通知される RNX9001 例外の原因となった例外の   
                                                   識別。                                        
    
     175    184   文字           10                ファイル操作が最後に行われたファイルの名前    
                                                   (エラーが起こった場合にのみ更新されます)。  
                                                   この情報には、常に完全なファイル名が含まれて  
                                                   います。                                      
    
     185    190   文字           6                 未使用。                                      
    
    191    198   文字           8                 ジョブがシステムに入力された日付 (*DATE 形    
                                                  式)。バッチ・ジョブが夜間処理として投入され   
                                                  た場合、真夜中を過ぎた時間帯に実行されるバッ  
                                                  チ・ジョブは翌日の日付になります。 この値     
                                                  は、ジョブ日付から導出され、年は 4 桁に拡張   
                                                  されます。この値によって表される日付は、270   
                                                  〜275 桁目で表される日付と同じ日付です。      
    
    199    200   ゾーン 10 進   2,0               4 桁の年の先頭の 2 桁。*YEAR の先頭の 2 桁と  
                 数                               同じ。このフィールドは、270〜 275 桁目の日付  
                                                  の世紀部分に適用されます。たとえば、日付が    
                                                  1999-06-27 の場合、UDATE は 990627 で、この   
                                                  世紀フィールドは 19 になります。270〜275 桁   
                                                  目の値とこのフィールドの値を合わせると、191   
                                                  〜198 桁目にある値の結合情報になります。      
                                                                                                 
                                                                                                 
                                                  :  この世紀フィールドは、276〜281 桁目、ま  
                                                       たは 288〜293 桁目の日付には適用されま   
                                                       せん。                                   
    
     201    208   文字           8                 ファイル操作が最後に行われたファイルの名前    
                                                   (エラーが起こった場合にのみ更新されます)。  
                                                   長いファイル名が使用されている場合、このファ  
                                                   イル名は切り捨てられます。 長いファイル名の   
                                                   情報については、175〜184 桁目を参照してくだ   
                                                   さい。                                        
    
     209    243   文字           35                最後に使用されたファイルの状況情報。この情報  
                                                   には、状況コード、RPG IV 命令コード、RPG IV   
                                                  ルーチン名、ソース・リスト行番号またはステー  
                                                  トメント番号、およびレコード名が含まれます。  
                                                   これはエラーが起こった場合にのみ更新されま    
                                                   す。                                          
                                                                                                 
                                                                                                 
                                                   :  命令コード名は INFDS の *OPCODE と同じ   
                                                        形式になっています。                     
                                                                                                 
                                                  ソース・リスト行番号は、OPTION(*SRCSTMT) が   
                                                  OPTION(*NOSRCSTMT) の代わりに指定されている   
                                                  場合、ソース・リスト・ステートメント番号に置  
                                                  き換えられます。 そのステートメント番号がル   
                                                  ート・ソース・メンバーに適用される場合、ステ  
                                                  ートメント番号全体が組み込まれます。ステート  
                                                  メント番号が 6 桁を超える場合 (すなわち、ゼ   
                                                  ロ以外のソース ID を組み込んでいる場合)、8    
                                                  バイト・フィードバック域の最初の 2 桁は、ス   
                                                  テートメント番号の残りの部分が 356〜357 桁目  
                                                  に保管されることを示す "+" になります。       
    
     244    253   文字           10                ジョブ名。                                    
    
     254    263   文字           10                ユーザー・プロファイルからのユーザー名。      
    
     264    269   ゾーン 10 進   6,0               ジョブ番号。                                  
                  数                                                                             
    
    270    275   ゾーン 10 進   6,0               プログラムの実行がシステムで開始された日付    
                 数                               (UDATE 形式)(UDATE はこの日付から導出されま  
                                                  す)。UDATE の説明については、トピック1.1.3の  
                                                  『ユーザー日付の特殊語』 を参照してくださ     
                                                  い。これは、一般に「ジョブ日付」と呼ばれてい  
                                                  ます。この値によって表される日付は、191〜198  
                                                  桁目で表される日付と同じ日付です。            
    
    276    281   ゾーン 10 進   6,0               プログラム実行の日付(UDATE 形式のシステム日  
                 数                               付)。 この値の年の部分が 40〜99 の間の場     
                                                  合、この日付は 1940〜1999 の間になります。そ  
                                                  れ以外の場合、この日付は 2000〜2039 の間にな  
                                                  ります。199〜200 桁目の「世紀」値は、このフ   
                                                  ィールドには適用されません。                  
    
     282    287   ゾーン 10 進   6,0               プログラム実行の時刻(hhmmss 形式)。         
                  数                                                                             
    
    288    293   文字           6                 プログラムがコンパイルされた日付(UDATE 形    
                                                  式)。 この値の年の部分が 40〜99 の間の場     
                                                  合、この日付は 1940〜1999 の間になります。そ  
                                                  れ以外の場合、この日付は 2000〜2039 の間にな  
                                                  ります。199〜200 桁目の「世紀」値は、このフ   
                                                  ィールドには適用されません。                  
    
     294    299   文字           6                 プログラムがコンパイルされた時刻(hhmmss 形   
                                                   式)。                                        
    
     300    303   文字           4                 コンパイラーのレベル。                        
    
     304    313   文字           10                ソース・ファイル名。                          
    
     314    323   文字           10                ソース・ライブラリー名。                      
    
     324    333   文字           10                ソース・ファイル・メンバー名。                
    
     334    343   文字           10                プロシージャーが入っているプログラム。        
    
     344    353   文字           10                プロシージャーが入っているモジュール。        
    
     354    429   文字           76                未使用。                                      
    
    354    355   ゾーン 10 進   2, 0              ソース ID は、21〜28 桁目からのステートメン   
                 数                               ト番号と突き合わせられます。                  
    
    356    357   ゾーン 10 進   2, 0              ソース ID は、228〜235 桁目からのステートメ   
                 数                               ント番号と突き合わせられます。                
    
    358    367   文字           10                現行ユーザー・プロファイル名。                
    
    368    429   文字           62                未使用。                                      
    


■ファイル状況データ構造
                                                                                                                                    
      FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++Comments++++++++++                                 
      FMYFILE    O    F  132        PRINTER INFDS(OPNFBK)                                                                           
      DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++++Comments++++++++++                                 
      DOPNFBK           DS                                                                                                          
      D ODP_TYPE               81     82                                         * ODP タイプ                                       
      D FILE_NAME              83     92                                         * ファイル名                                       
      D LIBRARY                93    102                                         * ライブラリー名                                   
      D SPOOL_FILE            103    112                                         * スプール・ファイル名                             
      D SPOOL_LIB             113    122                                         * スプール・ファイル・ライブラリー                 
      D SPOOL_NUM             123    124I 0                                      * スプール・ファイル番号                           
      D RCD_LEN               125    126I 0                                      * 最大レコード長                                   
      D KEY_LEN               127    128I 0                                      * 最大キー長                                       
      D MEMBER                129    138                                         * メンバー名                                       
      D TYPE                  147    148I 0                                      * ファイル・タイプ                                 
      D ROWS                  152    153I 0                                      * PRT/DSP 行数                                     
      D COLUMNS               154    155I 0                                      * PRT/DSP 桁数                                     
      D NUM_RCDS              156    159I 0                                      * レコード数                                       
      D ACC_TYPE              160    161                                         * アクセス・タイプ                                 
      D DUP_KEY               162    162                                         * 重複キー?                                        
      D SRC_FILE              163    163                                         * ソース・ファイル?                                
      D VOL_OFF               184    185I 0                                      * ボリューム・ラベル・オフセット                   
      D BLK_RCDS              186    187I 0                                      * ブロックの最大レコード数                         
      D OVERFLOW              188    189I 0                                      * オーバーフロー行                                 
      D BLK_INCR              190    191I 0                                      * ブロック増分                                     
      D FLAGS1                196    196                                         * 雑フラグ                                         
      D REQUESTER             197    206                                         * 要求元端末名                                     
      D OPEN_COUNT            207    208I 0                                      * オープン・カウント                               
      D BASED_MBRS            211    212I 0                                      * 基本メンバー数                                   
      D FLAGS2                213    213                                         * 雑フラグ                                         
      D OPEN_ID               214    215                                         * オープン識別コード                               
      D RCDFMT_LEN            216    217I 0                                      * 最大レコード様式長                               
      D CCSID                 218    219I 0                                      * データベース CCSID                               
      D FLAGS3                220    220                                         * 雑フラグ                                         
      D NUM_DEVS              227    228I 0                                      * 定義済み装置数                                   
                                                                                                                                    
                                                                                                                                    
    
   図 27.  オープン・フィードバック情報を持つ INFDS のコーディング例