Le code chargé de traiter la file d'attente de données comporte deux fonctions. L'API QRCVDTAQ extrait les données et les formate, puis les données peuvent être distribuées de deux manières : par QCMDEXC imbriqué dans le RPG ou par un programme CL appelé séparément. Je conseille la deuxième méthode car
Voyons le code de plus près
elle facilite le traitement des erreurs. Sachez toutefois que j’ai aussi utilisé LPR (le Send TCP/IP Spooled File), ou la commande SNDTCPSPLF) et la commande SNDNETSPLF avec succès.
La figure 2 contient le code qui supprime la file d’attente de données. Le programme appelle l’API QRCVDTAQ qui, par défaut, supprime l’entrée dans la file d’attente de données. Autre possibilité : l’API QMHRDQM, qui extrait l’information de la même manière mais sans supprimer l’entrée, définir le paramètre, ou indiquer *NO pour le second groupe de paramètres facultatifs dans QRCVDATQ.
Dans notre exemple, une valeur négative est donnée au paramètre Wait, signifiant que le programme de la file d’attente de données attendra une entrée indéfiniment. Chaque fois qu’une entrée est détectée, la fonction Send est effectuée ; ensuite, QRCVDTAQ se remet en attente.
Bien entendu, on peut configurer le traitement de multiples manières. L’une d’elles consiste à exécuter le programme en fin de journée pour procéder à une distribution de masse sur le réseau. Dans ce cas, le code fait une boucle avec le paramètre Wait à 0 (immédiat) et se termine quand aucune entrée n’est trouvée (quand la longueur du paramètre Data est mise à zéro).
S’il faut distribuer des rapports sur des machines différentes, on peut créer un fichier de références de base de données saisi par l’utilisateur et contenant l’adresse et l’option de transmission de chaque utilisateur. Ce fichier pourrait ensuite être lu quand QRCVDATQ reçoit une entrée de file d’attente de données pour déterminer où envoyer le rapport. On peut aussi indiquer dans ce fichier si un utilisateur doit recevoir ou non des rapports, auquel cas on peut utiliser n’importe quelle file d’attente de sortie plutôt qu’une dédiée à la distribution des rapports. Par cette technique, on attache une file d’attente de données unique à toutes les files d’attente de sortie et on se sert du fichier de références de base de données pour préciser ce qui est envoyé à chaque utilisateur.
Le code de la figure 3 montre comment faire un envoi à un système distant qui est un AS/400 (de sorte qu’aucune conversion ASCII n’est nécessaire, laquelle nécessiterait de donner la valeur *YES au paramètre TRANSFORM de la commande SNDTCPSPLF).
Pour mettre fin au programme, j’ai installé un fichier spoule de contrôle nommé EXIT dans la file d’attente de sortie. Dès que cette entrée est écrite dans la file d’attente de données, le programme se termine. Pour créer le fichier spoule EXIT, il faut d’abord créer un fichier d’impression :
CRTPRTF FILE(TESTLIB/EXIT)
Notons qu'aucune description externe n'est nécessaire parce que le fichier est utilisé comme source de contrôle. On n'a pas non plus besoin d'autres paramètres. Pour créer la sortie spoule portant le nom de fichier EXIT, il faut d'abord faire un " override " de QSYSPRT sur EXIT à la ligne de commande :
CRTRPGMOD MODULE(TESTLIB/DTQSEND)
CRTCLMOD MODULE(TESTLIB/SPLSEND)
CRTRPGM PGM(DTQ) MODULE(DTQSEND
SPLSEND)
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Les 6 étapes vers un diagnostic réussi
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Afficher les icônes cachées dans la barre de notification
Les plus consultés sur iTPro.fr
- Data streaming : le nouveau socle stratégique de l’IA en entreprise
- Ransomware en santé : la double extorsion fait exploser la facture en Europe
- Les fuites de données explosent en France, désormais pays le plus touché d’Europe
- L’IA accélère les attaques et expose les identités non gouvernées
Articles les + lus
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
À la une de la chaîne Tech
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
