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
    • als Eingabefelder bei der Benutzereingabe geprüft werden (PL, PF)
    • als Ausgabefelder berechnet werden (CO)
    • mit Python geprüft, berechnet und geändert werden (PY)

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
DIBezeichnungWB-ArtWertebereichErklärung
000090Terminabw. Anfang 1PL1,2,3,4,5,6,7,8Es können nur die angegeben Werte eingetragen werden.
  • Alphanumerische Dataitems
    • Liste der erlaubten Eingabewerte in Anführungszeichen angegeben und mit Komma getrennt.
DIBezeichnungWB-ArtWertebereichErklärung
000162KlassePL"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

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

DIBezeichnungWB-ArtWertebereichErklärung
001019Wunsch-ATPF(DI001019 <= DI001020) || (DI001020 0)Wunsch-AT darf keinen Termin erhalten, der größer ist als der Termin in Wunsch-ET.
001020Wunsch-ETPF(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

DIBezeichnungWB-ArtWertebereichErklärung
005297zu 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

DIBezeichnungWB-ArtWertebereichErklärung
007585Uhrzeit RCLHYEXIST3("006428") %86400DIxxxxx % 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

DIBezeichnungWB-ArtWertebereichErklärung
003136HB-ElementCOTRIM(@G100) + "\" + TRIM(@G106) + "\" + DI001825 + "\" + @191 + "\" + TRIM(@G103) + "\" + "M" + @191 + DI000123 + @G107Wert 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.
BedeutungVariablennummer
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