Pause-Café Volubis

pause-café

rendez-vous technique
Pause-Café est une réunion technique
destinée aux informaticiens sur plateforme IBM i.
Elle a lieu 3 à 4 fois par an : en Bretagne et sur internet.

Pause-café #23

Avril 2001

Quelques rumeurs, et un peu plus, concernant la V5R10 (a priori annoncée en MAI ou JUIN)

  • LPAR, plusieurs partitions par processeur, redimensionnement dynamique, Linux sur un partition

  • e-Print
    • Transformation des sorties du 400 au format PDF, à destination du spool, d'un fichier IFS ou d'un mail
    • Envoi automatique de mail.
    • Transformation de PCL, PostScript et PDF vers l'AS/400 (en entrée cette fois)
    • et autres nouveautés .....

  • TCP/IP
    • Support de la notion de qualité de service (QOS) pour une gestion des priorités réseau
    • Nouveau serveur DNS (dynamic DNS)
    • Gestion améliorée d'IP via Operation Navigator

  • Nouveau package de dévelloppement, intégrant
    • CODE/400 (revu et corrigé) qui comprend :
      • Un éditeur de source Client / serveur (mise en évidence des erreurs, diagramme d'enchaînement, ...)
      • l'équivalent de SDA et de RLU en mode WYSIWYG et permettant de travailler sur plusieurs formats.
      • un outils de conception de fichiers physiques (générateur de DDS)
      • CPO (le petit frère de PDM), mais en mode client/serveur avec recherches milticritères, tout aussi paramétrable que PDM.
    • VisualAge RPG
    • VisualAge p. JAVA
    • Websphere Studio
    • WebFacing (nouvel outils permettant de créer des pages JSP à partir des DSPF actuels afin qu'un pgm RPG ou COBOL puisse fonctionner aussi bien dans le monde 5250 que dans le monde du WEB). Ce nouvel outils est annoncé par IBM comme une avancée MAJEURE.
    • IBM distributed Debugger, pour faire du Debug sur tous ces langages

    • le tout pour quelques chose comme 300 US $ (2000/2500 Francs) par poste, et éligible dans le cadre de l'abonnement logiciel !

  • Client Access
    • nouvelle version incluant ODBC 3.5, le nouvel Operation navigator, des améliorations OLEDB, .
    • OPERATION NAVIGATOR :
      • gestion des partitions (LPAR)
      • gestion des valeurs système
      • gestion des pools système
      • gestion des sous systèmes
      • gestion des JOBQ
      • gestion des travaux actifs
      • possibilité d'utiliser une invite (Java) lors de la saisie de commandes
      • DataBase navigator !
  • WEB Access
    • sous ensemble de client Access, s'exécutant sous forme de servlet sur l'AS/400, pour un accès simplifié à l'administration graphique (Operation Navigator) a l'aide d'un navigateur.
  • DB2
    • CREATE TRIGGER SQL (en PL/SQL comme les procédures et les fonctions)
    • trigger à la colonne (CREATE TRIGGER uniquement)
    • le PL/SQL ne DEVRAIT (remarquez le conditionnel) plus avoir besoin du compilateur C !!!!!!
    • DataBase Extender (intégré à DB2 ou produit facturable ????) gérant XML et les recherches textuelles

  • RPG (la plus grosse version depuis la V3R10)

    1. de nouvelles fonctions intégrées [%CHECKR, %XLATE, %LOOKUP, %SCANR, etc [plus de 20] ]
    2. code-opération MONITOR (genre MONMSG en CL)
    3. du VRAI format libre (adieu veaux, vaches, facteur1, ...)
           reconnu quand encadré de /free et terminé par /endfree (en colonne 7)
           /free
             Read(n) clients;
              if (not %EOF);
                 For i = 0 to max;
                   x = y(i); 
                 EndFor; 
             EndIf;
           /endfree;
                                    
    4. Mots-cle EXTFILE, EXTMBR faisant référence à des variables qui vont contenir le nom du fichier réel à ouvrir
      (des OVRDBF internes au RPG)
    5. l'ordre ELIF permettant de mieux imbriquer les IF (il y a un IF/un ENDIF et autant de ELIF que vous voulez)
    6. Noms qualifiés pour les data structure :
      Vous pouvez créer 2 Data structures contenant la zone toto,
      vous utilisez DS1.toto ou DS2.toto pour gérer les litiges dans votre code.
    7. et quelques autres nouveautés !!!

     

  • IBM prévient de quelques changements important au niveau de l'OS/400

    • nouvel algorithme de cryptage des mots de passe (paramètrable par une valeur système QPWDLVL)
    • la liste des bibliothèques passe de 25 à 250 (attention à RTVJOBA et autres Api)
    • n'altérez pas les objets programmes, conservez l'observabilité.

 

V4R5, Electronic Services

 

Vous pouvez maintenant gérer vos incidents via Electronic Services:

il vous faut

  • Un AS/400 en V4R50 (éventuellemnt, V4R20 et suivantes avec PTF)
  • Service director et son option Service Agent, qui sera installé par la maintenance
  • Un poste avec Opération navigator pour la configuration initiale

    L'inspecteur doit créér une ligne PPP (TCP/IP sur RTC) avec AT&T - IGN.

Pour utiliser, vous taperez comme URL www.ibm.com/service/electronic/emea

A la première utilisation vous verrez

il faut ajouter votre système

 

En indiquant la clé (créée par service director) et remise par votre inspecteur favori.

les autres fois (deuxième connexion et plus), vous verrez :

 

Toutes ces informations sont remontées par votre AS/400 à l'aide de service director
(il ya un poste dans le planificateur [WRKJOBSCDE].)

 

 

Vous pouvez rechercher dans la base des problèmes connus (elle est assez peu fournie pour l'instant)

 

 

 

Descendre une PTF

 

Voir vos incidents précédents (questions déja posées au point service)

 

et signaler de nouveaux incidents (cela revient à poser une nouvelle quesiton)

 

Vous pourrez alors, suivre l'évolution du problème (ici le point service essaie de rappeler le client par téléphone)

puis il suggère une PTF :

 

Malheureusement, la taille de la PTF exède les limites prévue, il faut donc accepter un autre mode de livraison

et la PTF sera recue par courrier, espérons qu'elle corrigera le problème....

 

>>> ps: c'est le cas !

 


Gestion du caractère EURO ( € )

 

L'OS/400 vous permet de gérer le caractère EURO depuis les versions V3R20 et V4R10 de l'OS/400 via PTF

(voir la liste des PTFs sur http://www-1.ibm.com/servers/eserver/iseries/euro/roadmap.htm )

- R320: SF99205
- R410: SF99206
- R420: SF99207
- R430: SF99208

voyez les groupes PTF disponibles avec l'APAR II11523

 

et depuis les version V4R40 et suivantes sans PTF additionnelles pour l'OS/400


 

Tout est basé sur la notion de jeux de caractères et de codes page:

 

voici donc un petit rappel:


 N L S : Nationnal Language Support
         gestion des paramètres liés à la notion de langue et de pays           et gestion de sites multilangues.
L'AS/400 sait s'adapter à la notion de pays et de langue,
  vous connaisser certainement déja des paramètres propres à un pays :                                                                                     QDECFMT format décimal             J = virgule        QDATFMT format de la date          DMY        QDATSEP séparateur de la date      /        QTIMSEP séparateur de l'heure      :        QKBDTYP type de clavier/dft        FAB français azerty                                          (FAI    "      "    multinationa l                                           FQB français qwerty                                           FQI    "      "    multinationa l)





  Viennent s'ajouter à ces paramètres                     + la notion de jeu de caractères                     + la codification de ces caractères
  quelques définition :
  - système de codage EBCDIC ou ASCII                       SBCS (single byte character set)                            = 1 octet pour un charactère                       DBCS (double byte   "        " )                            = 2 octets pour un caractère                              alphabet asiatique (chinois,etc...)
    la valeur système QIGC signale si votre système admet le codage DBCS      "  "       "     QIGCCDEFNT indique la police de caractère à utiliser.
 - jeu de caractères 
   ensemble des caractères propres à un langage
    reconnus par les terminaux(claviers,imprimantes,..) de ce pays.


 pour le codage SBCS il existe une partie invariante qui est :       les caractères entre A-Z              "        "    a-z              "        "    0-9       et 19 symboles + < = > % & * " ' ( ) , _ - . / : ; ?
 c'est le jeu de caractères 640. 
 puis le jeu de caractères LATIN 1 comprenant en plus tous les caractères   accentués (non connus par les anglo-saxons)
 à è é ê ë Ä Ï etc ...
 et quelques symboles supplémentaires : { } @ # ľ | [ ] etc ...  (ces symboles ne sont pas reconnus par tous les terminaux)
c'est le jeu de caractères 697 (celui utilisé en france)
les jeux 1252 et 1253 comprennent des caractères supplémentaires                       (alphabet hébreu,cyrillique,...)


 - point de code     
   c'est la valeur héxa attribuée à un caractère
 - page  de code     
   c'est le croisement jeu de caractères/point de code.
   autrement dit : c'est l'ensemble des valeurs héxa attribuées dans un pays                     à un jeu de caractères donné.
   exemple: en angleterre x'5B' = £             au U.S.A      x'5B' = $ (en france aussi)             au japon      x'5B' = Ľ
   le code page U.S est le 037    le code page multinational est le 256    le code page français est le 297 
   voici le détail de ce code page :



 - CHRID                (notion venant du 38)
   c'est le stockage de votre jeu de caractères (5 premiers chiffres)                      et de votre code page     (5 suivants)
   destiné à une conversion DES CONSTANTES à destination des périhériques. 
   Si CHRID du fichier unité(DSPF) <> CHRID de l'unité(*DEV),    il y a alors une conversion effectuée par le système en utilisant une     (ou des) table(s) de conversion Qssscccppp dans QUSRSYS.
    où sss est le code page source        ccc     le jeu de caractères cible        ppp     la page de code cible
   par exemple : Q297337256 est la table permettant de faire une conversion                  français (297) vers multinationa l (337 256).
   le CHRID par défaut est donné dans la valeur système QCHRID                                                         697 297 en France


 - CCSID                (notion de la V2R11)
   représentation interne (codée) du CHRID    destiné à une conversion DES DONNEES lors de leur manipulation.          
   Utilisé dans le cadre de CDRA(Character Data Représentation Architecture)     en association avec DRDA (bases de données distribuées)
   Chaque donnée manipulée est "taggée" avec un code représentant les     particularités liées au langage :                                       - système de codage (SBCS,DBCS)                                       - jeu de caractères                                       - page de code                                       - infos sup.
   Ce "tag" est construit à partir du CCSID qui en SBCS avec un jeu de     caractères standard ne peut contenir QUE : - le code page du CHRID                                                   297 en france                                           ou  - la valeur 65535                                                (pas de conversion)     (toutes les valeurs comprises entre 00001 et 28761 sont copyright IBM)

 Sur AS cette valeur est donnée par défaut par la valeur système QCCSID

     puis associée à un profil (dft = *SYSVAL)
          ce qui donne la valeur pour le job (modifiable via CHGJOB)
 Puis chaque fichier (PF) se voit associé un CCSID (mot-clé SDD CCSID)         - par défaut celui du langage principal.
 et ENFIN quand des données sont manipulées (DRDA, DDM, E/S pgm, ...)
 si le CCSID du job est différent du CCSID du fichier et s'ils sont tous les  deux différents de 65535, il y a conversion des données de type charactère:   ( type "A" dans la langage SDD. )
 + vers le CCSID du JOB en cas de lecture.  + vers le CCSID du fichier en cas d'écriture.
  - cela ne concerne pas les variables numériques bien sur                          les variables de type "H" (héxa,non soumises à la                                                     notion de langue)                          les fichiers sans description (interne)


 cette fonctionnalité est reconnue par :
 - le gestionnaire de base de donnée OS/400 (toutes opérations) 
 - les commandes de copie (CPYF, CPYFRMQRYF)
 - DRDA (SQL, QM, DDM)
 - OPNQRYF (CCSID accepté dans MAPFLD)            (conversion lors de la requête)
 - SNADS
 TOUT SYSTEME OS/400 antérieur à la V2R11 est considéré CCSID 65535.
 La valeur par défaut de QCCSID est 65535
 Le CCSID des fichiers créés avant la V2R11 est 65535.
    (modifiable par CHGPF)


DEPUIS LA V2R30 les fichiers unité :DSPF,PRTF,*PNLGRP(aides et menus)  acceptent la valeur suivante:
- CHRID(*JOBCCSID)
* fichiers écrans : CHRID(*JOBCCSID)
  variables en entrée converties : CCSID/DEVD -> CCSID/JOB   variables en sortie converties : CCSID/JOB  -> CCSID/DEVD   constantes          converties : CCSID/DSPF -> CHRID/DEVD   messages d'erreur non convertis avant la V4R40
  textes de fichiers message     : CCSID/JOB  -> CCSID/DEVD    (autres que message d'erreur)
* fichiers écrans : CHRID(xxx yyy) CHRID/DSPF -> CHRID/DEVD                                    (zones avec le mot-clé CHRID)  * fichiers écrans : CHRID(*DEVD)   pas de conversion la même notion est implémentée pour les PRTF et les pannels UIM

 

AUTRE NOUVEAUTE V2R30 : les tables de séquence permettent d'avoir des tris                          et des tests logiques (compraraisons) fonction                          du langage (voir le cours "Séquences de tri")



Pour implémenter l'euro il a fallut modifier le jeux de caractères , en fait en créer un nouveau qui est le LATIN-9

  1. Pour l'ISO : 923 (qui remplace le 819)
  2. ASCII : 858 (remplace le 850)
  3. sous MS-Windows, c'est intégré à l'ANSI (1252)
  4. Sur l'AS/400 : 695

et lui associer un nouveau code-page , par pays:

 

en france le 1147 :

 

le caractère euro [ € ] est placé en x'9F' et remplace le caractère [ ¤ ].

 

En ce qui concerne vos valeurs système,

 

SYSVAL Ancienne val. Nouvelle val.
QCCSID 297 1147
QCHRID 697 297 695 1147
QKBDTYPE FAB FAE
QCURSYM F

 

Pour afficher ce caractère, vous devez avoir :

  • un terminal INFOWINDOW II (à mettre à jour)
  • une Networkstation (PTF)
  • Un émulateur implémentant cette notion (c'est le cas de Client Access et de PC5250, voir l'APAR II11456) auquel cas , il faut aussi mettre à jour vos OS client, pour cela voyez www.microsoft.com/europe/euro/

  • la saisie se fait par ALTGR + E (ou Alt+128 sous MS-Windows, pour un PC en langue non européenne.)

du coté client , il faut configurer votre session avec comme code page 1147 :

PC5250:


 

Networkstation :

 

l'affichage du caractère euro se fait sous cette forme :

 

L'unité est automatiquement configurée en CHRID(695 1147)

 

  • Pour les terminaux derrière des contrôleurs 5494, il faut se mettre au niveau 3.2 minimum et indiquer comme code clavier '4E'

  • pour les imprimantes, il y a multiplicité des problèmes :
    • votre imprimantes est-elle capable physiquement d'imprimer le caractère EURO ?
    • dispose-t-elle de la police adéquat, si c'est un imprimante laser
    • Il y a peut-être des mise à jour à télécharger

     

  • Pour les imprimantes acceptant le caractère EURO, il faut renseigner le CHRID sur l'unité
  • Pour les OUTQ remote, il faudra renseigner le même paramètre, mais sur le PRTF
  • Et enfin, l'OS/400 intègre la gestion de l'EURO dans HPT (Host Print Transform) particulièrement lors de la transformation vers PCL5, où il gère le téléchargement de la police de caractère préalablement au spool lui même.(cas d'une device avec PJL ou OUTQ remote)

Applications :

  • voyez le détail sur le site vu plus haut, remarquons :

  • la gestion des codes pages EURO est intégrée à IFS

  • serveur WEB, (l'euro est intégré au HTML par "&euro;") : Il est conseillé de le configurer avec :

    DefaultNetccsid 923 (code page du réseau) DefaultFSccsid 1147 (code page du système de fichier)

  • COBOL, l'utilisation des LOCALES est la solution préconisée par IBM
    (FR_FR_E en SPECIAL NAMES)

  • RPG, ne supporte pas les mulitples CURRENCY SIGN, on vous conseille donc l'utilisation de %EDITC(montant : '3' : '€') qui applique le code d'édition 3 avec comme symbole monétaire l'EURO (Attention le résultat produit est une Chaîne)

  • DSPF, PRTF, vous pouvez utiliser EDTCDE(3   '€') en face d'une zone numérique, si le symbole monétaire est l'EURO (QCURSYM),
    ou une Constante, 'EUR' par exemple..

  • DB2 : Utilisez le CCSID 1147 si vous devez mémoriser le caractère dans vos fichiers.
    (dans les libellés, les commentaires de commande, etc..).
    Le seul danger à passer vos bases en CCSID 1147 est que, si vous utilisez actuellement le caractère "¤", il devient "€",
    le "¤" quant à lui devient non affichable (x'20').

 

ATTENTION Fin MARS 2001, un bug est détecté par un éditeur et reconu par IBM.

Si vous tranferez des données AS/400 (CCSID 1147) vers un pays (US particulièrement) n'implémentant pas l'Euro, le caractère disparait.La PTF est en cours ....