Nouveautés RPG-IV en V4R20

BoTTom |    Changer de couleur
 
 RPG-IV en V4R20 :
 
 ° support des variables à longueur variable (VARLEN en SDD)
 
 ° variables utilisateur de type indicateur (N) et possibilité d'associer
     votre propre DS à un écran avec le mot-clé INDARA.
 
 ° nouvelles fonctions pour tester le résultat d'une entrée/sortie fichier
 
 ° options de compilation pouvant être indiquées sur la spécif H plutôt
    que sur la commande de compil. (pour utiliser l'option 14 de PDM)
 
 ° nouvelles fonctions de traitement de chaînes de caractères.
 
 ° le mot-clé OVERLAY peut faire référence à une DS.
 
 ° le format *CYMD est modifié, la valeur de "C" pouvant être 2 pour 21xx
                                                              3 pour 22xx
                                                                 ...
                                                              9 pour 28xx
 


|    Changer de couleur
 
 Nouveaux mots-clés en spécif H
 
  (pratiquement tous les paramètres des commandes de création sauf DBGVIEW)
 
 
 + ACTGRP              définition du groupe d'activation
 
    ACTGRP(*NEW          + un nouveau groupe est créé à chaque appel
           *CALLER       + appartient au même groupe que le pgm appellant
           un-nom)       + appartient au groupe indiqué
 
 + DFTACTGRP           appartenance (ou non) au groupe d'activation par dft.
 
    DFTACTGRP(*YES | *NO)
 
 + ALWNULL             support (ou non) des valeurs nulles
 
    ALWNULL(*NO          + pas de support des valeurs nulles
            *INPUTONLY   + en lecture uniquement
            *USRCTL)     + support et gestion de la fonction %NULLIND()
 


|    Changer de couleur
 
 + BNDDIR              référence à un répertoire de liage indiquant la
                        liste des programmes de service utilisables.
                       ce mot-clé est invalide avec DFTACTGRP(*YES)
 
    BNDDIR(répertoire1(:répertoire2:(répertoire3)))
 
    il est possible de qualifier chaque répertoire de liage
 
 + CVTOPT              options de conversion
 
    CVTOPT(*DATETIME      + support des variables date/heure
           *NODATETIME    + pas de support des variables date/heure
 
           *VARCHAR       + support des variables à lg variable
           *NOVARCHAR     + pas de support des variables à lg variable
                             (elles sont transformée à lg fixe)
 
           *GRAPHIC    | *NOGRAPHIC       variables DBCS à lg fixe
 
           *VARGRAPHIC | *NOVARGRAPHIC)   variables DBCS à lg variable
 


|    Changer de couleur
 
 + COPYNEST            support des /COPY imbriqués
                       on appelle copie imbriquée, la copie d'un membre
                       source contenant lui-même un ordre /COPY.
 
    COPYNEST(20)         20 niveaux admis.
 
 + ENBPFRCOL           Accepter les collectes de performances
 
    ENBPFRCOL(*PEP        + collecte les performmances pour les appels
                             et retours de programme
              *ENTRYEXIT  + collecte les performmances pour les appels
                             et retours de toutes les procédures
              *ENTRYEXIT) + collecte des performmances complète
 
 + PFRDTA              collecte de statistiques pour profilage du programme
 
                       le profilage de programme est une technique qui
                         consiste à réorganiser les procédures en fonction
                         de statistiques d'utilisation,avec OPTIMIZE(*FULL).
 
    PFRDTA(*COL | *NOCOL)


|    Changer de couleur
 
 + EXTBININT           Format des zones externes binaires
 
    EXTBININT(*NO         + les zones binaires sont transformées en B
                            (maxi 9999 sur 2 octets)
              *YES)       + les zones binaires sont laissées en I
                            (maxi 32767 sur 2 octets)
 
 + FIXNBR              correction des données numériques invalides
 
                       si vous choisissez la correction, les blancs et les
                        chiffres inavlides sont remplacés par zéro, les
                        signes invalides par + .
 
    FIXNBR(*ZONED       | *NOZONED         > numérique étendu
 
           *INPUTPACKED | *NOINPUPACKED)   > numérique packé
 
 
 + GENLVL              niveau de gravité empéchant la création du pgm.
 
    GENLVL(20)


|    Changer de couleur
 
 + INDENT              indentation du source
 
    INDENT('--')
 
 + LANGID              code langage
 
    LANGID(*JOBRUN      code langage du JOB qui exécute
           *JOB         code langage du JOB qui compile
           'FRA')       code langage francais
 
 + SRTSEQ              séquence de tri
 
    SRTSEQ(*HEX | *JOB | *JOBRUN | *LANGIDUNQ | *LANGIDSHR | 'table-de-tri')
 
 + OPTIMIZE            niveau d'optimisation
 
    OPTIMIZE(*NONE      pas d'optimisation
             *BASIC     optimisation de base
             *FULL)     optimisation complète
 
 


|    Changer de couleur
 + OPTION              options de compilation
 
   OPTION(*XREF     | *NOXREF       production des références croisées
          *GEN      | *NOGEN        génération du programme
          *SECLVL   | *NOSECLVL     impression des messages de second niveau
          *SHOWCOPY | *NOSHOWCOPY   impression des /COPY
          *EXPDDS   | *NOEXPDDS     impression des descriptions externes
          *SHOWSKP  | *NOSHOWSKP)   impression des lignes sources ignorées
                                     (à cause des directives de compil)
 
 + TEXT                texte du programme
 
 + TRUNCNBR            en cas de dépassement de capacité, génération d'une
                        erreur ou troncature.
    TRUNCNBR(*NO | *YES)
 
 + USRPRF              profil de référence
 
    USRPRF(*USER       le profil de référence en ce qui concerne la gestion
                        des droits est l'utilsateur seul.
           *OWNER)     les droits du propriétaires du programme s'ajoutent
                        à ceux de l'utilisateur.


|    Changer de couleur
 
 Spécif F      INDDS(nom d'une DS constituée de variables de type N)
 
     FECRAN01   CF   E             WORKSTN INDDS(indic)
 
.../...
 
     Dindic            DS            99
     D  exit                           N   overlay(indic:3)
     D  invite                         N   overlay(indic:4)
     D  annul                          N   overlay(indic:12)
 
 
 
 Spécif D      VARYING
 
               définition d'une variable à longueur variable
 
                 on teste la longueur par x = %len(nom)
 
                 on assigne par %len(nom) = 20
                            OU  %len(nom) = %len(trimr(nom))


|    Changer de couleur
 
 Spécif C      nouvelles fonctions
 
 %CHAR 
               %CHAR(date|heure|horodatage, expression)
 
                        conversion au format caractère
 
 %REPLACE 
               %REPLACE(c1:c2[:p[:lg]])
 
                        remplace par c1 la chaîne de caractère commencant
                         à la position (p) dans c2 sur (lg) caractères.
 
 
exemple        eval    x = %scan('4':var1)             [var1 = 'AS/400']
 
               eval    var2 = %replace('5':var1:x:1)   [var2 = 'AS/500']
 
ou directement eval    var2 = %replace('5':var1:%scan('4':var1):1)
 
 


|    Changer de couleur
 
            %OPEN(fichier)       retourne '1' si le fichier est ouvert
 
            %EOF(fichier)        retourne '1' si on est en fin de fichier
 
            %STATUS(fichier)     retourne 0 si la dernière entrée/sortie
                                  est normale, sinon retourne le status.
 
            %ERROR et extension (E) , vous pouvez sur tous les ordres
                                  acceptant un indicateur d'erreur (<<)
                                  indiquer une extension (E) et tester
                                  (if %error) ensuite.
 
            %EQUAL               retourne 1 si le dernier SETLL ou le
                                   dernier LOOKUP a trouvé l'égalité.
 
            %FOUND               retourne 1 si le dernier SETLL, SETGT,
                                  DELETE, CHAIN a trouvé un enregistrement
                                 ou si le dernier CHECK, CHECKR, SCAN
                                  a trouvé la chaîne de caractère.
 
 


|    Changer de couleur
 
 Exemples : vous remarquerez que les indicateurs ne sont pas indiqués sur
  la ligne de l'opération d'entrée/sortie, ils sont devenus facultatifs.
 
   1.
     C     code          chain     ARTICLE
     C                   IF        %FOUND
     C                   ....
     C                   ....
     C                   ENDIF
 
 
   2.
     C     code          chain     ARTICLE
     C     code          chain     ENTETCDE
     C                   IF        NOT %FOUND(ARTICLE) AND %FOUND(ENTETCDE)
     C                   ....
     C                   ....
     C                   ENDIF
 
 toutes ces fonctions vont vers la limitation des 99 indicateurs
 





©AF400