
pause-café
destinée aux informaticiens sur plateforme IBM i.
Pause-café #88
La réunion débute à 14h.
Pour vous connecter : https://www.gotomeet.me/CommonFrance/pause-cafe-88
IBM i 7.4 TR4 - IBM i 7.3 TR10
Support des cartes :
- #EN1J/#EN1K - PCIe4 32 Gb dual-port optical FC adapter
- #EN1E/#EN1F - PCIe4 16 Gb quad-port optical FC adapter
- #ES1K - Enterprise 800 GB SSD PCIe4 NVMe U.2 module for IBM i
- #ESK7/#ESK9 - 387GB Enterprise SAS 4k SSD for IBM i
- #ESKB/#ESKD - 775GB Enterprise SAS 4k SSD for IBM i
- #ESKF/#ESKH - 1.55TB Enterprise SAS 4k SSD for IBM i
- #ESK6/#ESK8 - 387GB Enterprise SAS 4k SSD for VIOS
- #ESKA/#ESKC - 775GB Enterprise SAS 4k SSD for VIOS
- #ESKE/#ESKG - 1.55TB Enterprise SAS 4k SSD for VIOS
- #ESK0/#ESK1 - 387GB Enterprise SAS 5xx SSD for VIOS
- #ESK2/#ESK3 - 775GB Enterprise SAS 5xx SSD for VIOS
- #ESKL/#ESKM - 931 GB Mainstream SAS 4k SSD for IBM i
- #ESKQ/#ESKR - 1.86 TB Mainstream SAS 4k SSD for IBM i
- #ESKU/#ESKV - 3.72 TB Mainstream SAS 4k SSD for IBM i
- #ESKY/#ESKZ - 7.45 TB Mainstream SAS 4k SSD for IBM i
- #ESKJ /#ESKK- 931GB Mainstream SAS 4k SSD for VIOS
- #ESKN/#ESKP - 1.86 TB Mainstream SAS 4k SSD for VIOS
- #ESKS/#ESKT - 3.72 TB Mainstream SAS 4k SSD for VIOS
- #ESKW/#ESKX - 7.45 TB Mainstream SAS 4k SSD for VIOS
BRMS for i (5770-BR1)
- Nouveaux services SQL pour accèder aux logs BRMS (cf DSPLOGBRM)
- Amélioration de la performance des travaux réseau par la diminution de nombre de postes de journaux traités
- Amélioration du support cloud lors de l'installation réseau par NFS
- Support intégré pour sauvegarde système complète en utilisant des périphèrisques IBM i iSCSI
PTF Servie aPack : SI74479 (7.4) / SI74478 (7.3)
PowerHA SystemMirror for i (5770-HAS)
Des améliorations et simplifications pour la gestion des switchover et failover (avec des capacités de monitor détaillé), intégration des technologies FlashCopy sur FlashSystemest plus poussée, possibilités d'opérations multi-noeuds.
PTF & documentation détaillée : https://helpsystemswiki.atlassian.net/wiki/spaces/IWT/pages/163577866/Welcome+to+PowerHA+SystemMirror+for+i
Db2 Mirror for i - 5770-DBM (7.4 uniquement)
Les nouvelles fonctionnalités requièrent également :
- SF99704 niveau 13 (DB2)
- SF99668 niveau 10 (Db2 Mirror for i)
Des améliorations et simplification pour la gestion des switchover et failover (avec des capacités de monitor détaillé). L'intégration des technologies FlashCopy sur FlashSystemestest plus poussée et permet également les opérations multi-noeuds.
Sécurité :
La commande Analyze Profile Activity (ANZPRFACT) a été modifiée pour ne désactiver les profils que s'il n'y a aucune activité sur l'ensemble des noeuds. Préalablement, on ne regardait que sur le système depuis lequel on éxecute la commande.
DB2 for i - performance :
Des améliorations de performances pour les environnements DB2 Mirror
Toutes les informations dans la FAQ "IBM Db2 Mirror for i: Performance Considerations": https://www.ibm.com/downloads/cas/QYGKQJMK
Nouveaux types d'objets supportés :
Support des entrées dans les *DTAQ (Data Queue) et plus uniquement les *DTAQ elles-mêmes.
Support des Index Utilisateur (*USRIDX) et Espace Utilisateur (*USRSPC).
IBM i :
CCA (Common Cryptographic Architecture) passe de la version 5.3 à 5.6 avec le coprocesseur cryptographique IBM 4767 (nécessite IBM i option 35 : CCA Cryptographic Service Provider)
ENDSBS : une pré-vérification est effectuée pour contourner automatiquement le traitement de la commande ENDSBS si le système est déjà dans un état restreint. Cela s'applique aux modes avec et sans surveillance. L'avantage est d'éviter le traitement ENDSBS inutile, ce qui permet de gagner du temps. Un avantage supplémentaire est qu'il peut éviter de mettre fin aux services TCP/IP en mode limité qui peuvent fonctionner alors que le système est dans un état restreint.
Db2 for i - Evolutions fonctionnelles
- SIGNAL et GET DIAGNOSTICS : GET DIAGNOSTICS permet maintenant d'accèder et de traiter les exceptions levées par des triggers. Concrètement cela vous permet de gèrer vos propres message
- SYSIBM.CLIENT_IPADDR : cette variable contient l'adresse IP du client conneté. Elle était nulle pour les connexions non IP
- RUNSQLSTM : le listing généré inclu la version cible (Target Release)
Db2 for i - Performance enhancements
- Insertions en bloc avec support des colonnes générées : avant cette mise à jour, un insert en bloc dans une table contenant des colonnes générées provoquaientdes messages CPF4028 (code raison 11) même si l'opération aboutie. Désormais il n'y a plus de messages.
Db2 for i - Database Engineer enhancements
- QSYS2.SYSCOLUMNS2 (vue) : ajout de 14 nouvelles colonnes sur le détail des attributs
- QSYS2.SYSPACKAGESTAT (vue) : ajout de la colonne ADHOC_PACKAG. NO => instructions préparées 1 fois et éxécutées plusieurs fois. YES => instructions éxécutées 1 fois.
Services IBM i : nouveaux
- QSYS2.MESSAGE_QUEUE_INFO() (UDTF) : retourne une ligne par message, sans modifier le contenu de la *MSGQ. (cf DSPMSG). Vous pouvez filtrer le résultat par file, bibliothèque,messages COMPLETE (ne nécessite pas de réponse)/INQUIRY (nécessite une réponse)/SENDER (nécessite une réponse et non encore répondu)/ALL, ou filtre de gravité
- QSYS2.NVME_INFO (vue) : contient les informations sur les mémoires NVMe (Non Volatile Memory Express)
- QSYS2.QCMDEXC (function scalaire) : en plus de la procédure déjà existante. Si la commande aboutit, la fonction retourne1 (-1) sinon. Cela permet donc de l'utiliser dans des expressions (par exemple CASE)
- QSYS2.SECURITY_INFO (vue) : retourne une ligne avec les informations relatives à la configuration de sécurité de l'IBM i (cf DSPSECA et DSPSECAUD).
- QSYS2.SEND_MESSAGE() (procédure) : envoie un message de type INFO dans la file QSYSOPR. Le message peut être un identifiant (avec bibliothèque et fichier de messages).
- QSYS2.USER_INDEX_ENTRIES() (UDTF) : retourne les entrées d'un index utilisateur *USRIDX (cf API QUSRTVUI)
- QSYS2.USER_INDEX_INFO (vue) : retourne les attributs des index utilisateurs (*USRIDX)
- QSYS2.USER_INFO_BASIC (vue) : retourne des informations simplifiées sur les profils utilisateurs pour de meilleurs performances (vous devez disposer des droits *OBJOPR et *READ pour accéder aux profils)
- QSYS2.USER_SPACE() (UDTF) : retourne le contenu d'un espace utilisateur *USRSPC (cf API QUSRTVUS). La donnée est retournée en binaire et caractère
- QSYS2.USER_SPACE_INFO (vue) : retourne les attributs des espaces utilisateurs *USRSPC
- SYSTOOLS.AUDIT_JOURNAL_AF() : entrée de journal AF (Authority Failure))
- SYSTOOLS.AUDIT_JOURNAL_CA() : entrée de journalCA (Authority Changes)
- SYSTOOLS.AUDIT_JOURNAL_OW() : entrée de journalOW (Ownership Change)
- SYSTOOLS.AUDIT_JOURNAL_PW() : entrée de journalPW (Password)
- SYSTOOLS.CHANGE_USER_PROFILE() (UDTF) : permet de modifier un ou plusieurs attributs sur un profil. On peut demander en mode PREVIEW ou demander à effectuer l'action. Tous les attributs du profil ne sont pas modifiables.
- SYSTOOLS.GENERATE_PDF (fonction scalaire) : permet de générer un spool dans l'IFS depuis un spool (nécessite 5770TS1 - Option 1 - Transform Services - AFP to PDF Transform). Retourne 1 en cas de succès, -1 sinon.



