EXTFLD{(フィールド名) }

変更の始まり EXTFLD キーワードは、外部記述データ構造の中のサブフィールドの名前を変更す るために使用されます。 また、自由形式定義では、サブフィールドが外部サブフィールドであることを 示すためにも使用されます。 変更の終わり

EXTFLD キーワードのパラメーターとして、サブフィールドの外部名を入力します。

文字リテラルを指定する場合は、外部名の大/小文字を正確に指定する必要があります。 例えば、外部名が MYFIELD である場合、固定形式定義では 大/小文字混合の名前 (myField や myfield など) をフィールド名パラメーターに指定できますが、 リテラルとして指定する場合は「MYFIELD」でなければなりません。

次の例では、ファイル内の 3 つの外部フィールド名 は、NAMEADR、 および ID です。

  1. サブフィールド name は 'UNKNOWN' に初期設定されます。
    1. 自由形式版のコードでは、サブフィールド名は外部名と同じであるため、 EXTFLD のパラメーターは必要ありません。
    2. 固定形式版のコードでは、このサブフィールドは名前変更されないため、EXTFLD キーワード は指定されていません。
  2. サブフィールド address は外部フィールド ADR から名前変更されます。
    1. 自由形式版のコードでは、外部名はリテラルとして指定されています。
    2. 固定形式版のコードでは、外部名は単純名として指定されています。
  3. サブフィールド id_number は 外部フィールド ID から名前変更され、-1 に初期設定されます。
    1. 自由形式版のコードでは、 外部名は値が「ID」である名前付き定数 ID_EXT_NAME として指定されています。
    2. 固定形式版のコードでは、 外部名はリテラルとして指定されています。
  DCL-C ID_EXT_NAME 'ID';  3a 
  DCL-DS custInfo EXTNAME('CUSTMAST');
     name EXTFLD INZ('UNKNOWN');  1a 
     address EXTFLD('ADR');  2a 
     id_number EXTFLD(ID_EXT_NAME) INZ(-1);  3a 
  END-DS;

D custInfo      E DS                  EXTNAME(custMast)
D  name         E                     INZ('UNKNOWN')  1b 
D  address      E                     EXTFLD(adr)  2b 
D  id_number    E                     EXTFLD('ID') INZ(-1)  3b 

名前が有効な単純 RPG 名でない場合には、リテラルとして指定する必要があります。 例えば、外部フィールド A.B を名前変更する場合には、EXTFLD('A.B') と指定します。

このキーワードは任意指定です。 指定されていない場合には、外部定義から抜き出された名前がデータ構造サブフ ィールド名として使用されます。

データ構造に PREFIX キーワードが指定されている場合、EXTFLD によって名前が変更されるフィールドには接頭部は適用されません。 図 1 に、ALIAS キーワードと一緒に EXTFLD キーワードを指定した例が示されています。