Ansicht
Dokumentation
ABENUTCLONG_ADD - UTCLONG ADD
General Material Data ROGBILLS - Synchronize billing plansDiese Dokumentation steht unter dem Copyright der SAP AG.
- utclong_add
... utclong_add( val = time_stamp [days = days]
[hours = hours]
[minutes = minutes]
[seconds = seconds] ) ...
Wirkung
Diese eingebaute Funktion addiert die an die optionalen Parameter übergebenen Werte zu einem hinter val angegebenen Zeitstempel. Der Typ des Rückgabewerts ist utclong.
An das Argumente val muss ein Zeitstempelfeld vom Typ utclong übergeben werden, der einen gültige Zeitstempel enthält. Bei time_stamp handelt es sich um eine zeitstempelartige Ausdrucksposition. Ein initialer Zeitstempel wird wie der kleinste mögliche Wert eines Zeitstempels behandelt.
Die zu addierenden Werte werden in folgenden Parametern übergeben, von denen mindestens einer angegeben werden muss:
- Für days wird eine Anzahl von Tagen als Zahl vom Typ i erwartet..
- Für hours wird eine Anzahl von Stunden als Zahl vom Typ i erwartet.
- Für minutes wird eine Anzahl Minuten als Zahl vom Typ int8erwartet.
- Für seconds wird eine Anzahl von Sekunden als Zahl vom Typ decfloat34 erwartet.
An jeden Parameter können Datenobjekte übergeben werden, die in den erwarteten Typ konvertiert werden können. Es können positive und negative Zahlen übergeben werden. Es handelt sich um numerische Ausdruckspositionen. Die übergebenen Werte werden intern in die zugehörige Anzahl von Sekunden umgerechnet, wobei der an seconds übergebene Wert auf 7 Nachkommastellen gerundet wird. Zuerst werden die Tage, Stunden, Minuten und dann die Sekunden zum Wert des Zeitstempels addiert bzw. von diesem subtrahiert. Wenn bei einem der Zwischenschritte ein ungültiger Zeitstempelwert entsteht, kommt es zu einer abfangbaren Ausnahme der Klasse CX_SY_ARITHMETIC_OVERFLOW.
Hinweise
- Es gibt keine Funktion utclong_subtract, da deren Funktionalität durch die Übergabe negativer Zahlen an die Parameter von utclong_add erreicht wird.
- Es gibt keine Parameter für Jahre und Monate, da diese keiner festen Anzahl von Sekunden entsprechen.
- Das Ergebnis der Funktion utclong_add ist nie der Initialwert eines Zeitstempels. Es ist entweder ein gültiger Zeitstempelwert oder es kommt zu einer Ausnahme.
Beispiel
Das Beispiel demonstriert die Funktionsweise der Funktion utclong_add. Von einem Zeitstempelfeld ts_new der aus dem aktuellen Zeitstempel durch die Addition von Tagen, Stunden und Minuten entsteht, wird die entsprechende Anzahl von Sekunden wieder abgezogen. Die Anweisung ASSERT zeigt, dass dadurch wieder der ursprüngliche Zeitstempel entsteht.
Beispiel
Das Beispiel zeigt die Behandlung des Initialwerts. Zu einem als Initialwert übergebenen Zeitstempel ts_ini wird eine Sekunde addiert und vom Ergebnis in ts_1 wird wieder eine Sekunde abgezogen. Das Ergebnis ts_0 ist der kleinste gültige Zeitstempelwert und nicht der Initialwert.
Beispiel
Das Beispiel zeigt die Behandlung der wegen der Umstellung vom Julianischen auf den Gregorianischen
Kalender nicht vorhandenen Tage. Die Addition von 100 ns auf den Zeitstempel "1582-10-04 23:59:59.9999999" ergibt den Zeitstempel "1582-10-15T00:00:00,0000000".
Ausnahmen
Behandelbare Ausnahmen
- Ursache: Der für val angegebene Zeitstempel ist ungültig..
Laufzeitfehler: INVALID_UTCLONG
- Ursache: Ein übergebener Parameter kann nicht in den erwarteten Typ konvertiert werden.
Laufzeitfehler: CONVT_OVERFLOW, BCD_OVERFLOW
- Ursache: Die übergebenen Parameter führen zu einem ungültigen Zeitstempel.
Laufzeitfehler: UTCLONG_ADD_OVERFLOW
Unbehandelbare Ausnahmen
- Ursache: An val wird ein Argument angebunden, das keinen Zeitstempeltyp hat.
Laufzeitfehler: TCHK_TYPE_LOAD
General Material Data SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6666 Date: 20240523 Time: 101854 sap01-206 ( 85 ms )