PDA

View Full Version : UDAY, UMONTH, UYEAR ändern



AK09
31-07-23, 18:01
Hallo,

in einem älteren RPGLE-Programm werden aufgrund der Werte in den Feldern UDAY, UMONTH, UYEAR Programmabläufe durchgeführt.
Zu Testzwecken möchte ich die den Werte in 3 den Feldern ändern und mit einem in der Zukunft liegendem Datum arbeiten.

Wie mache ich das am einfachsten? Vor dem Programmaufruf neues Datum setzen. Nach Programmende wieder zurücksetzen.

Vielen Dank.

K_Tippi
01-08-23, 08:21
Guten Morgen, Läuft das Programm im Dialog oder Batch?
im dialog einfach mit DEBUGGER starten und dann die Felder ändern.
im Batch etwas schwieriger. Da ein strsrvjob und ein strdbg nur bei aktivem Programm funktioniert baue ich mir kurzfristig einen Delay ein (wenn möglich im CL falls darüber gestartet wird ) dann bleibt genug Zeit den strsrvjob und anschliesen einen strdbg abzusetzen.
damit kannst due dann alle Felder im Programmlauf überschreiben.
udate ist das Jobdatum es solte alo auch mit chgjob funktionieren wenn das jobdatum geändert wird

Klaus

Fuerchau
01-08-23, 09:16
Also diese Felder sollten generell nicht mehr verwendet werden.
Wir haben da bei Altprogrammen schon die hässlichsten Dinge erlebt, wenn der Job noch vor 00:00 Uhr gestartet wurde und wider erwarten in den nächsten Tag lief.

Besser ist da %date() zu verwenden.

Für Testläufe kann man auch die Entry-Parameter (oder PR/PI-Interface) verwenden.
Mit %parms lässt sich die Anzahl Parameter abfragen und mit %addr(pName) feststellen, ob der Parameter übergeben wurde.
Das ist viel besser geeignet, als per Debugger inhalte zu verändern.

Denn die Anzahl Parameter an den Aufruf eines RPGLE ist nicht fixiert. Man kann beleibig viele Parameter (max. 400) an ein Programm übergeben.

Zusätzlich kann man auch ein CMD darum herum schreiben, dass optional einen Test-Parameter hat.

camouflage
01-08-23, 10:29
Denn die Anzahl Parameter an den Aufruf eines RPGLE ist nicht fixiert. Man kann beleibig viele Parameter (max. 400) an ein Programm übergeben.

Aha, jetzt verstehe ich auch, warum gewisse Programme so fett werden können.

Baldur, *scnr! :-D

Fuerchau
02-08-23, 09:43
Programme mit mehr als 10.000 Zeilen sind gar nicht so selten.