Bonjour.
J'ai quelques problèmes à réaliser des envois de message via l'API QMHSNDPM dans une PGMQ "précédente" dans la pile d'appel en raison du nombre variable de procédures dans les programmes (en environnement ILE).
Si on prend la commande SNDPGMMSG, elle offre la possibilité d'indiquer "*PRV" dans la PGMQ, et la commande se débrouille seule pour remonter la pile de procédure pour trouver le programme précédent.
Si on passe par l'API (QMHSNDPM), si le programme dans lequel on l'utilise passe par plusieurs procédures avant d'appeler l'API (ex. : Main > Afficher > TraiterFonction > API QMHSNDPM), le nombre de procédures influe sur le "Call Stack Counter" par rapport à la PGMQ courante (dans l'exemple, pour remonter à la précédente, il faut indiquer 4 pour remonter au programme précédent).
Je n'arrive pas à reproduire correctement le comportement de la commande SNDPGMMSG *PRV via les API, car le compteur de pile est variable, et je ne trouve aucun paramètre de l'API pour pallier ça,
Et du coup, j'ai aussi le problème avec l'API QMHMOVPM pour transférer les message d'une PGMQ vers une précédente : selon le nombre de procédure, je suis incapable de cibler correctement la compteur de la PGMQ précédente.
Est-ce que j'utilise mal les API et qu'il y a un moyen pour avoir le même comportement que le *PRV sans avoir à spécifier un compteur de pile d'appel ? Est-ce que quelqu'un a déjà fait des procédures standards de gestion des messages ?
Merci.
Partager