6. REDEFINES

Pour les besoins de certains traitements, il est parfois important de pouvoir spécifier des groupages différents dans une structure ou de définir des structures différentes au sein même d’un fichier.

Il faudra faire très attention aux USAGE aux tailles et aux VALUE utilisés dans les différentes descriptions de données.

S’il s’agit d’un fichier dans lequel une redéfinition de la structure générale est nécessaire l’option DATA RECORD ARE ENREG1 ENREG2, sert de REDEFINES et ce mot réservé ne peut être utilisé au niveau 01.

Lorsqu’il s’agit d’un REDEFINES de niveau 01 les longueurs peuvent être différentes la structure la plus longue devant toujours se trouver en première position. S’il s’agit d’un autre niveau les longueurs doivent toujours être identiques.

01 Rates.
   02 Rate1           PIC 99V999.
   02 Rate2 REDEFINES Rate1 PIC 999V99.
   02 Rate3 REDEFINES Rate1 PIC 9999V9.

01 HoldDate.
   02 EuroDate.
      03 EuroDay   PIC 99.
      03 EuroMonth PIC 99.
      03 EuroYear  PIC 9(4).
   02 USDate REDEFINES EuroDate.
      03 USMonth   PIC 99.
      03 USDay     PIC 99.
      03 USYear    PIC 9(4).

01 LetterTable.
   02 TableValues.
      03 FILLER PIC X(13) VALUE "ABCDEFGHIJKLM".
      03 FILLER PIC X(13) VALUE "NOPQRSTUVWXYZ".
   02 FILLER REDEFINES TableValues.
      03 Letter PIC X OCCURS 26 TIMES.

01 BonusTable.
  02 BonusValues.
    03 FILLER PIC X(24) VALUE "507590758595354365406085".
  02 FILLER REDEFINES BonusValues.
    03 Province OCCURS 4 TIMES.
      04 Bonus OCCURS 3 TIMES PIC 99.