Nouveautés RPG-IV en V4R20

BoTTom |    Changer de couleur
 
 
          Version
 
 
 
 vvv               vvv  444                 RRRRRRRRRRRR     222222222222
  vvv             vvv   444                 RRRRRRRRRRRRR   222        222
   vvv           vvv    444                 RRR        RRR              222
    vvv         vvv     444                 RRR        RRR               222
     vvv       vvv      44444444444444  --  RRR        RRR            222
      vvv     vvv       44444444444444  --  RRRRRRRRRRRRR          222
       vvv   vvv        444    444          RRRRRRRRRRRR        222
        vvv vvv                444          RRR      RRR      222
         vvvvv                 444          RRR       RRRR    22222222222222
                               444
 
 
 
                        de l'OS/400 ...
 
 


|    Changer de couleur
 
 D'abord deux grandes annonces.
 
 A/ DOMINO sur l'AS/400
 
    - c'est le serveur domino UNIX transporté sur l'AS/400 grace à sa
        compatibilité de plus en plus grande (5 % de réécriture seulement)
 
    - cela apporte à l'OS le multithreading
 
 
     ° on supporte plusieurs serveurs en parallèle.
 
     ° on parle de 10.000 utilisateurs maxi.
 
 B/ JAVA sur l'AS/400
 
    - machine virtuelle JAVA complète intégrée à l'OS.
    - exécution en mode interpréte (JVM) ou compilé ((Class transformer)
    - support de RMI (Remote Method Invocation) et de remote AWT
        (AWT sont les classes qui gèrent l'interface graphique)
 


|    Changer de couleur
 
    - JAVA toolbox for OS/400
 
 
 JAVA Toolbox for OS/400 est un ensemble de classes qui permettent :
 
      ° une transformation des écrans 5250 (DDS) en classes AWT
      ° un accès aux programmes sur l'AS/400
      °              DTAQ/Data area
      °              fichiers IFS
      °              fichiers base de données via JDBC/SQL
      °              fichiers BD en mode ligne à ligne
      °              imprimantes AS/400
      ° des classes de conversion de types (packé vers integer, ...)
 
 
    - cette boite à outils est intégrée à
 
      + Visual Age for JAVA (version entreprise)
 
      + JBUILDER de BORLAND (équivalent à DELPHI mais en JAVA)
 


|    Changer de couleur
 
 divers OS/400 :
 
        nouvelles commandes
 
                  CRTLINPPP, CHGLINPPP   PPP sur TCP/IP
                  CRTNWIATM, CHGNWIATM   protocole ATM
 
                  CHGDDMTCPA, CHGDHCPA, CHGTCPDMN (cf TCP/IP)
 
        quelques commandes bizarres
 
                 STRDSKRGZ / ENDDSKRGZ  (réorganisation des disques)
                 ANZUSROBJ              (analyse des objets utilisateur)
                 STRQSH                 (démarrer le shell-interpreteur)
 
        versions supportés (previous release)
 
                 V4R1M0
                 V3R7M0
                 V3R2M0
 


|    Changer de couleur
 DB2/400
 
 ° Remote journaling  (uniquement via APIs)
 
   vous pouvez journaliser vos fichiers avec un récepteur distant.
 
 
 ° DRDA et DDM sur TCP/IP (One phase COMMIT seulement)
 
   il y a donc une nouvelle commande
 
                   CHGTCPDDMA  AUTOSTART(*YES|*NO)
                               PWDRQD(*YES|*NO)
 
 ° nouvelles fonctions
 
   CAST :  conversion, CAST( expression AS nouveau-type)
 
           exemple SELECT CAST(CODART AS CHAR)
 
                          CAST(SALAIRE AS INTEGER)
    ...


|    Changer de couleur
   CASE : condition à la réalisation d'une expression
 
   Exemples :
 
          SELECT MATRICULE, NOM,
 
                 CASE  SUBSTR(SERVICE, 1, 3)
 
                       WHEN 'INF' THEN 'INFORMATIQUE'
                       WHEN 'PER' THEN 'PERSONNEL'
                       WHEN 'PRO' THEN 'PRODUCTION'
                       WHEN 'COM' THEN 'COMMERCIAL'
                       ELSE 'Divers ....'
                  END
          FROM personnel  WHERE ...
 
         SELECT CODART, LIBART, PRIX,
                CASE
                WHEN   PRIX < 0      THEN 'prix négatif'
                WHEN   CODART = 1557 THEN 'pas de prix'
                ELSE   'prix normal' END
         FROM  ...   WHERE ...


|    Changer de couleur
 
   SELECT * FROM COMMANDES WHERE
            (CASE WHEN PRIXMOYEN = 0 THEN PRIXTARIF * QTE
                  ELSE                    PRIXMOYEN * QTE) > 10000
 
 
 
   le test peut être IS NULL / IS NOT NULL
 
   la valeur retournée (THEN|ELSE) peut être le mot réservé NULL
       (THEN NULL)
 
  Sécurité à la colonne :
 
  GRANT
  SELECT ,
  UPDATE(numtel,email)
  ON TABLE personnel
  TO richard;
 
  les droits ne sont accordés que via SQL mais peuvent être visualisés par
    DSPOBJAUT, EDTOBJAUT.


|    Changer de couleur
 
 Contraintes d'entité :
 
  il s'agit de définir les valeurs pouvant être placées dans une colonne
 
     par exemple :
 
         CONSTRAINT service_valide     CHECK(service IN (10, 20, 30, 40))
 
    ce qui peut être indiqué par la commande :
 
  ADDPFCST
 
 
         ADDPFCST FILE(personnel) TYPE(*CHKCST) CST(salairecst)
                 CHKCST('salaire< 1000000 AND prime<= salaire')
 
 ou par SQL
 
         ALTER TABLE personnel ADD CONSTRAINT salairecst
                 CHECK (salaire <  1000000 AND prime<= salary)
 


|    Changer de couleur
 procédures cataloguées écrites en PL/SQL
 
   CREATE PROCEDURE proclib/proc1
           (IN p_empno CHAR(10),
            IN new_level INT,
            OUT retcode int)
          language SQL
         proc1:
          BEGIN
            DECLARE var_level INT;
            DECLARE EXIT HANDLER FOR SQLEXCEPTION
              set retcode = sqlcode;
            SELECT level FROM employee
              INTO var_level
              WHERE empno = p_empno;
           IF new_level > var_level
              THEN
                UPDATE employee
                   SET level = new_level,
                          salary = salary + salary * .15
                  WHERE empno = p_empno;
          END IF;                                            END


|    Changer de couleur
 
 la structure générale d'une procédure devient :
 
     dans un CREATE PROCEDURE (qui lui n'est pas nouveau)
 
 BEGIN
        ATOMIC|NOT ATOMIC    ATOMIC indique que si un ordre génère une
                               erreur, un ROLLBACK doit être exécuté.
 
    DECLARE   nom-variable  type-variable (voir les types SQL)
 
     ou bien, déclaration d'une reprise face à erreur :
 
    DECLARE   [CONTINUE]    HANDLER FOR    SQLSTATE VALUE 'codesql'  ;
              [EXIT    ]                   SQLEXECPTION
              [UNDO   ]                    SQLWARNING
                                           NOT FOUND
 
 (corps de la procédure)
 
 
 END;


|    Changer de couleur
 
les nouveaux ordres SQL constituant le corps sont :
 
   SET variable = expression;
 
   CASE (idem CASE dans un select)
 
        WHEN condition THEN instruction-SQL-1;
        WHEN condition THEN instruction-SQL-2;
    ...
   END CASE
 
 
   WHILE  condition
                        instruction-sql;
   END WHILE
 
 
   IF condition THEN instruction-SQL1
                ELSEIF condition2 THEN instruction-SQL2;
   ELSE instruction-SQL3;
   END IF


|    Changer de couleur
 
 exemple :
 
 BEGIN
 
   DECLARE nouveau_salaire DECIMAL(9, 2);
   DECLARE var_matricule  CHAR(6) DEFAULT '001757'
 
   SELECT salaire INTO nouveau_salaire
                  FROM personnel       WHERE    matricule = var_matricule;
 
   IF code = 1
                THEN SET nouveau_salaire = nouveau-salaire * 1,1;
   ELSEIF code = 2
                THEN SET nouveau_salaire = nouveau-salaire * 1,05;
   END  IF
 
   UPDATE personnel
          SET salaire = nouveau_salaire
          WHERE matricule = var_matricule
 
   END;


|    Changer de couleur
 
 FOR nom_variables AS nom_curseur CURSOR FOR SELECT ........
 
     DO
 
         instructions devant être réalisées pour chaque ligne du curseur.
 
 END FOR;
 
 
 LOOP
        instructions à réaliser plusieurs fois
 END LOOP
 
 LOOP provoque une boucle infinie, vous devez sortir avec LEAVE
 
 LOOP
     FETCH C1 INTO .....
              IF SQLCODE <> 0 THEN LEAVE;
     ... traitement ...
 END LOOP;
 CLOSE C1;


|    Changer de couleur
 
 Hélas, cette fonctionnalité génère un source ILE/C400 contenant du
   SQL intégré (embedded SQL).
 
 Il faut donc le Compilateur ILE/C pour que tout cela fonctionne
 
    ( 8 Kf en groupe de facturation P05)
 
____________________________________________________________________________
 
 
 On annonce la compatibilité complète de DB2/400 avec UDB
 
 
    support des BLOBs (Binary large OBjects) ==> images, etc ...
 
 
    support des types de variables définis par l'utilisateur
      "     des fonctions définies par l'utilisateur
 
 
 


|    Changer de couleur
 
 Opération navigator a été amélioré afin de mieux intégrer l'accès à DB2/400
 
  il va supporter les fonctions définies par un tiers (via API)
 
  il va permettre de plus en plus d'administration en client/serveur
 
     TCP/IP
 
        - configuration
        - serveur à démarrer
        - configuration HTTP
        - DNS
 
     NetworkStation / Firewall
 
     Ultimedia System Facility (USF)
 
     gestion de la fonction journal
 
     Domino, ...
 


|    Changer de couleur
 Pendant que l'on parle de TCP/IP, quelques nouveautés pêle-mêle :
 +----------------------------------------------------------------------+
 | ° DHCP                | attribution dynamique d'adresses IP          |
 +----------------------------------------------------------------------+
 | ° DNS                 | centralisation de la correspondance          |
 |                       |    nom/adresse ip (plus de fichier HOSTS)    |
 +----------------------------------------------------------------------+
 | ° RIP2                | routage dynamique                            |
 +----------------------------------------------------------------------+
 | ° PPP                 | TCP/IP point à point sur réseau commuté      |
 +----------------------------------------------------------------------+
 | ° NUMERIS             | support de numéris en direct via PPP         |
 +----------------------------------------------------------------------+
 | ° TCP/IP sur ATM      | nouveauté de la V4R2 (plus de 50 Mbs)        |
 +----------------------------------------------------------------------+
 | ° TCP/IP / Twinax     | avec les cartes 5250 EXPRESS                 |
 |                       | (au fait, le 5250 a été "boosté" à 2Mbs)     |
 +----------------------------------------------------------------------+
 | ° TELNET              | nom d'écran significatif                     |
 |                       | support de l'intrégrateur (STRPCO, STRPCCMD) |
 |                       | saut de l'écran de SIGNON possible           |
 +----------------------------------------------------------------------+


|    Changer de couleur
 
 Dans la foulée, Client Access V3R1M3
 
      Support des noms d'écran en TELNET (Client Access en IP)
 
      sessions imprimantes en IP
 
      nouveau routeur NETSOFT 3.0 en SNA
 
      transferts de fichiers
 
                 barre de menu avec options ouvrir/sauvegarder
                 nouveau format HTML en sortie
                 possibilité d'ajouter une bibliothèque à *LIBL
                 le transfert de fichier est l'option appellée depuis PC5250
 
      INSTALLATION
 
                 mémorisation de la saisie pour répéter une installation
                  en mode silencieux (avec un fichie réponse)
                 choix de la fréquence pour le contrôle de version
 


|    Changer de couleur
 
 Accès à la base de données
 
     le projet "lightning" devient "AS/400 SDK for Active/X and OLE DB"
 
     il s'agit de classes permettant l'accès à DB2/400 de manière plus
      légère et plus universelle que ODBC.
 
       (Microsoft propose un produit identique dans SNA server)
 
   Le run-time est intégré à Client Access, les outils de developpement
    sont encore en béta-test (récupérables sur le WEB)
 
    on trouve entre-autre un assistant (Wizzard) pour Visual BAsic.
 
   ODBC
 
    on peut maintenant demander à faire du cache avec les PACKAGE SQL.
     (ils sont stockés sur le disque dur et non plus sur l'AS/400)
 
    ODBC pour NT devient multi-utilisateurs, ce qui peut éviter une config.
     sur chaque client (si vous avez un serveur NT)


|    Changer de couleur
 
 NT justement, nouvel FSIOP (ou IPCS) pour WINDOWS NT.
 
    Il vous faut un IPCS particulier (Pentium 200),
           avec une entrée  souris/clavier, une sortie VGA.
 
    il faut installer un soft OS/400 d'intégration avec NT (7 KF)
 
       le FSIOP peut utiliser ensuite les disques, CD et bandes de l'AS.
 
    vous achetez un NT 4.0 chez votre revendeur et vous installez à partir
     de la console.
 
 ATTENTION! LE NIVEAU D'INTEGRATION DE L'OS/400 AVEC NT EST FAIBLE.
 
   il faut, par exemple, faire un vary off du lecteur de bande pour que NT
    puisse l'utiliser.
 
   ou bien, vous ne voyez pas NT dans l'arborescence IFS (comme LANserveur)
 
 
 


|    Changer de couleur
 
Voisinage réseau (ou NETSERVER), permettant l'installation de Client Access.
 
 
 l'OS/400 implémente le protocole SMB qui est utilisé par NT/WARP.
 (vous installez un micro sous 95/NT et un AS/400  sur le même LAN et
   SANS SOFT supplémentaire, vos micros voient l'AS/400)
 
 
 Vous indiquerez via Operation Navigator, les bibliothèques et les OUTQ
   que vous souhaitez partager.
 
 
 Puis sur vos micros vous choiissez "rechercher/un ordinnateur" et vous
  verrez l'AS/400.
 
 
 vous pouvez assigner un lecteur réseau ('I:') et reconnectez
   automatiquement au démarrage.
 
 
 


|    Changer de couleur
 SDD et Dates.
 
 le langage SDD va (enfin) admettre les dates (type L) sur les DSPF/PRTF
 
     les mots-clés DATFMT / DATSEP sont acceptés bien sur.
 
 
 SDD apporte en plus un nouveau mot-clé complémentaire MAPVAL
 
 qui permet d'établir des correspondances entre :
  (valeur dans le programme / valeur à l'écran)
          (jusqu'à 100 correspondances)
 
 exemple :
 
     A          R FORMAT
     A            DATSUP          L         DATFMT(*DMY) DATSEP('/')
     A                                      MAPVAL(('01/01/40' *BLANK))
 
 lors d'un affichage si la zone contient '01/01/40' on affiche des blancs,
 et si l'utilisateur entre des blancs on envoi '01/01/40' au programme.
 


|    Changer de couleur
 
 Pour finir, RPG-IV :
 
 ° 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 pluô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
 
 + ACTGRP              définition du groupe d'activation
 
 + DFTACTGRP           appartenance(ou non) au groupe d'activation/défaut
 
 + ALWNULL             support(ou non) des valeurs nulles
 
 + BNDDIR              référence à un répertoire de liage indiquant la
                        liste des programmes de service utilisés.
 
 + INDENT              indentation du source
 
 + SRTSEQ              séquence de tri
 
 + LANGID              code langage
 
 
   ... bref tous les paramètres de la commande de compil.
 
       (sauf DBGVIEW qui n'est pas indiqué dans la documentation)


|    Changer de couleur
 
 Spécif F      INDDS(nom d'une DS constituée de variables de type N)
 
 Spécif D      VARYING
 
               définition d'une variable à longueur variable
 
 Spécif C      nouvelles fonctions
 
               %CHAR(date|heure|horodatage, expression)
 
                        conversion au format caractère
 
               %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