-
Hallo,
ich habe wohl ein ähnliches Problem. In einem kleinen ILE-RPG Programm welches mehrfach per SBMJOB aufgerufen wird ermittle ich mit TIME die aktuelle Zeit. Abhängig von dieser Zeit sollen andere Programme gestartet werden. Die Stunden und Minuten werden in numerische Felder abgestellt, nicht in Zeitfelder. Das Programm wird mit *INLR beendet.
Die Anwendung läuft auf 7 oder 8 AS/400 mit unterschiedlichen Releaseständen - Probleme gibt es nur bei zweien wenn das Programm nachts im Tagesabschluss gestartet wird.
Was empfiehlt sich nun als wirklich narrensichere Methode wenn man nicht immer "von Hand" starten will?
Gerd
-
Wie wärs mit WRKJOBSCDE ?
Hier kannst du genau bestimmen, wann was unter welchem User läuft und was passiert, wenn die Maschine mal nicht rechtzeitig bereit war (*NOSBM, *SBMRLS).
-
Tut mir leid. Ich meinte eine Programmlösung.
-
Welche Probleme hast du denn ?
TIME liefert auf jeden Fall die aktuelle Systemzeit.
Du kannst ebenso die BuiltIn %Time() verwenden und einem DEC-Feld zuweisen.
Dies ist ggf. besser, da TIME immer Datum und Zeit liefert und GANZ WICHTIG: Das Datum im Jobformat !!!
Steht also das Jobformat auf *DMY (Deutsch) wird TTMMJJJJHHMMSS geliefert.
Steht das Jobformat aber auf *MDY wird MMTTJJJJHHMMSS geliefert.
Bei *JUL wird sogar YYYYDDDHHMMSS bereitgestellt.
Du kannst dich also bei TIME nicht auf das Datum verlassen ohne das Jobformat zu kennen.
Hier sind die Funktionen %date(), %time() und %timestamp() vorzuziehen.
-
Hallo,
ich habe ein ähnliches Problem, wie oben beschrieben und dachte ich könnte jetzt mein Feld UDATE mit %DATE mit dem aktuellen Datum füllen, aber das will nicht so, wie ich mir das vorgestellt habe.
meine Anweisung sieht so aus:
C eval UDATE = %DATE()
Auf diese Idde bin ich gekommen, da ich in der Online Hilfe auf folgenden Satz gestoßen bin:
If the first parameter is a timestamp, *DATE, or UDATE, do not specify the second parameter. The system knows the format of the input in these cases.
Beim Umwandeln kommt dann diese Meldung:
Die Operation ändert das Feld, aber das Feld kann nicht geändert werden.
Bin bischen Ratlos...
-
Ist UDATE denn vom Typ D, also Date ?
%date() liefert ein Feld vom Typ DATUM!
Wenn du das numerisch haben willst, geht das z.B. so:
UDATE = %DEC(%CHAR(%DATE():*ISO0):8:0);
-
Ist die Definition von UDATE nicht fest vorgegeben?
Ich benutze es recht oft und bei mir ist es
6,0 lang.
Ich will ja nur das Feld UDATE (6,0)(TTMMJJ) auf den aktuellen Stand bringen und nichts an meinen O-Bestimmungen ändern müssen.
-
Hallo,
UDATE ist eins der wenigen reservierten Worte/Felder in RPG, die eine bestimmte Funktion haben, aber nicht manuell geändert werden dürfen.
Du wirst wohl Deine O-Bestimmungen ändern müssen.
Birgitta
Similar Threads
-
By I0N in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-11-06, 12:44
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 20-11-06, 18:37
-
By heini in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-09-06, 10:10
-
By jjagi in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-07-06, 08:29
-
By JonnyRico in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 27-04-06, 12:45
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks