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 コマンドでは使用できませんでしたが、両方のコマンドで使用できるようになりました。