Hallo,

der OPCODE Time liefert nicht nur das aktuelle Datum und die aktuelle Uhrzeit im numerischen Format sonder kann auch in ein echtes Zeit- oder Datums-Feld oder eine Zeitmarke ausgeben.

Allerdings wird der OpCode Time im RPG free Format nicht unterstützt. Um die aktuelle Zeit, das aktuelle Datum oder die aktuelle Zeitmarke zu ermitteln können die folgenden Built-In-Funktionen ohne Angabe eines Parameters verwendet werden:
%Date(), %Time(), %TimeStamp()

Wichtig ist auch, das aktuelle Datum und die aktuelle Zeit sollten immer, wenn sie benötigt werden ermittelt werden und nicht nur einmalig zu Programmbeginn.

Vorsicht ist auch bei der Initialisierung eines Datumsfeldes, einer Zeit oder Zeitmarke mit dem Sonderwert *SYS.
Dieser Wert wird nur bei Programm-Aufruf initialisiert. Wurde das Programm mit Return beendet und erneut aufgerufen, werden die Felder, die in den globalen D-Bestimmungen definiert wurden nicht erneut initialisiert.

Anders sieht es in Prozeduren aus. Da bei jedem Prozeduraufruf ein neues Variablen-Set zur Verfügung gestellt wird, werden die Felder, die in den lokalen D-Bestimmungen definiert wurden bei jedem Aufruf initialisiert. Wurden die Variablen in einer Prozedur als STATIC definiert erfolgt eine Initialisierung ebenfalls nur einmalig beim ersten Aufruf innerhalb der Aktivierungsgruppe.

Birgitta