La Spécif H ILE/RPG-IV

BoTTom |    Changer de couleur
 
                          ILE / RPG-IV
 
 Historique du GAP :
 
 
   GAP II  ==> IBM 34 , 36
 
   GAP III ==> IBM 38
 
   RPG/400 ==> AS/400
 
 
  en V2R30, IBM propose un nouveau concept, ILE, permettant de mieux
                 intégrer certains langages. particulièrement le C.
 
 
  en V3R10, trois nouveaux compilateurs sont à la norme ILE (RPG, COBOL, CL)
 
            en même temps le RPG subit de profondes transformations de
             structure et de syntaxe pour devenir le RPG 4.
 


|    Changer de couleur
 
 la structure générale d'un programme RPG-IV est la suivante :
 
    (ce n'est plus HFELICO) mais HFDICO
 
     H
     F
     D
     I
     C
     O
**FTRANS
<---> source de conversion pour les fichiers lus.  (mot-clé FTRANS / H)
**ALTSEQ
<---> source de la table de tri                    (mot-clé ALTSEQ / H)
**CTDATA
<---> source des tableaux chargés à la compile.    (mot-clé CTDATA / D)
 
Si vous utilisez les codes **FTRANS, **ALTSEQ, **CTDATA l'ordre d'apparition
 des lignes sources n'importe pas.
Sinon, vous devez respecter l'ordre indiqué ci-dessus.
 


|    Changer de couleur
 Spécification de contrôle en RPG-IV  (spécif H)
 
   ! RPG-IV  !      Valeur                !
   !---------!----------------------------!
   !  6      !        H                   !
   !         !                            !
   ! 7-80    !   Mots-clés (format libre) !
   !         !                            !
   !---------!----------------------------!
 
 Si le source ne contient aucune spécif H, le compilateur cherche une
  data area nommée  1/ RPGLEHSPEC dans *LIBL
                    2/ DFTLEHSPEC dans QRPGLE
 
 Si aucune data area n'est trouvée, RPG assume des valeurs par défaut
  (voir les valeurs par défaut, mot-clé par mot-clé).
 
La spécification de contrôle peut occuper plusieurs lignes
 
Un mot-clé peut être scindé sur plusieurs lignes
 (sans marque de continuation)
 


|    Changer de couleur
 
Exemples :
 
     *.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+.
     HKeywords++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     H ALTSEQ(*EXT) CURSYM('$') DATEDIT(*MDY) DATFMT(*MDY/) DEBUG(*YES)
     H DECEDIT('.') FORMSALIGN(*YES) FTRANS(*SRC) DFTNAME(name)
     H TIMFMT(*ISO)
 
     HKeywords++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     H ALTSEQ(
     H         *EXT
     H              )
Mots-clés :
 
 + ALTSEQ(*NONE *SRC *EXT)  séquence alternée.
 
  Il s'agit du critère de tri/comparaison utilisée par IF, COMP, SORTA, ...
 
 *NONE (ou mot-clé absent)  = séquence de classement normale
 *SRC  (ou sans paramètre)  = séquence de classement indiquée dans le source
 *EXT                       = SRTSEQ et LANGID de la commande CRTRPGxxx


|    Changer de couleur
 
Avec ALTSEQ(*SRC) le compilateur ira chercher le source de la table de tri
 en fin de source.
 
 1 à 6 ALTSEQ
 7  10  à blanc
11  12  valeur héxa du caractère d'origine
13  14  valeur héxa du caractère de remplacement
 ....    et ainsi de suite
 
**ALTSEQ
ALTSEQ    81C182C2....
 
 + CURSYM('x')  où x est le symbole monétaire
 
 + DATEDIT(format<séparateur>)  format d'édition de la date
 
  Représente le format d'édition des variables numériques avec edit-code Y
 
 formats valides : *YMD, *MDY, *DMY
 séparateur par défaut : '/' (& = l'espace)
 


|    Changer de couleur
 + DATFMT(format<séparateur>)  format par défaut des variables date.
 
   formats valides : *YMD,*MDY,*DMY,*JUL - *ISO,*USA,*EUR,*JIS
   séparateurs     : <--- au choix ---->   <---- imposé ----->
 
 + DEBUG(*NO/*YES)  rend actif (*YES) le code opération "DUMP".
 
 + DECEDIT('x')  format d'édition des données numériques.
 
   il n'y a plus de dépendance avec le format de la date.
 
   '.'  123/1000 =  .123  <- défaut
   ','           =  ,123
   '0.'          = 0.123
   '0,'          = 0,123
 
 + DFTNAME(nom)  nom du programme ou module
                 si non précisé, RPG utilise les paramètres de CRTRPGxxx
 
 + FORMSALIGN(*NO/*YES)  *YES fait que le système demande de vérifier
                          l'alignement lors de l'impression d'une spécif O
                          conditionnée par 1P.


|    Changer de couleur
 + FTRANS(*NONE/*SRC)  conversion des fichiers.
 
   FTRANS(*SRC) fait référence à une spécif **FTRANS en fin de source,
    indiquant les caractères à convertir pour un ou plusieurs fichiers
   (il y a aussi conversion de l'argument utilisé par CHAIN,SETLL,...)
 
 1 à 8 *FILES          conversion s'appliquant à tous les fichiers
 1 à 8 nom de fichier  conversion s'appliquant à un fichier particulier
                       (le nom est celui utilisé en Spécif F).
 9  10  à blanc
11  12  valeur héxa du caractère d'origine
13  14  valeur héxa du caractère de remplacement
 ....    et ainsi de suite
                           !
**FTRANS                   !  ou    **FTRANS
*FILES    81C182C2....     !        FIC01     81C182C2....
                           !        FIC02     F1C1F2C2....
 
 + TIMFMT(format<séparateur>)  format par défaut des variables heure
   formats valides : *HMS - *ISO,*USA,*EUR,*JIS
   séparateurs     :  !     <---- imposé ----->
                      !-> au choix


|    Changer de couleur
 
 Mots-clés des versions V3R60 / V3R20 :
 
 + NOMAIN  (sans paramètres) : source ne contenant que des procédures.
 
           n'ayant pas de programme principal, il n'y aura pas de cycle
             généré par le compilateur (c'est une première)
 
 + COPYRIGHT('votre signature') 
 
          génère un copyright dans le programme ou le programme de service.
 
 Mots-clés en V3R70 :
 
 + COPYNEST(1 -2048) support des /COPY imbriqués
 
 + EXPROPTS(          ) précision des variables intermédiaires.
            *MAXDIGITS : nombre maximal de chiffres après la virgule.
            *RESDECPOS : même précision de la variable résultat
 
 + FLTDIV(*NO ! *YES)   indique si les divisions (dans les expressions)
                         sont faites en notation scientifique.


|    Changer de couleur
 
 Nouveaux mots-clés en spécif H  V4R20 :
 
  (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 (dft)
            *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 (dft)
           *NODATETIME    + pas de support des variables date/heure
 
           *VARCHAR       + support des variables à lg variable (dft)
           *NOVARCHAR     + pas de support des variables à lg variable
                             (elles sont transformées à 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 performances pour les appels
                             et retours de programme
              *ENTRYEXIT  + collecte les performances pour les appels
                             et retours de toutes les procédures
              *ENTRYEXIT) + collecte des performances 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 invalides sont remplacés par zéro, les
                        signes invalides par + .
 
    FIXNBR(*ZONED       | *NOZONED         > sur le numérique étendu
 
           *INPUTPACKED | *NOINPUPACKED)   > sur le 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 français
 
 + 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('votre texte') 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
 
 Nouveaux mots-clés en spécif H  V4R40 :
 
 
 + OPTION(*SRCSTMT | *NOSRCSTMT)
 
    avec *SRCSTMT le compilateur génère une table de DEBUG
     ou chaque instruction porte le N° de ligne source
 
    avec *NOSRCSTMT les lignes dans l'objet sont numérotées en séquence
 
 
 
 + OPTION(*DEBUGIO | *NODEBUGIO)
 
    avec *DEBUGIO le compilateur génère dans la table de DEBUG
     une ligne par spécif I (ou O). ainsi un READ peut entrainer
     10 points d'arret (ou plus) en mode pas à pas.
 
    avec *NODEBUGIO, un READ entraine UN SEUL point d'arret.
 
 


|    Changer de couleur
 + CCSID(*GRAPH : *IGNORE | *SRC | n°)
 
    indique le CCSID DBCS par défaut pour le module.
 
 + CCSID(*UCS2 :  n°)
 
    indique le CCSID UNICODE par défaut pour le module (dft = 13488)
 
 
 + INTPREC(10 | 20)
 
    indique la précision par défaut pour les calculs en binaire
 
 + OPENOPT(*NOINZOFL | *INZOFL)
 
    indique si l'indicateur d'Overflow doit être remis à *OFF (*INZOLF) ou
      non lors d'un OPEN sur le PRTF.
 
 + THREAD(*SERIALIZE)
 
    indique que ce pgm est compatible avec les threads (Java).
 





©AF400