POST (転記)

自由形式構文 POST{(E)} {プログラム装置} ファイル名
コード 演算項目 1 演算項目 2 結果フィールド 標識
POST (E) プログラム装置 ファイル名 INFDS 名 _ ER _

POST 命令は、情報を INFDS (ファイル情報データ構造) に入れます。 この情報には次のものが含まれます。

プログラム装置 オペランドにはプログラム装置名を指定して、その特定のプログラム装置についての情報を入手します。 プログラム装置を指定する場合には、ファイルはワークステーション・ファイルとして定義しなければなりません。 プログラム装置 が指定されている場合は、INFDS にオープン・フィードバック情報に続いて属性入手情報が入ります。長さが 10 桁以下の文字フィールド、文字リテラル、または文字の名前のつい た定数のいずれかを使用してください。 プログラム装置 が指定されていない場合は、INFDS ではオープン・フィードバック情報に続いて入出力フィードバック情報と装置依存情報が入ります。

ファイル名 オペランドにはファイルの名前を指定します。このファイルの情報が、この ファイルに対応する INFDS に転記されます。

自由形式構文では必ずファイル名 を指定する必要があり、INFDS 名は指定できません。従来型の構文ではファイル名 も INFDS 名もどちらでも指定できます。

POST 例外 (ファイル状況コードが 1000 より大きい) を 処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 エラー処理の詳細については、ファイル例外/エラーを 参照してください。

POST 命令コードが処理されない場合でも、プログラム内にこの命令コードが存在することによって RPG IV 言語の動作に影響を与えることが可能です。通常 INFDS は、入出力命令または命令ブロックごとに更新されます。 しかし、プログラム内で プログラム装置 の指定がない POST 命令を指定している場合には、RPG IV は、そのファイルの POST 命令が処理された時にだけファイルの INFDS の入出力フィードバック情報域および装置従属フィードバック情報域を更新します。INFDS のファイル従属情報は、すべての入出力操作で 更新されます。複数メンバーの処理用にファイルをオープンしている場合には、INFDS のオー プン・フィードバック情報は、入力操作 (READ、READP、READE READPE) によっ て新しいメンバーがオープンされる時に更新されます。

DUMP はその情報を、INFDS からでなく、オープン・データ・パスから直接 検索するので、DUMP のファイル情報セクションは POST に依存しないことに注 意してください。

プログラムに POST 命令コードがないか、またはプログラム装置 を指定した POST 命令コードだけがある場合には、入出力フィードバックおよび装置従属フィードバック・セクションは、それぞれの入出力命令または命令ブロックごとに更新されます。RPG でレコードがブロック化されている場合には、INFDS の情報のほとんどは 最後に処理された完全なレコード・ブロックに有効となるだけです。 ブロック化された入力をデータベース・ファイルから実行する場合には、RPG は、最後に処理されたレコード・ブロックだけでなく、それぞれの読み取りで INFDS の相対レコード番号およびキー情報を更新します。 より正確な情報が必要な場合には、レコードのブロック化を使用しないでくだ さい。 レコード・ブロック化の詳細については、ファイル情報データ構造を 参照してください。入出力操作の後で毎回 フィードバック情報を必要としない場合には、フィードバック情報が必要な時に だけ POST 命令を使用してパフォーマンスを改善することができます。

POST 命令が処理される時には、対応するファイルがオープンされていなけ ればなりません。 POST 命令でプログラム装置を指定する場合には、そのファイ ルによって装置が入手されている必要はありません。

詳細については、ファイル命令を参照してください。