Forum iSeries, hébergé par xdocs400.com

As400, iSeries, i5, System i, une machine qui évolue pour être de plus en plus puissante.

Vous n'êtes pas identifié(e).

Annonce

ATTENTION : Le système anti-spam est à nouveau opérationnel. Nous avons réactivé les inscriptions.

#1 2018-05-03 09:49:46

chtilux
Membre
Inscription : 2011-09-26
Messages : 2

[Résolu]Paramètres de l'API QMHRCVPM

Bonjour,


Je suis passé récemment de V7R1 en V7R3. J'ai des triggers sur certains fichiers avec un programme s'inspirant de celui de Philippe.
J'utilise les pgm QMHSNPDM et QMHRCVPM. Ce dernier doit donner le nom du programme qui a mis à jour le fichier. On l'obtient dans les positions 111 à 120 du paramètre retour (voir ci-dessous).

Au lieu d'avoir le nom du programme comme auparavant, j'ai désormais QDBUDR.

                 eval      stack = 3                               
                                                                   
appel api envoi msg                                               
                 eval      msgfl = 'QCPFMSG   QSYS'               
                 call      'QMHSNDPM'                             
                 parm      'CPF9898'     Id                7       
                 parm                    msgfl            20       
                 parm      'qui    '     msgtxt           10       
                 parm      10            lentxt                   
                 parm      '*INFO'       msgtyp           10       
                 parm      '*'           pgmq             10       
                 parm                    stack                     
                 parm                    key                       
                 parm                    coderr                   

appel api recep msg                                           
                 call      'QMHRCVPM'                         
                 parm                    retour          120   
                 parm      120           lentxt               
                 parm      'RCVM0200'    format            8   
                 parm      '*'           pgmq             10   
                 parm                    stack                 
                 parm      '*ANY'        msgtyp               
                 parm                    msgkey            4   
                 parm      0             attente               
                 parm      '*REMOVE'     action           10   
                 parm                    coderr               
                                                               
                 eval      savpgm  = %subst(retour:111:10)

Hors ligne

#2 2018-05-22 10:33:24

david
Administrateur
Lieu : Région Parisienne
Inscription : 2007-01-22
Messages : 227
Site Web

Re : [Résolu]Paramètres de l'API QMHRCVPM

Bonjour,

Es tu certain de la valeur passée pour le stack lors de l'appel ?

Sur un vieux post Birgitta hauser a écrit :

QDBUDR gets called from the database manager as soon as an Update,
Delete or Read (=UDR) trigger gets activated. This program calls the
trigger program bound to the table that will be changed.

If you want to get the program that updates or deletes the row that
causes the trigger to be executed, you simple have to go one step back
in the callstack, i.e. you have to determine the program that calls
the trigger.

BTW when executing an insert trigger the database manager calls the
routine QDBPUT, that itself calls the trigger program.


JBOSS, mais pas trop quand même !

Hors ligne

#3 2018-06-25 09:29:57

chtilux
Membre
Inscription : 2011-09-26
Messages : 2

Re : [Résolu]Paramètres de l'API QMHRCVPM

Bonjour,


Effectivement ce n'est plus 3 qu'il faut donner comme valeur pour le stack.
Il faut mettre 4 pour les créations et modifications d'enregistrements et 5 pour les suppressions;

Merci.

Hors ligne

Pied de page des forums