V4R2 での変更点

V3R7 以降の RPG IV の主な拡張機能は、可変長フィールドのサポート、標識に関係するいくつかの拡張機能、および制御仕様書にコンパイル・オプションを指定する機能です。 これらの拡張機能によって、i5/OS オペレーティング・システム および ILE 言語間通信との統合に関して、RPG 製品が さらに改善されました。

以下は、これらの拡張機能をリストしたものです。

さらに、以下の新しい機能が追加されました。

次の表は、影響を受けた言語の部分に基づいて、変更された言語要素および新 しい言語要素を要約したものです。

表 11. V3R7 以降に変更された言語要素
言語単位 要素 説明
制御仕様書キーワード DECEDIT(*JOBRUN | '値') 10 進数の編集値を、ジョブ値またはシステム値から、 実行時に動的に決定できるようになりました。
定義仕様書キーワード DTAARA {(データ域名)} ユーザーが論理データ域にアクセスできるようになりました。
EXPORT {(外部名)} エクスポートする変数の外部名を、このキーワードのパラメーターとして 指定できるようになりました。
IMPORT {(外部名)} インポートする変数の外部名を、このキーワードのパラメーターとして 指定できるようになりました。
OVERLAY(名前{:位置}) 名前パラメーターとして現行データ構造の名前を指定できるようになりました。
世紀の拡張形式 *CYMD (cyy/mm/dd) 世紀の文字 'c' の有効値は次のようになりました。
    'c'           Years
   -----------------------
     0          1900-1999
     1          2000-2099
     .              .
     .              .
     .              .
     9          2800-2899
