Anmelden

View Full Version : RCVMSG aus einer ILE RPG Prozedur



Seiten : 1 [2]

tarkusch
11-09-12, 10:05
D MsgText 91 170
D MsgTextKurz 91 140

Monitor;
CHAIN(NE) (PENR:ARTN) FILE;
ON-Error *ALL;
EXSR SubChain;
EndMon;

BEGSR SubChain;
If %status = 1218; // Satz gelockt
//Window  MsgTextKurz;
Par_RtnCode = 'L';
ElseIf %error; // sonstiger Fehler
Par_RtnCode = 'E';
ElseIf Not %Found(FILE); //Nicht gefunden
Par_RtnCode = 'N';
Else; // Satz vorhanden + frei
Par_RtnCode = ' ';
endIf;
EndSr;


Also ich habe leider wie immer nicht ganz den Durchblick, aber bekomme ich die Satzsperre so angezeigt wie im Code oberhalb?

B.Hauser
11-09-12, 11:02
Dadurch, dass Du den Fehler über die Erweiterung (E) abgefangen hast, kommst Du nie in den ON-ERROR-Zweig.

Monitor ist außerdem eine Stufe über dem %ERROR, d.h. eine die Fehlermeldung "Satzsperre" kann mit %ERROR abgefangen werden. Bei der Monitor-Group wird der Fehler intern um ein Level weitergereicht und eine andere Meldung ausgegeben.


Monitor;
Chain MyKey MyFileF;
On-Error 1218 // Record Lock
Unlock MyFile; //entspricht (N)
//Mach was immer Du willst
On-Error *ALL;
//Alle anderen Fehler
EndMon;


Birgitta

Fuerchau
11-09-12, 11:47
Allerdings muss dann "CHAIN(E)" ausgeführt werden da CHAIN(N) keine Sperre verlangt und somit der Satz gelesen wird.