コンパイル時または実行時に、ファイル仕様書に指定されたパラメーターを 一時変更するかあるいはファイルを指定変更するためには、i5/OS コマンドを 使用することができます。 ファイル指定変更によって、(コンパイル時に) プログラムに指定された ファイルを置き換えるファイルを実行時に指定することができます。
上記の例では、CL コマンド OVRDBF (データベース・ファイル一時変更) によって、コンパイル時に指定された装置ファイルとはまったく異なる装置 ファイルを用いて、プログラムを実行することができます。
実行時にファイルを一時変更するためには、両方のファイルのレコード名が 間違いなく同じでなければなりません。 RPG プログラムは READ 命令などの入出力命令でレコード様式名を使用します が、その命令ではこのレコード様式名が必要なレコード・タイプを指定します。
すべてのファイル指定変更または一時変更が有効なわけではありません。 実行時 に、RPG プログラム内の仕様書が処理中のファイルに対して有効である かを確認するための検査が行われます。 i5/OS システムでは、プログラムに装置の仕様書が入っていても、一部のファイル の指定変更を行うことができます。 例えば、RPG 装置名が PRINTER で、プログラムが接続している実際のファイ ルがプリンターでない場合には、i5/OS システムは RPG の印刷スペースおよびスキップ仕様書を無視します。
i5/OS システムが使用できずに、プログラムを終了することになる、その他の ファイル指定変更があります。例えば、RPG 装置名が WORKSTN で、プログラムで EXFMT 命令が指定された 場合には、プログラムが接続している実際のファイルが表示装置ファイルまた は ICF ファイルでない場合に、プログラムは停止します。
ILE では、一時変更は活動化グループ・レベル、ジョブ・レベル、または呼び出 しレベルまで拡大されます。 活動化グループ・レベルまで拡大された一時変更は、削除または置き換えられ るか、あるいはその一時変更が指定されている活動化グループが終了するまで 有効となっています。 ジョブ・レベルまで拡大された一時変更は、削除または置き換えられ るか、あるいはその一時変更が指定されているジョブが終了するまで 有効となっています。 これは、一時変更が指定されている活動化グループに関係なく 適用されます。 呼び出しレベルまで拡大された一時変更は、削除または置き換えられるか、 あるいはその一時変更が指定されているプログラムまたはプロシージャーが終了するまで 有効となります。
共用ファイルのデフォルトの有効範囲は、活動化グループです。 ジョブ・レベルの有効範囲の場合には、一時変更コマンドに OVRSCOPE(*JOB) を指定してください。 呼び出しレベルの 有効範囲の場合には、一時変更コマンドに OVRSCOPE(*CALLLVL) を指定してください。
有効なファイル指定変更およびファイル一時変更についての 詳細は、Web サイト http://www.ibm.com/eserver/iseries/infocenter で iSeries Information Center の中の 『データベース』カテゴリーの『DB2 Universal Database for AS/400(R)』の節を参照してください。
「ILE 概念」にも一時変更、 および活動化グループ対ジョブ・レベルの有効範囲についての説明があります。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.