*DTAARA DEFINE

演算項目 1 に *DTAARA がある DEFINE (フィールド定義)命令は、フィールド、データ構造、データ構造サブフィールド、またはデータ域データ構造 (ユーザーの ILE RPG プログラム内の) を、AS/400 データ域 (ユーザーの ILE RPG プログラムの外部にある) と関連付けます。

注:
サブプロシージャー内、または UCS-2 結果フィールド では *DTAARA DEFINE を使用できません。

演算項目 2 にはデータ域の外部名を指定します。 内部データ域の名前には *LDA を使用し、プログラム初期化パラメーター (PIP) データ域には *PDA を使用します。 演算項目 2 をブランクのままにした場合には、結果フィールドの指定は RPG IV 名とそのデータ域の外部名の両方になります。

結果フィールドには、プログラム内で定義したフィールド、データ構造、デ ータ構造サブフィールド、またはデータ域データ構造のいずれかの名前を指定 します。 演算項目 2 に指定されたデータ域からデータを検索したりこのデータ域にデータを書き出すためには、この名前を IN および OUT 命令と一緒に使用します。 結果フィールドにデータ域データ構造を指定すると、ILE RPG プログラムは、暗黙のうちにプログラムの開始時にデータ域からデータを検索して、プログラムの終了時にデータ域にデータを書き出します。

結果フィールドの指定を、プログラム状況データ構造、ファイル情報データ 構造 (INFDS)、複数オカレンス・データ構造、入力レコード・フィールド、配列、 配列要素、またはテーブルの名前にすることはできません。 また、複数オカレンス・データ構造のサブフィールド、データ域データ構造、プログラム状況データ 構造、ファイル情報データ構造 (INFDS)、またはすでに *DTAARA DEFINE ステ ートメントに現れているかあるいは定義仕様書で DTAARA キーワードを使用し てすでにデータ域として定義されているデータ構造の名前にすることもできま せん。

3 種類のデータ域を作成することができます。

さらに、リモート・システム上の上記の 3 つのタイプのいずれかのデータ域を 指し示す DDM データ域 (タイプ *DDM) も作成することができます。

データ域に関連付けることができるのは、文字と数値タイプ (浮動数値を除く) だけ です。 システム上の実際のデータ域は、プログラム内のフィールドと同じタイプ で、長さと小数点以下の桁数も同じでなければなりません。 標識フィールドは論理データ域または文字データ域と 関連付けることができます。

数値データ域の場合、最大長は、9 桁の小数部を含む 24 桁です。 小数部の左側には、小数部の桁数が 9 桁に満たない場合でも、最大 15 桁は あることに注意してください。

64 から 70 桁目には、結果フィールドの指定項目の長さおよび小数点以下の桁数 を定義することができます。 これらの指定は、演算項目 2 に指定されたデータ 域の外部記述と一致していなければなりません。 内部データ域は長さが 1024 桁の文字データですが、ユーザー・プログラムの 中では長さが 1024 桁またはそれ以下のものとして内部データ域にアクセスす ることができます。

図 278. *DTAARA を指定した DEFINE 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
 *
 *  The attributes (length and decimal positions) of
 *  the data area (TOTGRS) must be the same as those for the
 *  external data area.
C
C     *DTAARA       DEFINE                  TOTGRS            10 2
C
 *
 *  The result field entry (TOTNET) is the name of the data area to
 *  be used within the ILE RPG program.  The factor 2 entry (TOTAL)
 *  is the name of the data area as defined to the system.
C
C     *DTAARA       DEFINE    TOTAL         TOTNET
C
 *
 *  The result field entry (SAVTOT) is the name of the data area to
 *  be used within the ILE RPG program.  The factor 2 entry (*LDA)
 *  indicates the use of the local data area.
C
C     *DTAARA       DEFINE    *LDA          SAVTOT