> Tech > RPG Groovy, Résultats de RPG

RPG Groovy, Résultats de RPG

Tech - Par Renaud ROSSET - Publié le 25 juin 2012
email

Ce programme construit une structure de données multi-occurrence présentant les caractéristiques suivantes : un comptage d'éléments égal à l'argument passé, Denoncourt comme nom codé en dur, et une valeur en dollars pour le montant de ventes à l'index.

RPG Groovy, Résultats de RPG

Le programme RPG convertit la structure de données en un jeu de résultats SQL qui est ensuite renvoyé par le programme.

Le code Groovy utilise la méthode SQL appelée eachRow (en E) pour appeler le programme RPG. Plus haut, en D, le code Groovy a utilisé le nom de méthode call pour invoquer le RPG. Il faut procéder ainsi : utiliser la méthode call quand vous invoquez un programme RPG qui renvoie de l’information au moyen de paramètres output ou input/output, et utiliser eachRow pour invoquer un programme RPG qui renvoie un jeu de résultats SQL.

La méthode eachRow invoque la closure qui suit sa parenthèse fermante pour chaque ligne du jeu de résultats renvoyé par le programme RPG. L’argument row de la closure contient une Groovy map, c’est-à-dire une matrice dans laquelle chaque élément a une clé. Lors de l’exécution du code Groovy de la figure 4, les valeurs renvoyées par le programme RPG étaient :

1, Denoncourt, 1.00
2, Denoncourt, 2.00

La structure de données RPG à partir de laquelle le jeu de résultats a été créé comportait les noms accountNo, accountName, et balance. Ces noms de variables RPG deviennent les valeurs clé de la map dans la routine Groovy. Pour avoir une idée de la manière dont les Groovy maps stockent les données, pour définir statiquement une map avec les mêmes valeurs que la première row renvoyée par le programme RPG, vous utiliseriez :

def row = ['accountNo':1, 
                  'accountName':'Denoncourt', 
                  'balance':1.00]

Les valeurs des éléments d’une Groovy map peuvent être extraites par index ou par nom. La méthode println du renvoi E présente la valeur accountNo, extraite par index, puis accountName et balance, extraites par clé. À noter que, comme avec JavaScript, la clé de la map peut être spécifiée entre crochets ou simplement par le nom. Le traitement des matrices et des maps de Groovy est beaucoup plus facile que celui du code Java comparable. C’est très important car, à bien y réfléchir, après le traitement de la base de données, la plus grande partie du code est consacrée aux maps et aux matrices.

La section finale du code Groovy de la figure 3 (en F), appelle le même programme RPG, mais, cette fois, en passant une valeur que le programme RPG ne peut pas traiter. Tout code RPG qui doit être appelé à partir d’une application web doit avoir le traitement d’erreur intégré. On n’imagine pas un utilisateur immobilisé sur une page Web pendant que la file d’attente de messages QSYSOPR a le programme RPG en attente de messages. Pour des programmes RPG qui renvoient un jeu de résultats SQL, le meilleur moyen de renvoyer des erreurs est de le faire sous forme d’exceptions SQL standard. Ainsi, le programme invoquant – Groovy, Java, PHP, ou autre – peut utiliser les mécanismes de traitement d’erreur standard de ce langage. Le programme RPG de la figure 4 utilise la fonction SQLErrorMsg (dont on voit le code dans la figure 5) pour créer un message SQL quand le comptage passé est inférieur à 1 ou supérieur à 100. Le code Groovy intercepte les exceptions SQL avec le bloc try/catch Groovy (et Java) standard (à l’instar du nouveau bloc monitor de RPG).

RPG Groovy

Sans aucun doute, Groovy facilite l’intégration de RPG. Bien sûr, la simplicité de PHP est comparable. Mais Groovy vous offre deux choses en plus : (1) l’intégration directe avec Java, pour bénéficier de ses nombreuses API, et (2) un cadre de développement applicatif rapide -Grails – pour développer facilement des applications très faciles à maintenir. Le mappage de données Grails fait que les opérations sur la base de données demandent moins de code que le RPG comparable (alors que Java demande souvent 10 fois plus de code que RPG). Enfin, Groovy facilite les appels (calls) RPG.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 25 juin 2012