Anmelden

View Full Version : Jobschalter lesen



Seiten : [1] 2

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!

Fuerchau
22-06-04, 12:00
*INU1 - *INU8 sind die Jobschalter !
Aber: mittels "eval *INUn = *on | *off" wird tatsächlich der Jobschalter über PGM-Grenze hinaus verändert !

BenderD
22-06-04, 13:19
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!

Robi
21-06-11, 11:26
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)

jajonowak
21-06-11, 11:49
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

Fuerchau
21-06-11, 11:56
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.

jajonowak
21-06-11, 12:03
und das Programm nur mit return (ohne *INLR zu setzen) verlassen bringt auch nicht den gewünschten Erfolg.

Robi
21-06-11, 12:08
@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

Pikachu
21-06-11, 12:36
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)

BenderD
21-06-11, 13:45
.. 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)