Hallo Birgitta, da klappt ja wunderbar.

Ich habe aber noch ein anderes Problem. Ich habe versucht, aus Deiner Beschreibung: "Welches Programm aktivierte meinen Trigger ?" das auslösende Programm zu ermitteln.
Dabei wird mir aber folgende Fehlermeldung angezeigt:

PHP-Code:
 Routine TRIWERCL in MUHSTANPGM mit angegebenen Parametern nicht gefunden
 
SQL-Auslöser TR_LAGBES2 in ANCRAPGM ist mit SQLCODE -440 SQLSTATE 42884   
   fehlgeschlagen
.                                                         
 
Fehler im Auslöserprogramm.                                               
 
Fehler im Auslöserprogramm
Ich habe folgendes CL erstellt und compiliert:
PHP-Code:
 /*****************************************************************/         
 /*   T R I W E R C L    /  compiliert nach MUHSTANPGM             */         
 /*   welches Programm löste das Trigger-Programm aus ?           */         
 /*    Author  . . . . . . . .  : B.Hauser                                      */         
 /*****************************************************************/         
                                                                             
              
PGM        PARM(&CALLER           +                            
                              &
CALLED)                                       
    
/* ---------------------------------------------------------------*/     
              
DCL        VAR(&CALLERTYPE(*CHARLEN(10)                    
              
DCL        VAR(&CALLEDTYPE(*CHARLEN(10)                    
                                                                             
              
DCL        VAR(&MSGKEY)   TYPE(*CHARLEN(4)                   
              
DCL        VAR(&SENDER)   TYPE(*CHARLEN(80)                  
    
/* ---------------------------------------------------------------*/     
              
SNDPGMMSG  MSG('TEST')                                  +      
                         
TOPGMQ(*PRV (&CALLED))                       +      
                         
MSGTYPE(*RQS)                                    +      
                         
KEYVAR(&MSGKEY)                                     
                                                                       
             
RCVMSG     PGMQ(*PRV (&CALLED))                         +   
                        
MSGKEY(&MSGKEY)                                    +   
                        
SENDER(&SENDER)                                  
                                                                         
             
CHGVAR     VAR(&CALLERVALUE(%SST(&SENDER 56 10))          
   
ENDE:     ENDPGM 

Folgende Stored-Procedure habe ich erstellt und mit RUNSQLSTM erstellt
PHP-Code:
                                                          
 CREATE PROCEDURE MUHSTANPGM
/TRIWERPC (                  
              
OUT ParmCaller CHAR(10) ,                  
              
IN  ParmCalled CHAR(10) )                  
              
LANGUAGE CL                                
              SPECIFIC MUHSTANPGM
/TRIWERPC               
              NOT DETERMINISTIC                          
              NO SQL                                     
              CALLED ON NULL INPUT                       
              EXTERNAL NAME 
'MUHSTANPGM/TRIWERCL'        
              
PARAMETER STYLE SQL 
Der Trigger sieht folgendermassen aus:

PHP-Code:
                                                         
 CREATE TRIGGER ancrapgm
/tr_lagbes2                      
    AFTER UPDATE  OF LAPROS
LALORT ON  lagbespf         
    REFERENCING 
NEW ROW AS neu                           
                OLD ROW 
AS alt                           
    
FOR EACH ROW MODE DB2ROW                             
                                                         
 BEGIN                                                   
    
DECLARE  I_pgm  CHAR(10)  default 'QDBUDR';          
    DECLARE  
O_pgm  CHAR(10)  default ' ';                            
    DECLARE  
A_QUAL CHAR(6);                                          
    DECLARE  
B_QUAL CHAR(6);                                          
    
SET      A_QUAL    =  substring(alt.laarti16);                
    
SET      B_QUAL    =  substring(neu.laarti16);                
                                                                    
  
call MUHSTANPGM/TRIWERPC(O_pgmI_pgm);                           
                                                                    
  
INSERT into ancradta/LATRIGpf                                     
     
(LWFIRM,                                                       
      
LWstkn,                                                       
      
LWprgr,                                                       
      
LWvkg1,                                                       
      
LWpros,                                                       
      
LWlort,                                                       
      
LWnmen,                                                       
      
LWvgre12,                                                     
      
LWqual,                                                       
      
LWvere,                                                       
      
LWDESS,                                                       
      
LWPROGRA)                      
       
values(                    
        
neu.LaFIRM,               
        
neu.Lastkn,               
        
neu.Laprgr,               
        
neu.Lavkg1,               
        
neu.Lapros,               
        
neu.Lalort,               
        
neu.Lanmen,               
        
neu.Lavgre12,             
        
B_qual,                   
        
neu.Lavere,               
        
neu.LaDESS,               
        
O_PGM) ;          
                               
 
end 
Sobald ich die Anweisung: CALL MUHSTANPGM/TRIWERPC weglasse, funktioniert es, allerdings natürlich ohne die Ermittlung des Programm-Namens.


( TRIWERCL ist als Objekt in MUHSTANPGM vorhanden )



Was mache ich falsch ?

Ludger