Ansicht
Dokumentation

ABENUTCLONG_ADD - UTCLONG ADD

ABENUTCLONG_ADD - UTCLONG ADD

General Material Data   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- 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

CX_SY_CONVERSION_NO_DATE_TIME

  • Ursache: Der für val angegebene Zeitstempel ist ungültig..
    Laufzeitfehler: INVALID_UTCLONG

CX_SY_CONVERSION_ERROR

  • Ursache: Ein übergebener Parameter kann nicht in den erwarteten Typ konvertiert werden.
    Laufzeitfehler: CONVT_OVERFLOW, BCD_OVERFLOW

CX_SY_ARITHMETIC_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 )