Ansicht
Dokumentation

CHECK_FORMULA - Prüft die syntaktische Richtigkeit einer Formel

CHECK_FORMULA - Prüft die syntaktische Richtigkeit einer Formel

General Data in Customer Master   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Der Funktionsbaustein CHECK_FORMULA prüft die syntaktische Richtigkeit einer Formel, die als Literal oder Variable abgelegt ist. Der FBS akzeptiert:

  • arithmetische Formeln (mit Gleitpunktergebnis vom Typ FLOAT)
  • logische Formeln (mit Ergebnis TRUE oder FALSE)
  • Bedingungen der Form IF THEN
,,ELSE
  • Ausdrücke mit Feldern der Struktur SY

Beispiel:

FORMEL = COS(A**2+B**2)
FORMEL = IF X>0 THEN SIN(X) ELSE SIN(-X)
FORMEL = SY-TZONE / 2.324

Operanden

Die folgenden Operanden sind zulässig:

  • Zahlkonstanten, z.B. -5, 3.1416, 1.3E12
  • Variablen
  • TRUE
  • FALSE
  • PI (= 3.14159 ...)
  • SY-UZEIT
  • SY-DATUM
  • formale Parameter, z.B. #1, #2

Funktionen

Der FBS unterstützt die folgenden Funktionen:

ABS Absolutbetrag
  Beispiel: FORMEL = ABS(-2)
  Ergebnis: 2
NOT Negation
  Beispiel: FORMEL = IF NOT(2<3) THEN (5*6) ELSE (5-7)
  Ergebnis: -2
SIN Sinusfunktion
  Beispiel: FORMEL = SIN(PI/2)
  Ergebnis: 1
COS Cosinusfunktion
  Beispiel: FORMEL = COS(0)
  Ergebnis: 1
TAN Tangensfunktion
  Beispiel: FORMEL = TAN(2*PI)
  Ergebnis: 0
LOG Logarithmus zur Basis e (natürlicher Logarithmus)
  Beispiel: FORMEL = LOG(2.7182746352)
  Ergebnis: 1
EXP Exponentialfunktion zur Basis e
  Beispiel: FORMEL = EXP(1)
  Ergebnis: 2.7182746352
SQRT Wurzelfunktion
  Beispiel: FORMEL = SQRT(144)
  Ergebnis: 12
ROUND ganzahliges Runden
  Beispiel: FORMEL = ROUND(3.14159)
  Ergebnis: 3
TRUNC ganzzahliger Anteil einer rellen Zahl
  Beispiel: FORMEL = TRUNC(5/3)
  Ergebnis: 1
MOD Modulofunktion
  Beispiel: FORMEL = 10 MOD 3
  Ergebnis: 1
DIV ganzzahliger Anteil einer Division
  Beispiel: FORMEL = 10 DIV 3
  Ergebnis: 3

Operatoren

Die Operatoren, die zur Verfügung stehen, sind gemäß ihrer Präzendenz
in 6 Stufen eingeteilt. Dabei binden die Operatoren der Stufe 0 am
schwächsten, die der Stufe 6 am stärksten.

Die folgenden Operatoren stehen zur Verfügung:

Stufe 0:

AND logisches UND
OR logisches OR

Stufe 1:

= Gleichheit
&lt;&gt;, >< Ungleichheit
< kleiner
> größer
<=, =< kleiner gleich
> größer
=>, >= größer gleich

Stufe 2:

+ positives Vorzeichen (eines Ausdrucks)
- negatives Vorzeichen (eines Ausdrucks)
+ Addition
- Subtraktion

Stufe 3:

* Multiplikation
/ Division

Stufe 4:

** Exponentiation

Stufe 5:

ABS Absolutbetrag
NOT Negation (einer logischen Ausssage)

Stufe 6: alle übrigen Funktionen.

Selbstdefinierte Formeln

Neben Standardfunktionen können auch selbstdefinierte Funktionen
eingesetzt werden, die in einer Tabelle definiert sind. Die Tabelle
TFKT, die allgemein zur Verfügung steht, dient als Referenz. Der
Schlüssel der Tabelle wird als Funktionsname benutzt. Beim Aufruf
werden der Tabellen- und der Funktionsname (durch einen Doppelpunkt getrennt) angegeben.

Beispiel

Die Formel PI*R**2 sei unter dem Funktionsnamen Kreisfläche in der Tabelle TFKT abgelegt. Der Aufruf erfolgt mit FORMEL = TFKT:Kreisfläche(...)

Selbstdefinierte Funktionen können geschachtelt werden.

Beispiel:

Der Ausdruck PI*R**2 sei als die Funktion Kreisfläche definiert. Die Funktion Zylinder kann nun definiert werden als Zylinder = TFKT:Kreisfläche*H.

Wenn eine Benutzergruppe eine andere Tabelle als TFKT benötigt (um z.B. den Schlüsselteil zu strukturieren oder eigene Felder aufzunehmen), sollte die Referenztabelle TFKT zunächst kopiert werden. Eigene Funktionen können bei Bedarf ab Position 79 angefügt werden.

Eine Tabelle, die zur Formelablage verwendet wird, muß eine Schlüssellänge von 13 und einen Funktionsteil der Länge 65 besitzen.

Hinweise

  • Im Gegensatz zum ABAP werden Leerzeichen ignoriert.
  • Innerhalb einer Formel dürfen keine weiteren Literale auftauchen.
  • Zeichenketten in doppelten Anführungszeichen werden als Kommentar interpretiert und deshalb überlesen.




Parameter

FORMULA
FUNCNAME
MESSAGE
POS
PROGRAM
ROUTINE
SUBRC
UNIT_OF_MEASURE

Ausnahmen

ERROR_IN_FORMULA
MISSING_PARAMETER

Funktionsgruppe

CALC

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

Length: 10777 Date: 20240523 Time: 160001     sap01-206 ( 393 ms )