内部データ・タイプ N (標識形式) 定義仕様書で使用可能な内部データ・タイプのリストに追加されました。 標識形式に文字データを定義します。
データ形式 N (標識形式) 標識形式が、プログラム記述ファイルの入力仕様書 および出力仕様書で 使用可能なデータ形式のリストに追加されました。
データ属性 *VAR プログラム記述ファイルの入力仕様書およ び出力仕様書で使用可能なデータ属性のリストに追加 されました。 この属性は、可変長フィールドを指定するために、 使用します。
コマンド・パラメーター FIXNBR *INPUTPACKED パラメーターが、 無効なパック 10 進数データを処理するために追加されました。
表 12. V3R7 以降の新しい言語要素
言語単位 新規 説明
制御仕様書キーワード ACTGRP(*NEW | *CALLER | '活動化グループ名') ACTGRP キーワードによって、プログラムが呼び出された時に関連付ける 活動化グループを指定することができます。
ALWNULL(*NO | *INPUTONLY | *USRCTL) ALWNULL キーワードは、外部記述データベース・ファイルからの、 ヌル値可能フィールドを含んでいるレコードを使用する 方法を指定します。
AUT(*LIBRCRTAUT | *ALL | *CHANGE | *USE | *EXCLUDE | '権限認可リスト名') AUT キーワードは、オブジェクトに対する特定の権限を持っていないユーザー、権限認可リストに載っていないユーザー、およびそのユーザー・グループがオブジェクトに対する特定の権限を持っていないユーザーに与える権限を指定します。
BNDDIR( 'バインディング・ディレクトリー名' {:'バインディング・ディレクトリー名'...}) BNDDIR キーワードは、記号の解決で使用するバインディング・ディレクトリー のリストを指定します。
CVTOPT(*{NO}DATETIME *{NO}GRAPHIC *{NO}VARCHAR *{NO}VARGRAPHIC) CVTOPT キーワードは、ILE RPG コンパイラーが、外部記述データベース・ファイル から取り出した日付、時刻、タイム・スタンプ、図形データ・タイプ、 および可変長データ・タイプを処理する方法を指定するために 使用します。
DFTACTGRP(*YES | *NO) DFTACTGRP キーワードは、作成済みのプログラムが、呼び出されたときに実行する 場所である活動化グループを指定します。
ENBPFRCOL(*PEP | *ENTRYEXIT | *FULL) ENBPFRCOL キーワードはパフォーマンス・コレクションを 使用可能にするかどうかを指定します。
FIXNBR(*{NO}ZONED *{NO}INPUTPACKED) FIXNBR キーワードは、無効な 10 進数データをコンパイラーが 修正するかどうかを指定します。
GENLVL(番号) GENLVL キーワードはオブジェクトの作成を 制御します。
INDENT(*NONE | '文字値') INDENT キーワードは、構造化命令を読みやすくするために、ソース・リスト内で 字下げするかどうかを指定します。
LANGID(*JOBRUN | *JOB | '言語識別子') LANGID キーワードは、分類順序が *LANGIDUNQ または *LANGIDSHR である場合に 使用する言語識別子を指定します。
OPTIMIZE(*NONE | *BASIC | *FULL) OPTIMIZE キーワードは、オブジェクトの最適化のレベルがある場合には、それを指定します。
OPTION(*{NO}XREF *{NO}GEN *{NO}SECLVL *{NO}SHOWCPY *{NO}EXPDDS *{NO}EXT *{NO}SHOWSKP) OPTION キーワードは、ソース・メンバーのコンパイル時に使用する オプションを指定します。
PRFDTA(*NOCOL | *COL) PRFDTA キーワードは、プロファイル作成データのコレクションを 使用可能にするかどうかを指定します。
SRTSEQ(*HEX | *JOB | *JOBRUN | *LANGIDUNQ | *LANGIDSHR | '分類テーブル名') SRTSEQ キーワードは、ILE RPG ソース・プログラムで使用する 分類順序テーブルを指定します。
TEXT(*SRCMBRTXT | *BLANK | '記述') TEXT キーワードによって、オブジェクトおよびその機能について 簡単に記述するテキストを入力することができます。
TRUNCNBR(*YES | *NO) TRUNCNBR キーワードは、オブジェクトの実行時に数値オーバーフローが発生した 場合に、切り捨てた値を結果フィールドに転送するか、 あるいは、エラーを生成するかどうかを指定します。
USRPRF(*USER | *OWNER) USRPRF キーワードは、作成済みのプログラム・オブジェクトを 実行するユーザー・プロファイルを指定します。
ファイル仕様書キーワード INDDS(データ構造名) INDDS キーワードによって、データ構造名を ワークステーションまたは印刷装置 ファイルの INDARA 標識に関連付けることができます。
定義仕様書キーワード VARYING 文字データまたは図形データに 指定された場合に、可変長フィールドを定義します。
組み込み関数 %CHAR(図形、日付、時刻または タイム・スタンプの式) 文字データ・タイプの値を戻します。
%EOF{ファイル名} 最後に実行されたファイル入力操作またはサブファイルへの書き出し (指定された 場合は特定のファイルに対する) が、ファイルの終わり条件またはファイルの先頭条件 で終了した場合に '1' を戻します。他の場合には '0' を戻します。
%EQUAL{ファイル名} 最後に実行された SETLL (指定された場合は特定のファイルに対する) また は LOOKUP 命令が等しい項目を見付けた場合に '1' を戻します。 他の場合には '0' を戻します。
%ERROR 最後に実行された、拡張 'E' が指定された命令の結果がエラーで ある場合に '1' を戻します。他の場合には '0' を戻します。
%FOUND{ファイル名} 最後に実行された関係のある命令 (指定された場合は特定のファイルに対する) が レコード (CHAIN、DELETE、SETGT、SETLL)、要素 (LOOKUP)、 または等しい項目 (CHECK、CHECKR、および SCAN) を見付けた 場合に '1' を戻します。他の場合には '0' を戻します。
%OPEN(ファイル名) 指定されたファイルがオープンされている場合に '1' を戻します。 指定されたファイルがクローズされている場合には '0' を戻します。
%REPLACE(置換 ストリング: ソース・ストリング {:開始位置 {:置換するソースの 長さ}}) 開始位置から開始し、指定された文字数を置換 して、置換ストリングソース・ ストリングに挿入することによって生成される ストリングを戻します。
%STATUS{ファイル名} 最後に実行された、拡張 'E' が指定された命令コード以降、プログラム・エラー またはファイル・エラーが発生していない場合に '0' を戻します。エラーが発生した場合 には、プログラム状況またはファイル状況について最後に 設定された値を戻します。 ファイルが指定されている場合、戻り値は、 そのファイルに関する最新の状況になります。
命令コード拡張 E CALLP 命令で %ERROR およ び %STATUS 組み込み関数を使用 したエラー処理を可能にし、すべての命令で エラー標識を使用できるようにします。
新しい世紀形式 *CMDY (cmm/dd/yy) MOVE、MOVEL、および TEST 命令で使用できるようになりました。
*CDMY (cdd/mm/yy) MOVE、MOVEL、および TEST 命令で使用できるようになりました。
新しい 4 桁の年形式 *LONGJUL (yyyy/ddd) MOVE、MOVEL、および TEST 命令で使用できるようになりました。
コマンド・パラメーター PRFDTA PRFDTA パラメーターは、プロファイル作成データのコレクションを 使用可能にするかどうかを指定します。
BNDDIR BNDDIR パラメーターは CRTBNDRPG コマンドでしか使用できず、CRTRPGMOD コマンド では使用できませんでしたが、 両方のコマンドで使用できるようになりました。