tarkusch
22-01-17, 08:09
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.
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 );
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
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.
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 );
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