PDA

View Full Version : RCVMSG auf beendetes Programm



jc_denton
30-04-09, 09:14
Ist es möglich die Nachrichten eines beendeten Programms zu löschen?

Bsp.:
- Programm A ruft Programm B.
- Pgm B schreibt einige Meldungen ins Joblog.
- Nach Beendigung von Pgm B, soll Pgm A die Nachrichten des Pgm B löschen.


Mein Ansatz war es mit RCVMSG zu arbeiten:

CALL PGM(PGM_B)
LOOP:
RCVMSG MSGTYPE(*LAST) RMV(*NO) MSGID(&MSGID)
monmsg cpf0000 exec(goto ENDE)
if (&msgid = ' ') then(goto ENDE)
if (&msgid = 'CPF5813' *or &msgid = 'CPF7302') then(do)
RCVMSG MSGTYPE(*LAST) RMV(*yes) MSGID(&MSGID)
enddo
goto LOOP


Das Programm B kann nicht geändert werden, d.h. eine Fehlerbehandlung kann dort nicht erfolgen. Es muss von außen operiert werden.

Kennt da jemand die Lösung?

Fuerchau
30-04-09, 09:17
Das geht leider nur mit den Joblog-API's.
- merken der letzten Nachricht im Joblog (MSGKEY)
- nach Aufruf löschen aller Nachrichten nach MSGKEY

RCVMSG greift nicht auf das Joblog zu.

jc_denton
06-05-09, 12:42
Ah, ok. Danke für die Antwort.
Werde es die Tage mal ausprobieren, da ich momentan anderes auf dem Tische liegen habe.