Wertebereiche
Informationen
Wertebereiche werden pro Dataitem im Modul Dataitems erfasst.
Dabei muss pro Dataitem
eine Wertebereichsart im Feld WB-Art festgelegt werden, die angibt,
ob der erfasste Wertebereich wirkt und
wann das DI berechnet oder geprüft wird.
eine Formel für den Wertebereich selbst im Feld Wertebereich definiert werden.
Hinweis
Wertebereiche können deaktiviert werden, ohne das ihre Formel gelöscht wird. Hierzu den Eintrag im Feld WB-Art löschen.
Wertebereichsarten
Information
Es gibt drei Gruppen von Wertebereichsarten. Dataitems können über Wertebereiche
Standard-Wertebereiche
PL: Prüfung nach Liste
Ziel
Überprüfung der Datenfeldeingabe auf Übereinstimmung mit den festgelegten Werten
Der Wertebereich
stellt eine tabellarische Auflistung der zulässigen Werte dar.
besteht aus Operatoren und Operanden.
Details
Numerische Dataitems
Liste der erlaubten Eingabewerte mit Komma getrennt
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
000090 | Terminabw. Anfang 1 | PL | 1,2,3,4,5,6,7,8 | Es können nur die angegeben Werte eingetragen werden. |
Alphanumerische Dataitems
Liste der erlaubten Eingabewerte in Anführungszeichen angegeben und mit Komma getrennt.
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
000162 | Klasse | PL | "A","B","C","D","E","X" | Es können nur die angegeben Werte eingetragen werden. |
Hinweise
Bei einer falschen Eingabe
erscheint in der Statuszeile die Meldung: "Bitte Eingabe überprüfen" und
der falsche Wert wird nicht übernommen, so dass der vorherige Wert wieder angezeigt wird.
Eine Eingabe ist richtig, wenn sie Element des Wertebereichs ist.
PF: Prüfung durch Formel
Ziel
Überprüfung der Datenfeldeingabe auf Werte, die sich aus den Formeln ergeben
Der Wertebereich
stellt eine Prüfformel dar.
besteht aus Operatoren, Operanden und ggf. Funktionen.
Details
Eine Prüfformel gibt den Ausdruck 0 oder 1 zurück, wobei gilt:
0: FALSCH
1: WAHR
Es kann nur eine einzige Formel pro DI angegeben werden.
Eine Formel kann auf mehrere Zeilen verteilt werden.
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
001019 | Wunsch-AT | PF | (DI001019 <= DI001020) || (DI001020 0) | Wunsch-AT darf keinen Termin erhalten, der größer ist als der Termin in Wunsch-ET. |
001020 | Wunsch-ET | PF | (DI001019 <= DI001020) || (DI001020 0) | Wunsch-ET darf keinen Termin erhalten, der niedriger ist als der Termin in Wunsch-AT. |
Hinweise
Bei einer falschen Eingabe
erscheint in der Statuszeile die Meldung: "Bitte Eingabe überprüfen" und
der falsche Wert wird nicht übernommen, so dass der vorherige Wert wieder angezeigt wird.
Eine Eingabe ist richtig, wenn die Wertebereichsformel den Wert WAHR zurückgibt.
CO: Berechnungen
Ziel
Berechnung des Ausgabewertes eines Feldes nach der vorgegebenen Formel.
Der Wertebereich
stellt eine Berechnungsformel dar.
besteht aus Operatoren, Operanden und Funktionen.
Es kann nur eine einzige Formel pro DI angegeben werden.
Eine Formel kann auf mehrere Zeilen verteilt werden.
Hinweise
Bei falsch konstruierten Wertebereichen erscheinen beim Modulstart unter Umständen folgende Fehlermeldungen:
WB: Division durch Null
Versuch eine Zahl durch Null zu dividieren.
WB: Rechnungsergebnis ungültig (Speichergröße)
Ergebnis in der Berechnung überschreitet die definierte Länge des virtuellen DIs, z.B. beim Zusammensetzen von Zeichenketten aus Konstanten oder Variablen ohne Verwendung der TRIM() Funktion
WB: Operanden sind Typ-inkompatibel
Versuch eine Berechnung zwischen zwei unterschiedlichen Datentypen auszuführen, z.B. eine Zeichenkette und eine Zahl. Relevante Operanden durch die dazugehörige Funktion, z.B. FMT(), ATOI() umzuwandeln.
WB ist ungültig: Dixxxxxx
Syntaxfehler im Wertebereich. Auch Folgemeldung zu den oben aufgeführten Fehlermeldungen.
Je nach Fehler erscheint eine Meldung nur einmal pro Session beim erstmaligen Aufruf des Wertebereichs. Danach wird der Wertebereich nicht mehr ausgeführt.
Aufbauregeln für Wertebereiche CO, PL, PF
Zulässige Objekte
Operatoren
arithmetisch: +, -, *, /, % (Modulo)
logisch:
AND: &&
OR: ||
NOT: !
binäre:
AND: &
OR: |
NOT: !
Vergleiche: <, =, >, <=, ==, >=, <>, != (Bedeutet NOT)
Anführungszeichen: „"
Klammern: ( )
Operanden
Dataitems: reelle, virtuelle
Variablen:
Benutzer: @U
Dynamische: @D
Globale: @G
System: @
Programm-Konstanten
Fester Wert: Strings, Zahlen
Datentypen
Integer: 2-Byte, 4-Byte, gemischt
String: beliebige Zeichenanzahl (auch mit Matchcode *)
Regeln
Regeln für Operatoren
Arithmetische, logische, binäre und Vergleichsoperatoren können durch Leerzeichen zwischen Operanden getrennt werden. Funktionell hat dies keine Bedeutung, hilft jedoch bei der Lesbarkeit eines Wertebereichs.
Anführungszeichen und Klammern müssen den Inhalt exakt einbinden, d.h. Leerzeichen dürfen nur vorkommen, wenn sie eine funktionale Bedeutung haben.
Soll der boolesche Wert eines Wertebereichs invertiert werden d.h. statt WAHR soll FALSCH ausgegeben werden, muss der Inhalt des Wertebereichs geklammert und der Ausdruck "!=1" angehängt werden.
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
005297 | zu belastende KST | EXIST(DI005297,808) | Funktion EXIST mit Prüfung auf nicht vorhandene Datensätze |
Details
In Wertebereichen kann mit Modulo gerechnet werden (Operator = %).
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
007585 | Uhrzeit R | CL | HYEXIST3("006428") %86400 | DIxxxxx % DIyyyyyy = Rest der Division (z.B. 9 % 5 = 4) |
Regeln für Operanden
Der Operandenwert kann
direkt ausgegeben werden (z.B. als Teil eines Strings) oder
nur als Teil einer Berechnung dienen
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
003136 | HB-Element | CO | TRIM(@G100) + "\" + TRIM(@G106) + "\" + DI001825 + "\" + @191 + "\" + TRIM(@G103) + "\" + "M" + @191 + DI000123 + @G107 | Wert wird berechnet und ausgegeben |
Regeln zur Eingabe in Wertebereiche
Dataitem: DI<DI-Identnummer>
wird immer mit dem Präfix DI angegeben.
Variable: "@ <Variablenart> <Variablennummer>"
werden immer in Anführungszeichen angegeben. Das Abschneiden überflüssiger Leerzeichen am Ende erfolgt automatisch.
Bedeutung | Variablennummer |
---|---|
Systemvariable | @[ID] |
Dynamische Variable | @D[ID] |
Globale Variable | @G[ID] |
Benutzervariable | @U[ID] |
Konstante: CONST <"Konstanten-ID">
Konstanten-ID wird immer in Hochkommata angegeben. Das Abschneiden überflüssiger Leerzeichen erfolgt automatisch.
Fester Wert:
Zahlen müssen ohne Hochkommata eingebunden werden, damit sie zur Berechnung verwendet werden können. Eine von Hochkommata eingeschlossene Zahl wird als String interpretiert.
Strings müssen mit Hochkommata eingebunden werden.
Hinweis
Die Operanden Variable und Konstante müssen im Wertebereich getrimmt werden, wenn nicht die gesamte Datenfeldlänge der Quelle ausgegeben werden soll (bei Konstante z.B. 70 lang).
Beispiel
Wert wird wie eingegeben auch ausgegeben:
Python-Wertebereiche
PY: Prüfung, Berechnung, Änderung
Information
Mit den Python-Wertebereichsfunktionen, den Funktionen aus der Python-Api und Standard-Python-Funktionen können Dataitems geprüft, berechnet und geändert werden.