Services IBM i : modifiés
- QSYS2.ACTIVE_JOB_INFO()
- QSYS2.CERTIFICATE_INFO()
- QSYS2.DISPLAY_JOURNAL()
- QSYS2.IFS_OBJECT_STATISTICS()
- QSYS2.JOB_INFO()
- QSYS2.OBJECT_STATISTICS()
- QSYS2.SYSDISKSTAT (table function)
- QSYS2.SYSDISKSTAT (view)
- QSYS2.USER_INFO
- Alerts for IBM i System Limits : table QSYS2.SYSLIMTBL et variables de SYSIBMADM
- SYSTOOLS.FIRMWARE_CURRENCY
Services DB2 for i : nouveaux
Query Supervisor
Le moteur SQE de DB2 fournit un spervisor de requêtes qui permet une surveillance en temps réel des requêtes. Nous pouvons fixer des seuils au delà desquels les requêtes sont interrompues. Les seuils concernent les ressources CPU TIME / ELAPSED TIME / TEMPORARY STORAGE / TOTAL IO COUNT pour le moment. Les valeurs peuvent être fixées de façon globale, ou par utilisateur/job/sous-système ...
- QSYS2.ADD_QUERY_THRESHOLD (procédur) : ajoute la surveillance d'un seuil. Effectif à la prochaine requête.
- QSYS2.END_IDLE_SQE_THREADS (procédure) : permet d'arrêter tous les threads du jobs qui ne sont pas utilisés (permet d'éviter CPF180B "Function XXXX is not allowed in a job which has multiple threads.")
- QSYS2.QUERY_SUPERVISOR (vue) : contient les règles et seuils définis pour QUERY_SUPERVISOR
- QSYS2.REMOVE_QUERY_THRESHOLD (procédure) supprime la surveillance d'un seuil. Cette modification est effective pour les prochaines requêtes.
Services DB2 for i : modifiés
- QSYS2.CLEAR_PLAN_CACHE (procédure) : ajout de filtres
- QSYS2.DUMP_PLAN_CACHE (procédure) : ajout de filtres
- QSYS2.DUMP_PLAN_CACHE_PROPERTIES (procédure) : ajout de nouvelles colonnes pour le détail des information Query Supervisor
- QSYS2.DUMP_PLAN_CACHE_TOPN (procédure) : ajout du filtre CATEGORY
- QSYS2.GENERATE_SQL (procédure) : possibilité de générer dans l'IFS (avec choix ddu caractère de fin de ligne et du CCSID) !
- QSYS2.GENERATE_SQL_OBJECTS (procédure) : génération dans l'IFS (idem)
- QSQGNDDL API : génération dans l'IFS (idem)
Fonctions intégrées %LOWER et %UPPER
Permettent les conversions en majuscule et minuscule simplement, plus besoin de passer par SQL embarqué ou encore %xlate !
Syntaxe :
%LOWER(string {: start { : length } })
%UPPER(string {: start { : length } })
String peut être de type CHAR ou de type UCS-2
Start représente la position de début à convertir (comme %substr).
Attention, la valeur est en octet et non en caractères (en fonction de l’encodage, comme UTF-8, à vous de vérifier que la longueur correspond au nombre de caractères souhaités).
Length représente la longueur, toujours en octets à convertir.
L’ensemble du string est retourné, mais seuls les caractères entre start et start+length sont convertis.Remarque : vous pouvez demander au compilateur d’expliciter les conversions de CCSID avec CTL-OPT CCSIDCVT(*LIST)


