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 fois par an : en général en Bretagne et sur Paris.

Pause-café #82

Septembre 2019
le 25 à Paris (Mas), le 26 à Guipry (la Minoterie.) ,

V7R4


IBMi, version 7.4

Attention

 

 

 

Sinon, voyez la liste des PTF préalables : https://t.co/FNf1wWLOiq?amp=1

 

Installation, comme d'habitude...

passez par GO LICPGM, option 5 pour préparer l'installation



Gestion des logiciels sous licence - Edition cible (chargez les CD ou la clef USB)


impératif, acceptez les licences à l'avance, au mois pour le microcode et l'OS

 

Pensez bien à réserver un espace supplémentaire

 

 

 

Nous sommes parti d'une clef USB 3.0 (supportée par P8 et P9) plutôt qu'un catalogue d'images (ou de DVD)


pour cela téléchargez ce deux fichiers sur ESS

 

Lancez le .jar contenu dans "Utility for bootable Licenced machine Code ....zip"



Confirmez le formatage



C'est parti

copiez ensuite les fichiers .UDF correspondant aux autres produits.

Cette clef doit être considérée comme bootable :

 

Sur un Power8 indiquez l'unité comme unité alternative

 

sur un power9, cela doit faire partie des unités examinées automatiquement (attention au niveau de firmware)

car elle est formatée avec l'option *CONTAINER (voir developerWorks)

Faites un IPL-D








le système "reboot", puis

 

Si vous utilisez une clef USB




le système termine son IPL, et affiche




Faites GO LICPGM / option 11 et installez le reste...


Liste des différences/nouveautés :

 

Nouveautés SQL de la version 7.4

  • INSERT INTO <table> DEFAULT VALUES
    • Pour réserver une ligne ((assignation d’un champ Identity, puis mis à jour dans un 2ème temps)
    • Tester un trigger
    • ....

  • Fonctions de cryptage
    • HASH_MD5 (résultat de 128 bits)
    • HASH_SHA1 (160 bits)
    • HASH_SHA256 (256)
    • HASH_SHA512 (512)


    • La fonction nommée HASH en 7.3 , liée au partitionnement (au sens DB2 Multi-systèmes) devient HASH_VALUE

  • SYSTOOLS.SPLIT('série-éléments' , 'séparateur')
    • Fonction table qui retourne une ligne par élément rencontré
    • Exemple : Split('A/B/C/D/E' , '/')
  • QSYS.DATA_AREA_INFO : nouvelle fonction table qui des infos sur une *DTAARA



  • et la VUE du même nom


  • QSYS2.MESSAGE_FILE_DATA

    vue affichant le contenu d'un fichier message (*MSGF)

  • Vue SYSTOOLS.FIRMWARE_CURRENCY
  • •FW_CURRENCY  VARCHAR(28)  Niveau actuel de firmware

    •FW_CURRENT_FIXPACK  VARCHAR(20)  service pack

    •FW_RELASE_DATE  DATE  date du niveau actuel

    •FW_MACHINE_TYPE_MODEL  VARCHAR(20)  type et modèle

    •FW_RECOMMENDED_UPDATE  VARCHAR(20)  niveau de mise à jour recommandé (même version)

    •FW_RECOMMENDED_UPGRADE VARCHAR(20)  version recommandée



  • SYSTOOLS.SPOOLED_FILE_DATA


    Fonction table retournant le contenu d'un spool (fait un CPYSPLF dans QTEMP et affiche le fichier)

Nouveautés RPG de la version 7.4

 

.Nouveautés disponibles seulement en 7.4

 

Tableaux dynamiques

2 possibilités pour les déclarer DIM(*AUTO:nbmax) ou DIM(*VAR:nbmax)

 

 

 

La fonction %ELEM admet un deuxième paramètre ce qui permet

 

 

Tableaux chargés à la compilation

Il est maintenant possible de déclarer des tableaux chargés à la compilation sans indiquer le nombre de postes

 

 

 

Serveur de web services

Nous savions déjà déployer des pgm ILE (RPG ou COBOL) sous forme de Web services

 

Avec la 7.4 + SF99662 (ou SF99722/level 19[7.3], SF99713/level 32[7.2])
nous pouvons aussi déployer des web services (REST uniquement) basés sur SQL

 

 

Premier exemple, une requête SQL simple

 

 

Indiquez ici :

puis par le bouton Add, saisissez une requête SQL


 

Etape suivante

 

 

Paramètres

 

Choix du profil de référence (QWSERVICE/dft)

 

 

Puis récapitulatif :

 

Description du service

 

JDBC

 

Requête, méthode et format de sortie

 

 

une fois le service créé, vous pouvez

 

testons

 

Avec passage de paramètres

 


ici, un code pays sera transmis

 

placez alors dans la requête un ou plusieurs ?

 

ils serons détectés, en tant que paramètres, le type sera automatiquement attribué en fonction de la colonne testée

 

le lien est fait ici :

 

et cela se retrouve sur l'écran récapitulatif

 

Résultat

 

Single-row

 

 

la différence est là

 

 

 

 

 

Résultat (formaté par Firefox)

 

Données binaires


depuis cette table


 

 

remarquez le type SQL retourné

 

et le type MIME déclaré

 

Résultat


 

Procédure stockées

Soit cette procédure, qui avec un paramètre en entrée (position de début de liste) retourne 50 producteurs




Déployons


Instruction SQL


Résultat "Multi-Row"


Lien avec le paramètre en entrée


Résultat


Post / Put

exemple d'insertion de données (création d'une nouvelle ligne)

 

Cette fois, la requête est un INSERT

 

Les paramètres sont détectés

 

Renommons les



retour d'un status à 201 Created




et cochez Wrap Input parameters

pour tester, utilisons soapUI, méthode POST, remarquez le JSON envoyé



si vous avez oublié, le fichier swagger vous rappelle les paramètres attendus

 

En cas d'erreur, cherchez un job QZDASOINIT sous le profil QWSERVICE (ou celui indiqué dans le serveur)


 

Enfin les produits Open sources suivants sont disponibles


    • Driver unixODBC (ODBC en mode Pase)


      le driver d'IBMi Access lui même :

      Télécharez le sur https://www-01.ibm.com/support/docview.wss?uid=isg3T1026805


      (la dernière ligne)

      Dézippez puis transférez le fichier dans un répertoire sur l'IBM i


      Installez le par :
      yum install ibm-iaccess-1.1.0.11-0.ibmi7.2.ppc64.rpm
      Il doit apparaitre, ici :


      La config se trouve dans /QOpenSys/etc/odbc.ini
      l'installation du driver à créé une entrée *LOCAL


      Vous pouvez l'utiliser en mode commande



    • tree


    • nodeJS 12


    • Maven


    • Lua


    • langage R (le driver unixODBC peut être utilisé pour accèder à DB2)

    • ActiveMQ (compatible JMS)

©AF400