Ansicht
Dokumentation

ABENCONSTRUCTOR_EXPRESSION_EXACT - CONSTRUCTOR EXPRESSION EXACT

ABENCONSTRUCTOR_EXPRESSION_EXACT - CONSTRUCTOR EXPRESSION EXACT

TXBHW - Original Tax Base Amount in Local Currency   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

EXACT, Lossless-Operator

... EXACT type( $[let_exp$] dobj ) ...

Wirkung

Ein Konstruktorausdruck mit dem Lossless-Operator EXACT führt in Abhängigkeit vom angegebenen Argument dobj entweder eine verlustfreie Zuweisung oder eine verlustfreie Berechnung aus und erzeugt ein Resultat vom Datentyp type. Für type kann angegeben werden:

  • Das Zeichen # als Symbol für einen Datentyp, der nach folgender Hierarchie bestimmt wird:
  • Wenn der an einer Operandenposition benötigte Datentyp eindeutig und vollständig erkennbar ist, wird der Operandentyp verwendet. Der Operandentyp kann auch generisch sein und es wird der aktuelle Typ zur Laufzeit verwendet.

  • Wenn der Datentyp nicht aus dem Kontext abgeleitet werden kann, wird bei einer verlustfreien Berechnung der Rechentyp decfloat34 und bei einer verlustfreien Zuweisung der Datentyp des Arguments verwendet.

In den Klammern muss genau ein unbenanntes Argument dobj angegeben werden, das in den Datentyp type konvertierbar ist. Bei dobj handelt es sich um eine allgemeine Ausdrucksposition. Der Inhalt des Resultats wird wie folgt bestimmt:

Beim Werteverlust wird die entsprechende Ausnahme in beiden Fällen ausgelöst. Wenn das Argument bei einer verlustfreien Zuweisung zum Datentyp type kompatibel ist, führt EXACT keine Überprüfung aus und es kommt zu einer Warnung von der Syntaxprüfung. Für Aufzählungstypen gelten zusätzlich spezielle Regeln.

Optional kann vor dem Argument ein LET-Ausdruck let_exp zur Definition lokaler Hilfsfelder aufgeführt werden.

Hinweis

Der Lossless-Operator EXACT ersetzt den gleichnamigen Zusatz der obsoleten Anweisungen MOVE und COMPUTE.

Verlustfreie Zuweisung. Hier wird die Ausnahme CX_SY_CONVERSION_ERROR ausgelöst, da das Argument einen ungültigen Wert enthält.

Beispiel

Verlustfreie Zuweisung mit generischen Typen. Die Zuweisung ist beim ersten Aufruf der Methode erfolgreich und führt beim zweiten Aufruf zur Ausnahme CX_SY_CONVERSION_EXACT_NOT_SUP. Ersetzt man die Zuweisung durch p2 = EXACT #( + p1 ) wird daraus eine verlustfreie Berechnung und die Ausnahme tritt nicht mehr auf.

Verlustfreie Berechnung. Hier wird die Ausnahme CX_SY_CONVERSION_ROUNDING ausgelöst, da die Berechnung nicht verlustfrei ist. Das gerundete Ergebnis wird der inline deklarierten Variablen rounded_result zugewiesen.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_CONVERSION_EXACT_NOT_SUP

  • Ursache: Unerlaubte Typ- oder Längenkombination.
    Laufzeitfehler: CONVT_NOT_SUPPORTED





BAL_S_LOG - Application Log: Log header data   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5322 Date: 20240523 Time: 162626     sap01-206 ( 69 ms )