Fonctions intégrées %SPLIT
Permet de découper une chaîne de caractères dans tableau.
%SPLIT renvoie un tableau temporaire.
Elle n’est pas utilisable avec : SORTA, %ELEM, %LOOKUP et %SUBARR.
Syntaxe :
%SPLIT(string {: separators })
String peut être de type CHAR, GRAPHIC ou UCS-2.
Le second paramètre indique une liste de séparateurs possible. Son CCSID doit être identique à celui de string. La valeur par défaut est un caractère blanc.
%SPLIT peut s’utiliser avec l’itérateur FOR-EACH


Par exemple, découpage d'un fichier CSV (on a aussi des solutions avec SQL), ou pour des formats d'échanges avec des structures/séparateurs spécifiques.
Option de compilation EXPROPTS(*STRICTKEYS)
Pour les opérations BD avec clés (%KDS ou liste de clés), interdit les arguments qui pourraient déborder ou être tronqués.
Lorsque EXPROPTS(*STRICTKEYS) n'est pas indiqué : les valeurs de recherche peuvent être de longueur différentes que la zone clé, avec des CCSID différents ... Avec EXPROPTS(*STRICTKEYS), le compilateur provoque une erreur de compilation si les critères de recherche ne sont pas dans les mêmes définitions.
Pour les zones :
- Caractère : même longueur ; même CCSID si DATA(*NOCVT) pour le fichier, CCSID du travail sinon
- Numérique : le nombre de positions entières doit être <= nombre de positions entières de la clé. Idem pour les positions décimales
- Date : la date de recherche doit être dans la plage de dates du format de la clé (années sur 2 ou 4 positions)
- Heure : une date au format *USA n'est valide que si la clé est au format *USA
- Horodatage : le nombre de décimales (pour les secondes) doit être <= à la clé
PTF
- 7.3 : ILE RPG compiler: 5770WDS SI76100
- 7.4 : ILE RPG compiler: 5770WDS SI76101, 5770WDS SI76109 pour TGTRLS V7R3M0
- 7.3 : ILE RPG runtime (nécessaire pour les BIFs) : 5770SS1 SI76098
- 7.4 : ILE RPG runtime (nécessaire pour les BIFs) : 5770SS1 SI76099
Pour rappel, nouvel emplacement du RPG Café : https://www.ibm.com/support/pages/node/1106229#announcement
IBM i 7.4 TR5 - IBM i 7.3 TR11
Disponible depuis le 10 septembre 2021
Références
SF99737 740 Technology Refresh - level 5 : https://www.ibm.com/support/pages/node/6198732 et https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/0/899/ENUSLP21-0180/index.html
Sur le site du support : IBM i 7.4 - TR5 Enhancements https://www.ibm.com/support/pages/node/6456987
Nécessaire pour :
- Power E1080 (9080-HEX) : contient le LIC qui supporte les processeurs Power10
- Les cartes suivantes :
- #EJ24 - PCIe x16 to CXP Converter Card
- #EJ35, #EJ37 - PCIe3 Crypto Coprocessor 4769
- #EB48 - 1 GbE Base-T Transceiver RJ45 for the 25/10 Gb Ethernet adapter
- #EN1J/#EN1K - PCIe4 32 Gb dual-port optical FC adapter adds native support
- Support du PCIe3 Crypto Coprocessor 4769 cf (https://www.ibm.com/support/pages/node/6479419)
IBM Cloud Storage Solutions for i (5770-ICC)
La PTF 5733ICC - SI76887 fait partie de la TR (disponible à fin septembre) :
- IBM Cloud Storage Solutions for i has been enhanced to provide multi-threaded and multi-part (variable sized) uploads.
- Voir la documentation pour ICC (non encore à jour) : https://www.ibm.com/support/pages/node/1135282
BRMS for i (5770-BR1)
Les PTF SI76737 (7.3) et SI76738 (7.4) apportent :
- Des améliorations de performance lors de l'usage de ICC pour les sauvegardes ou restaurations qui peuvent se faire en parrallèle
- Des améliorations sur la gestion des flash copy toujours avec ICC
- Voir le wiki pour BRMS : https://helpsystemswiki.atlassian.net/wiki/spaces/IWT/pages/165642446/Enhancements+to+BRMS
Jusqu'à maintenant, on pouvait exposer sous forme de web service une procédure ILE (dans un programme de service) avec un maximum de 7 paramètres !
La limite passe maintenant à 248 paramètres.
Nouvelle interface
L'interface actuelle est vieillissante, pas toujours réactive ni très ergonomique dans tous les cas.
Une nouvelle interface est disponible sur le port 2002.
Cela nécessite de prochain Group PTF HTTP (non disponible lors de la rédaction de cette Pause Café), les images sont fournies par IBM (Tim Row) :



L'architecture technique du produit est également largement simplifiée pour permettre une meilleure réactivité :
- On utilisera toujours Java avec un serveur Liberty
- Mais le reste de la pile est simplifié avec Angular, PrimeNG (Angular UI Component Library) et l'utilisation des Services SQL
Certaines fonctions ont été repensées dans l'interface (EIM qui est un vrai supplice aujourd'hui ...), d'autres qui n'étaient pas disponibles sur l'interface actuelle (tableau de bord multi-systèmes ?). Les fonctions arriveront progressivement dans l'interface.
Plus d'informations : https://www.ibm.com/support/pages/node/6483299
Services IBM i : nouveaux
- QSYS2.COLLECTION_SERVICES_INFO : équivalent à la commande CFGPFRCOL (Configurer collecte de perf)
- QSYS2.WORKLOAD_GROUP_INFO : DSPWLCGRP (Afficher gpe charge de travail)
- SYSTOOLS.AUDIT_JOURNAL_CD() : entrée de journal CD (Chaînes de commande)
- SYSTOOLS.AUDIT_JOURNAL_CO() : entrée de journal CO (Créations d'objet)
- SYSTOOLS.AUDIT_JOURNAL_CP() : entrée de journal CP (Modifications de profil utilisateur)
- SYSTOOLS.AUDIT_JOURNAL_DO() : entrée de journal DO (Suppressions d'objets)
- SYSTOOLS.AUDIT_JOURNAL_EV() : entrée de journal EV (Opérations relatives aux variables d'environnement)
- SYSTOOLS.AUDIT_JOURNAL_GR() : entrée de journal GR (Enregistrement générique)
- SYSTOOLS.AUDIT_JOURNAL_M0() : entrée de journal M0 (DB2 Mirror for i)
- SYSTOOLS.AUDIT_JOURNAL_M6() : entrée de journal M6 (DB2 Mirror for i)
- SYSTOOLS.AUDIT_JOURNAL_M7() : entrée de journal M7 (DB2 Mirror for i)
- SYSTOOLS.AUDIT_JOURNAL_M8() : entrée de journal M8 (DB2 Mirror for i)
- SYSTOOLS.AUDIT_JOURNAL_M9() : entrée de journal M9 (DB2 Mirror for i)
- SYSTOOLS.AUDIT_JOURNAL_SV() : entrée de journal SV (Modifications de valeurs système)
Par exemple : violations de mot de passe sur la journée précédente
SELECT A.VIOLATION_TYPE_DETAIL, A.AUDIT_USER_NAME, A.REMOTE_ADDRESS, A.ENTRY_TIMESTAMP
FROM TABLE ( SYSTOOLS.AUDIT_JOURNAL_PW(STARTING_TIMESTAMP => CURRENT TIMESTAMP - 1 DAYS) ) A
ORDER BY A.ENTRY_TIMESTAMP DESC
Services IBM i : modifiés
- QSYS2.ACTIVE_JOB_INFO() : ajout de la colonne WORKLOAD_GROUP
- QSYS2.DISPLAY_JOURNAL() : ajout de la colonne USER_NAME (nom alternatif à CURRENT_USER), ajout de la valeur spéciale *CURSEQCHN pour le paramètre STARTING_RECEIVER_NAME
- QSYS2.NVME_INFO : ajout des colonnes IOP_NAME, BUS_NUMBER, LOCATION_CODE, PAGES_AVAILABLE, PAGES_USED, FORMAT_CRYPTO, OVERWRITE, SECURE_ERASE, BLOCK_ERASE, CRYPTO_ERASE, PAGES_MAXIMUM, NAMESPACES_AVAILABLE, NAMESPACES_USER, NAMESPACES_MAXIMUM, NAMESPACES_CONFIGURED
- QSYS2.SECURITY_INFO : ajout des colonnes VERIFY_OBJECT_RESTORE, ALLOW_OBJECT_RESTORE, USE_ADOPTED_AUTHORITY, ALLOW_USER_DOMAIN, LIMIT_SECOFR_ACCESS, INACTIVE_JOB_TIMEOUT, INACTIVE_JOB_MESSAGE_QUEUE, DISCONNECTED_JOB_INTERVAL, AUTOCONFIGURE_DEVICES, and AUTOCONFIGURE_REMOTE_CONTROLLERS
- QSYS2.SYSDISKSTAT (function table) : ajout de la colonne IOP_NAME
- QSYS2.SYSDISKSTAT (vue) : ajout de la colonne IOP_NAME
- IBM i System Limits : épuration par défaut à 90 jours. L'épuration se base sur les variables globales de SYSIBMADM
Services DB2 for i : nouveaux
- QSYS2.ACTIVE_QUERY_INFO() : retourne les informations sur les requêtes SQL (moteur SQE) en cours.
- QSYS2.SYSFILES : équivalent DSPFD (contient les informations sur les fichiers base de données)
Exemples :
Top 10 des instructions les plus consommatrices :
SELECT *
FROM TABLE(QSYS2.ACTIVE_QUERY_INFO( JOB_NAME => 'QZDASOINIT'))
order by current_runtime
limit 10
Fichiers modifiés ces 6 dernières heures :
select *
from qsys2.sysfiles
where left(TABLE_SCHEMA, 1) <> 'Q' and LAST_ALTERED_TIMESTAMP > current timestamp - 6 hours
limit 10
Top 10 des fichiers contenant le plus grand nombre de membre :
select *
from qsys2.sysfiles
where left(TABLE_SCHEMA, 1) <> 'Q' and FILE_TYPE <> 'SOURCE' and TABLE_NAME <> 'EVFEVENT'
order by NUMBER_MEMBERS desc
limit 10
Services DB2 for i : modifiés
- QSYS2.PARSE_STATEMENT() : ajout support instruction CALL
Fonctions HTTP
L'évolution la plus importante ici certainement !
Liste des fonctions :
- QSYS2.HTTP_GET()
- QSYS2.HTTP_GET_VERBOSE()
- QSYS2.HTTP_POST()
- QSYS2.HTTP_POST_VERBOSE()
- QSYS2.HTTP_PUT()
- QSYS2.HTTP_PUT_VERBOSE()
- QSYS2.HTTP_DELETE()
- QSYS2.HTTP_DELETE_VERBOSE()
- QSYS2.URL_ENCODE()
- QSYS2.URL_DECODE()
- QSYS2.BASE64_ENCODE()
- QSYS2.BASE64_DECODE()
L'empreinte mémoire est bien moins importante, avec des gains de performance.
Les fonctions sont implémentées dans le programme de service QSYS/QSQAXISC. Pour désactiver ces fonctions, vous pouvez modifier les droits sur le programme de service (*PUBLIC *USE par défaut).
Fonctions utilitaires
Les fonctions existantes SYSTOOLS.BASE64DECODE et SYSTOOLS.BASE64ENCODE étaient limitées à des paramètres à 4Ko : impossible d'encoder des images, documents ... Les nouvelles fonctions supportent des paramètres à 2Go pour les chaines de caractères et 1,5Go pour les données binaires !

De même, les fonctions URL ENCODE et DECODE supportent 1Mo au lieu de 4Ko.

La documentation IBM : https://www.ibm.com/support/pages/node/6486889
Fonctions HTTP
Le principe est identique aux fonctions HTTP que nous connaissons dans la bibliothèque SYSTOOLS.
Par exemple, un appel HTTP GET simple :

Nous pouvons toujours transmettre des entêtes HTTP :

Ces derniers sont désormais transmis sous format JSON au lieu du format XML !
Ce paramètre est également utilisé pour transmettre des options au moteur Axis (authentification basique, timeout ...) : https://www.ibm.com/docs/en/i/7.4?topic=functions-http-get#rbafzscahttpget__HTTP_options
N'hésitez pas à passer par des variables (SQL ici ou RPG dans vos programmes) pour construire vos appels étape par étape :

De même,il est toujours possible de retrouver le code HTTP en retour, ainsi que les entêtes de la réponse avec les fonctions tables HTTP_GET_VERBOSE, HTTP_PUT_VERBOSE ...
Ici aussi, le retour se fait en JSON à la place de XML :

On remarque que les valeurs retournées ne sont pas réellement au format JSON : le séparateur clé/valeur est le symbole "=" au lieu de ":" !
Vous pouvez utiliser REPLACE :

Les PTF suivantes règlent ce problème : 7.3 SI77292 / 7.4 SI77293
De même pour simplifier le code on peut stocker le résultats dans des variables : commençons par contrôler la bonne exécution

Si le code HTTP en retour est correct, on peut alors s'occuper des données :

Une évolution importante concerne également la sécurité : les certificats nécessaires à l'accès à des ressources https sont désormais gérés dans DCM ! Avec la version SYSTOOLS, ces derniers étaient gérés dans les magasins de certificats du runtime Java utilisé par les fonctions HTTP*. Cela nécessitait d'importer par keytool les certificats dans des magasins divers. Désormais on centralise avec Digital Certificate Manager.
La présence des autorités de certification dans DCM est nécessaire pour accèder à une ressource :

Voyons les autorités :

Nous récupérons les CA (possible directement depuis la navigateur web) et les placons sur l'IFS.

Cela permet de les importer dans DCM (nouvelle interface ici) :


Une fois nos deux certificats importés, l'accès à la ressource https fonctionne :

En synthèse :
- Le produit est simple à utiliser
- Des performances améliorées
- Facilité de migration des programmes utilisant les fonctions de SYSTOOLS vers les nouvelles de QSYS2
Mais ! Pour l'instant nous n'avons pas le support des donées binaires : seules les données basées sur du caractères sont supportées !
Les fonctions de SYSTOOLS conservent donc encore de l'intérêt avec la capacité de fonctionner avec de BLOB (Binary Large OBject).
Quelques nouveautés bienvenues, sous forme de fonctions intégrées, évolution de code opération ou option de compilation !

Fonctions intégrées %MAXARR et %MINARR
Retourne l'index de la plus grande ou plus petite valeur dans un tableau. Comme toute les BIFs peut s'utiliser dans une expression.
Peut s'utiliser sur un tableau de type simple ou un tableau de DS. Dans ce cas, indiquer la zone de recherche.

Tri de tableau de DS suivant plusieurs zones
Avec un la fonction intégrées %fields qui fonctionne maintenant avec SORTA.

Remarque : l'assistance à la saisie avec RDi (Ctl Espace) ne fonctionne pas avec %fields dans ce cas.
Débogage des constantes
Nécessite la PTF compilateur ET débogage.
Comportement :
- 5250 : eval (ou ev) constante -> donne la valeur. Les constantes n'apparaissent pas par ev %localvars
- RDi : les constantes n'apparaissent pas dans la vue variables, mais par survol de la constante dans l'infobulle (et toujours dans la vue Structure)



PTF
- 7.3 : Debugger: 5770SS1 SI76807, ILE RPG compiler: 5770WDS SI77165
- 7.4 : Debugger: 5770SS1 SI76808, ILE RPG compiler: 5770WDS SI77166, 5770WDS SI77167 pour TGTRLS V7R3M0
Pour rappel, le produit 5733-OPS est remplacé par les modules disponibles par RPM.
Pour débuter avec RPM : https://ibmi-oss-docs.readthedocs.io/en/latest/yum/README.html
Sont disponibles :
- Node.js 16 : version LTS
- GCC 10 : bug fix
- Python 3.9 : version LTS
- tn5250 : permet d'accèder à une session 5250 depuis un terminal SSH
- dos2unix : permet de convertir des fichiers avec gestion des caractères de fin de ligne CRLF
- hexdump : sous SSH permet d'analyser les fichiers binaires avec positionnement précis sur un octet
- Cron / anacron : planificateur
- Ghostscript : interpréteur PostScript et PDF
- FreeTDS Libraries : tabular data stream
- Nouvelles fonctions pour bash : liblist, cl, getjobid. Cf le site de Kevin Adler https://kadler.io/2020/12/23/bash-builtins.html
Access Client Solutions
Exécution de script SQL
- Tous les warnings SQL détectés lors de la récupération du résultat sont affichés dans l'onglet "Messages"
- Une option "Rafraichir" a été ajoutée à l'option de connexion à la base de données
- Ajout d'une infobulle permettant d'obtenir la description des configurations JDBC
- Les données issues d'erreus de mappage sont affichées sous la forme "++++++++++++" (comme avec STRSQL)
- Des exemples supplémentaires (principalement pour les services DB2/IBM i)


Schémas
Lors de la génération de script SQL, les contraintes sont maintenant générées dans le script CREATE TABLE, au lieu de ALTER TABLE.
Visual Explain
L'Index Advisor regroupe les scripts de création d'index CREATE INDEX dans une unique fenêtre d'éxécution de script SQL
Sortie imprimante
Les actions de suppression, suspension et libération de spoules peuvent être surveillées dans la vue Taches actives

5250
Possibilité de copier l'adresse de la machine depuis l'émulateur.

Autre
Avertissement si la touche majuscule est active sur la saisie du mot de passe.

Généralités
Cette version apporte de nombreuses évolutions sur les outils SQL.

La documentation commence ainsi :

Pour rappel, vous pouvez obtenir ACS :
- Par ESS : https://www.ibm.com/support/pages/ibm-i-access-client-solutions
- Par le Group PTF HTTP : disponible dans l'IFS /QIBM/ProdData/Access/ACS/Base
Cette version corrige un bug de ACS 1.1.8.7 sur la gestion des certificats, qui pouvait bloquer l'obtention de la console. Plus de détails ici : https://www.itjungle.com/2021/05/03/major-bug-in-ibm-i-access-client-solutions/
La gestion de la mémoire a été optimisée pour une empreinte améliorée.
La prochaine mise à jour est prévue en avril 2022.
MacOS Big Sur
Vous devez préalablement installer Java 11 ou supérieur (Java 11 recommandé).
Si vous mettez à jour depuis une version 1.1.8.4 ou inférieure, suivez les instructions spéciales dans la documentation.
Nouvelle version de Navigator for i
Nécessite les PTF SI76982 (7.3) ou SI76981 (7.4).
Vous pouvez alors demander l'usage de la nouvelle version de Navigator for i :
- Nouvelle propriété dans le fichier AcsConfig.properties : com.ibm.iaccess.NewNavigator=true
- En ligne de commande : Start_Programs\Windows_x86-64\acslaunch_win-64.exe -Dcom.ibm.iaccess.NewNavigator=true
Exécution de script SQL
Gestion du contrôle tranasactionnel :
- Deux icones pour valider/invalider rapidement. Les icones s'activent dès que des modifications non validées sont faites. Un rappel en bas de fenêtre pour indiquer que des changements non validés sont présents
- Un message de confirmation en cas de fermeture de la fenêtre en présence de lignes non validées
Meilleurs synchronisation des Fichiers récents lorsque plusieurs fenêtres d'éxecution sont ouvertes
Fonction de recherche dans l'historique du travail
Des exemples supplémentaires, principalement pour prendre en compte les nouveaux services SQL
Téléchargement des résultats : modification de la fenêtre (zones séparées pour table et bibliothèque)
Schémas
Ajout des boutons précédent et suivant dans la visualisation des postes de journaux
Ajout des colonnes Deterministe et Inline dans la liste des fonctions
Centre de performances SQL
Fonction de recherche dans l'écran principal
Fonction de recherche dans les rapports d'analyse
Dans l'affichage du plan cache, affichage de l'instruction complète lors du survol
Autres améliorations
Vous pouvez sélectionner un système en tapant son nom
Rational Developer for i
Nouvelle option dans la perspective PDM pour ouvrir l'émulateur intégré

A quand une meilleure intégration d'ACS avec RDi ?
Gestion du verrouillage des membres
Une nouvelle décoration d’icone dans l’éditeur LPEX permet d’indiquer si le membre est verrouillé ou non : il doit être verrouillé, mais dans certains cas on peut perdre ce verrouillage. Par exemple lors de la perte de connexion avec l’IBM i. Ou lorsque vous ré-ouvrez Rdi alors que des membres étaient ouverts à la fermeture précédente.


Une nouvelle option dans les préférences (non encore traduite) permet d’ailleurs d’indiquer s’il faut verrouiller les membres au démarrage de Rdi.

Amélioration de la vue Structure
- En RPG, les opérations BD sont indiquées !
- Il reste quelques difficultés d'analyse avec les fichiers QUALIFIED
- Nouvelle icône indiquant les procédures exportées
- Langage de Contrôle : la vue Structure se rapproche (enfin) de l'outillage RPG
- Une nouvelle préférence (activée par défaut) permet de mettre à jour la vue Structure au fur et à mesure de la frappe
Sauvegarde de la recherche
Possibilité d'enregistrer en format csv :





/copy et /include
Le survol par la souris affiche le contenu du source :

Restructuration des constantes
Supporte désormais la restructuration des constantes numériques, et permet également d'ajouter un commentaire




Nouvelle connexion
Nouvelle icône permettant de créer rapidement une nouvelle connexion



Références détaillées
Tous les fix https://www.ibm.com/support/pages/fix-list-rational-developer-i