Hallo,

ich hätte vor in ein Programm, das im Batch läuft, diverse Dateioperationen mittels Sql abzulösen.
Im Programm wird ja bei einem Write, bei einem doppelten Schlüssel, eine Nachricht an den Sysopr geschickt.

Ich hätte nun versucht beim Insert den Sqlstate abzufragen und mit Hilfe der API QMHSNDPM eine Msg zu schicken.

Ich bekomme aber keine Nachricht auf den SYSOPR.

Code:
DQMHSNDPM         PR                  ExtPgm('QMHSNDPM')           
D MsgID                          7A   Const                        
D MsgFile                       20A   Const                        
D MsgData                      256A   Const                        
D MsgDtaLen                     10I 0 Const                        
D MsgType                       10A   Const                        
D StackEntry                    10A   Const                        
D StackCount                    10I 0 Const                        
D MsgKey                         4A   Const                        
D ErrorCode                     16A   Const                        
D                                                                  
D$MsgId           S             10A   Inz('CPF9898   ')            
D$MsgFile         S             20A   Inz('QCPFMSG   QSYS      ')  
D$MsgDta          S             80A   Inz                          
D$MsgDtaLen       S             10I 0 Inz                          
D                                                                  
D ErrorCode       ds                                               
D   BytesProv                   10I 0 inz(0)                       
D   BytesAvail                  10I 0                              






$MsgDta    = 'SQL ERROR: '                           
            + %trimr(SDSPGM)                         
            + ' Fehler beim Import aufgetreten';     
                                                     
QMHSNDPM( $MsgId                                     
        : $MsgFile                                   
        : $MsgDta                                    
        : %len( %trimr($MsgDta))                     
        : '*ESCAPE'                                  
        : '*'                                        
        : 2                                          
        : *blanks                                             : ErrorCode );


Code:

Code:
SBMJOB CMD(CALL PGM(TEST01) PARM(' ')) 

Der Aufruf an *LIBL/QMHSNDPM wurde fehlerhaft beendet (C G D F). 


Das Programm hat einen *ENTRY Parameter.

Was mache ich falsch?

Kann ich eleganter eine exception auf den Sysopr werfen?

Dank im Voraus

Tarki