Ansicht
Dokumentation
CHECK_FORMULA - Prüft die syntaktische Richtigkeit einer Formel
General Data in Customer Master BAL_S_LOG - Application Log: Log header dataDiese Dokumentation steht unter dem Copyright der SAP AG.
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 |
<>, >< | 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
FORMULAFUNCNAME
MESSAGE
POS
PROGRAM
ROUTINE
SUBRC
UNIT_OF_MEASURE
Ausnahmen
ERROR_IN_FORMULAMISSING_PARAMETER
Funktionsgruppe
CALCGeneral 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 )