PDA

View Full Version : Das Ergebnisformat von TIME ändern



Seiten : [1] 2

Robi
06-06-08, 10:07
Hi,
ich mache eine TIME operation in ein 14 Num feld
Ergebnis bei uns: hhmmssTTMMJJJJ

Lt Referenz reagiert TIME (so interpretiere ich das) auf die JOB-Einstellungen.
also: chgjob datfmt(*MDY)
Danach, steht im TIME Ergebnis wieder hhmmssTTMMJJJ
ich hätte hhmmssMMTTJJJJ erwartet.

oder genau andersrum gefragt,
Wie kann ich (auf JOB-Ebene) einer, auf Amerikanischem Datumsformat stehenden AS/400 beibringen, den TIME Befehl
in Form von hhmmssTTMMJJJJ auszugeben.

Die Programme kann ich NICHT ändern

Danke Robi

Pikachu
06-06-08, 10:59
Hast du das vielleicht heute (06.06.2008) ausprobiert? ;)

Robi
06-06-08, 11:13
Ja, heute
allerdings hab ich das JOBDatum auf den 7.6.08 gestellt.
Gleichzeitig hab ich aus *DMY ein *MDY gemacht und als Trenner einen '/'.
Mein Menü zeigt als Datum nun 6/07/08, was ich als 7.6.08 interpretiere.
Rufe ich nun mit debug ein pgm auf, das den TIME Befehl in ein 14 Num Feld sendet, steht dort drin: 06062008.
Auch wenn ich das DATFMT auf *YMD ändere bleibt der Wert und die Form 06062008
Darüber wunder ich mich halt etwas.
Robi

Pikachu
06-06-08, 11:39
Ja, heute
Rufe ich nun mit debug ein pgm auf, das den TIME Befehl in ein 14 Num Feld sendet, steht dort drin: 06062008.
Auch wenn ich das DATFMT auf *YMD ändere bleibt der Wert und die Form 06062008
Darüber wunder ich mich halt etwas.
Aber dann stimmt doch fast alles: Der 06.06.2008 wird bei *DMY in 06062008 (TTMMJJJJ) und bei *MDY in 06062008 (MMTTJJJJ) umgesetzt. Bei *YMD müßte er allerdings in 20080606 (JJJJMMTT) umgesetzt werden (was bei meinem Dreizeiler hier unter V5R4 auch so ist).

B.Hauser
06-06-08, 11:39
Hallo Robi,

da scheint einiges durcheinander zu laufen!
1. TIME bringt nicht das Job-Datum, sondern das System-Datum zurück!
Wenn Du das Job-Datum änderst hat das auf TIME keinerlei Auswirkungen. Das Job-Datum wird über UDATE, UTIME oder *DATE, *TIME oder %Date(*JOB) ermittelt. Wenn Du also tatsächlich den 7.6. angezeigt bekommst ist das nicht das System-Datum und TIME ist unschuldig!

2. TIME funktioniert mit geändertem Job-Datums-Format und Job-Separator korrekt.

Birgitta

Robi
06-06-08, 11:59
Hi nochmal.
das mit dem Datum hab ich mittlerweile auch festgestellt.
(ist ja auch gut, das es das Systemdatum ist!)
Hätte trozdem, wie Pikachu auch schreibt bei *YMD 20080606 erwartet.
Hm, da werd ich wohl mal nach PTF's schauen müssen.

Danke
Robi

Pikachu
06-06-08, 12:06
Kannst du einmal zeigen, wie du das mit dem TIME-Befehl prüfst?

B.Hauser
06-06-08, 12:28
Hallo Robi,

Beendest Du vielleicht das Programm mit Return und ist die Aktivierungsgruppe vor dem CHGJOB noch vom vorhergehenden Aufruf geöffnet?

Das Format wird korrekt geändert, wenn das Programm mit LR beendet wird oder das Programm mit Return beendet und die Aktivierungsgruppe geschlossen wird. Bei Return und gleicher Aktivierungsgruppe wird das neue Format nach CHGJOB nicht übernommen.

Birgitta

Robi
06-06-08, 12:31
PGM:

H
c TIME N14
c seton lr

Befehl(e)
chgjob datfmt(*YMD)
strdbg pgm
call pgm


f11 auf n14
13330606062008

aber, Das wolltest dun nicht WIRKLICH wissen oder?

Robi

Robi
06-06-08, 12:41
@Birgitta,
nö, aus dem Menü heraus werden alle Pgmme via CL gestartet, das in *new läuft. alle Pgmme laufen dann mit *caller. Darf das mal nicht sein, gehen sie über ein CL nach *new bzw. ein Cl in einen festen Namen. Darf das permanent nicht sein, haben sie eine eigene actgrp.

sehr seltsam.
hab das Prog grade beim anderen KD aufgerufen, da ist das Datumsformat danach ok. Der hat aber noch V5R3, wir haben V5R4 und der 'Amerika-Datum-KD" nur V5R2

na Ja,
Montag IBM

schönes Wochenende
Robi