View Full Version : Jobschalter lesen
sannefinger
22-06-04, 11:56
Hallo *All,
wir verwenden teilweise noch /36er-Programme, die mit Jobschaltern gesteuert werden.
Wir wollen jetzt aus einem RPG-Programm diese Jobschalter auslesen. Geht das? Müssen wir evtl. über CLP gehen?
Vielen Dank im voraus!
*INU1 - *INU8 sind die Jobschalter !
Aber: mittels "eval *INUn = *on | *off" wird tatsächlich der Jobschalter über PGM-Grenze hinaus verändert !
Hallo,
gehen tut viel, aber deshalb muss man es nicht immer machen. Ich würde das rausmaskieren, wenn ich so ein Programm anfasse: sprich das Programm auf Parameter mit sprechenden Namen umstellen und ein kleines Programm dazwischen, dass dies Zwutsch Kram in den entsprechenden Parameter umsetzt und dann aufruft.
mfg
Dieter Bender
Hallo *All,
wir verwenden teilweise noch /36er-Programme, die mit Jobschaltern gesteuert werden.
Wir wollen jetzt aus einem RPG-Programm diese Jobschalter auslesen. Geht das? Müssen wir evtl. über CLP gehen?
Vielen Dank im voraus!
Moin zusammen.
ich versuche grade in einer, sagen wir mal gewachsenen Umgebung, einen Jobschalter zu setzen
Eval *inu8 = *on
anschl. call CL-PGM
Das soll bestimmte Teile machen / überspringen, wenn U8 an ist.
U8 geht aber nicht an
@Dieter
ja, ich weis.
Aber 14.000 Zeilen CL 'aufräumen' ist nicht witzig!!
Kann ich aus RPG die U-Schalter nicht setzen ?
Danke
Robi (der sich nicht an seine letzten Arbeiten mit U-Schaltern erinnern kann)
Hi Robi,
gerade mal ausprobiert:
rpgle eval u8=*On
cl: dcl swc *char len(8)
rtvjoba sws(&switch)
if cond(&switch *eq '00000001') Do
/* was auch immer */
enddo
hat funktioniert.
lg Hans-Joachim
Die U-Schalter werden erst beim Ende des RPG's gesetzt.
Setzt du den U-Schalter und rufst im selben Programm ein anderes auf, wird der U-Schalter noch nicht aktualisiert.
Ggf. must du erst ein weiteres RPG'chen aufrufen, dass nur den U-Schalter setzt.
und das Programm nur mit return (ohne *INLR zu setzen) verlassen bringt auch nicht den gewünschten Erfolg.
@jajonowak
danke, danke
aber ich schreib hier ja, weil es NICHT funktioniert!!
und wenn dein RPG das CL ruft geht es nicht.
bei LR / Return bin ich dann noch gar nicht angekommen!
@Fuerchau
Irgend so eine Sch...lechte Umsetzung hab ich mir gedacht.
Also mit 'Umweg'
Danke
Robi
Ein RPG-Programm hält anscheinend eine lokale Kopie der Jobschalter, und diese wird erst beim Programmende mit gesetztem LR in den Job zurückgeschrieben.
Siehe hier: RPG IV Indicators - External Indicators (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c092508408.htm#Header_78)
.. hier was für die Huddeler:
call qcmdexc(''CHGJOB SWS(11110000)' : x'000000002100000F')
D*B,
den's grauselt
Die Oberhärte ist natürlich, wenn man den obigen CHGJOB für andere Jobs macht, die solche Wackelhaufen drin haben
CHGJOB JOB(123456/MAGINET/WACKELH) SWS(11111111)