Verarbeitungsregeln

#### Search Results

Search

# Verarbeitungsregeln

Dieder Abschnitt stellt existierende Verarbeitungsregeln vor und beschreibt, wie Sie diese Regeln bearbeiten können:

- Feldbezogene Verarbeitungsregeln

- Funktionstastenbezogene Verarbeitungsregeln

- Verarbeitungsregel bearbeiten

## Feldbezogene Verarbeitungsregeln

Es können drei Arten von feldbezogenen Verarbeitungsregeln definiert werden.

- Inline-Verarbeitungsregeln
  Diese Regeln werden innerhalb eines Map Source-Objekts definiert. Ihnen wird kein Name zugewiesen. Predict braucht nicht vorhanden sein.

- Predict Free Rules
  Diese Regeln haben einen zugewiesenen Namen. Gespeichert werden sie in Predict.

  Um eine Predict Free Rule zu bearbeiten, müssen Sie die Regel beim Anlegen der Maske eingeben und ihr einen Namen zuweisen.

- Predict Automatic Rules
  Diese Regeln betreffen Datenbankfelder. Definiert werden Sie vom Predict-Administrator. Wird ein Feld von den Datendefinitionen in einem anderen Natural-Objekt ausgewählt, werden alle automatischen Regeln für dieses Feld mit der Maskendefinition verknüpft. Alle automatischen Regeln werden miteinander verkettet und als eine einzige Maskenregel behandelt.

  Der Rang der automatischen Regeln wird in den Maskeneinstellungen definiert (die Standardeinstellung ist `1`).

  Im Masken-Editor können Sie die automatischen Regeln nicht ändern. Sie können ihnen jedoch einen anderen Rang zuweisen. Dazu können Sie entweder das Kommando `P=n` benutzen oder einfach den alten Rang überschreiben.

Anmerkungen:

1. Sie können eine Inline-Verarbeitungsregel zu einer Predict Free Rule machen (und umgekehrt), indem Sie den Namen der Regel zuweisen (bzw. ihn entfernen).
2. Wird ein Feld mit verlinkten Predict-Verarbeitungsregeln umbenannt, gehen die Regeln verloren, und Sie müssen sie erneut verlinken.

Ein Und-Zeichen (&) im Quellcode einer Verarbeitungsregel wird dynamisch durch den vollständigen Namen des Feldes ersetzt, für das die Regel definiert ist. Array-Indices sind von der Ersetzung nicht betroffen. Sie müssen dazu nach dem Und-Zeichen (&) ausdrücklich die Index-Notation angeben, siehe folgendes Beispiel:

#### Beispiele:

    IF &    = ' ' THEN REINPUT 'Enter NAME' MARK *&   /* For a scalar field
    IF &(1) = ' ' THEN MOVE 'X' TO &(*)               /* For an array field

Die Feldnamen-Notation `&.field-name` im Quellcode einer Verarbeitungsregel ermöglicht es, DDM-spezifische Regeln zu haben, die die Integrität von Werten zwischen Datenbankfeldern gegenprüfen, ohne dazu die Felder ausdrücklich mit einem View-Namen vollständig benennen zu müssen. Anstelle von `field-name` geben Sie den Namen des Datenbankfeldes an, so wie er in dem DDM definiert ist. Beim Kompilieren qualifiziert Natural das Feld, indem es das Und-Zeichen (&) durch den entsprechenden View-Namen ersetzt. Dadurch haben Sie die Möglichkeit, dieselbe Verarbeitungsregel für bestimmte Felder zu benutzen, ohne berücksichtigen zu müssen, aus welcher View die Felder genommen werden.

## Funktionstastenbezogene Verarbeitungsregeln

Es können zwei Arten von funktionstastenbezogenen Verarbeitungsregeln definiert werden.

- Inline-Verarbeitungsregeln

- Predict Free Rules

Funktionstastenbezogene Verarbeitungsregeln können Sie benutzen, um programmsensitiven Funktionstasten (PF-Tasten) bei der Maskenverarbeitung bestimmte Aktivitäten zuzuweisen. Bei PF-Tasten, denen bereits ein Kommando durch das Programm zugewiesen ist, wird dieses Kommando ohne Regelverarbeitung ausgeführt.

#### Beispiel:

    IF *PF-KEY = 'PF3'
       ESCAPE ROUTINE
    END-IF

Wird diese Regel ausgeführt, dann wird die Maskenverarbeitung ohne weitere Regelverarbeitung beendet.

## Verarbeitungsregel bearbeiten

Um eine Verarbeitungsregel zu bearbeiten:

- Geben Sie das Feld-Kommando `.P` ein.

  Oder:
  Setzen Sie das Zeilenkommando `..E` ab und platzieren Sie dann den Funktionscode `P` neben dem Feld, für das eine Verarbeitungsregel-Bearbeitung erfolgen soll.

Um eine funktionstastenbezogene Verarbeitungsregel zu bearbeiten:

- Setzen Sie das Zeilenkommando `..P` ab.

Beim Feld-Kommando `.P` können Sie einen Parameter (`.Prr`) angeben, der den Rang (Priorität) der zu definierenden oder zu bearbeitenden Verarbeitungsregel angibt. Ein Feld kann bis zu 100 Verarbeitungsregeln (Rang 0 bis 99) haben. Bei der Ausführung der Maske werden die Verarbeitungsregeln in aufsteigender Reihenfolge oder nach Rang und Position auf dem Bildschirm ausgeführt.

Bei den funktionstastenbezogenen Verarbeitungsregeln wird immer angenommen, dass sie die erste Position auf dem Bildschirm haben.

Bei der Zuweisung von Rängen für Verarbeitungsregeln werden folgende Zuweisungen empfohlen, um eine optimale Performance zu erzielen:

Rang | Verarbeitungsregel
--- | ---
0 | Beendigungsregel
1 - 4 | Automatische Regel
5 - 24 | Formatprüfung
25 - 44 | Wertprüfung bei einzelnen Feldern
45 - 64 | Gegenkontrolle des Wertes zwischen Feldern
65 - 84 | Datenbankzugriff
85 - 99 | Für einen besonderen Zweck

Anmerkung
Denken Sie bitte beim Ändern oder Hinzufügen einer Verarbeitungsregel daran, dass Sie alle Map-Objekte, die diese Regel referenzieren, neu katalogisieren müssen.

Dieser Abschnitt behandelt Informationen zu folgenden Themen:

- Verarbeitungsregel zur Bearbeitung auswählen

- Direktkommandos

- Editor-Kommandos zum Positionieren

- Zeilenkommandos

### Verarbeitungsregel zur Bearbeitung auswählen

Wenn Sie das Feld-Kommando `.P*` in ein Maskenfeld eingeben, wird eine Liste aller zu diesem Feld definierten Verarbeitungsregeln angezeigt.

Wenn Sie das Zeilenkommando `..P*` in einer beliebigen Maskenzeile eingeben, wird eine Liste aller Verarbeitungsregeln angezeigt, die zu den in dieser Maske verwendeten PF-Tasten definiert sind.

In jeder dieser Listen sind die Predict-Regeln durch ihre Namen, die Inline-Regeln durch ihre ersten drei Quellcode-Zeilen identifiziert. Sie können aus der Liste eine Regel zum Bearbeiten auswählen, indem Sie ihren Rang eingeben.

Der Bildschirm zum Bearbeiten einer Regel (mit Beispiel einer Verarbeitungsregel) sieht wie folgt aus:

      Variables used in current map                                             MOD
      MODTXT(A3)                                                                  U
      FVAR(A75/1:6)                                                               U
      FTYP(A1/1:6)                                                                U
      RULEMODE(A6)                                                                U
      RULE-NAME(A32)                                                              D
      FIELDAN(A5)                                                                 D

      Rule ________________________________ Field FULCB3.CBCOM
      >                                      > + Rank 0     S 1   L 1    Struct Mode
      ALL   ....+....10...+....20...+....30...+....40...+....50...+....60...+....70..
        0010 *
        0020 IF & EQ MASK('?')
        0030  REINPUT USING HELP
        0040 END-IF
        0050 *
        0060
        0070
        0080
        0090
        0100
      Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
            Help  Mset  Exit  Test        --    -     +     Full  Sc=         Let

Während der Bearbeitung einer Verarbeitungsregel können Sie zwischen Split-Screen- und Vollbild-Modus hin und her schalten., indem Sie PF9 drücken oder das Kommando `SPLIT`/`SPLIT E` absetzen. Beim Split-Screen-Modus zeigt der obere Bildschirmbereich die Definitionen aller Maskenfelder (außer Systemvariablen) an. Sie können die Position der Anzeige mittels Editor-Kommandos zum Positionieren verändern.

Die Eingabe bzw. Bearbeitung des Quellcodes zum Definieren der Verarbeitungsregel erfolgt so wie beim Natural-Programm-Editor.

### Direktkommandos

Wenn Sie eine Verarbeitungsregel bearbeiten, können Sie eines der folgenden Direktkommandos in der Kommandozeile (>) eingeben, um bestimmte Funktionen auszuführen. Ein unterstrichener Teil eines Schlüsselworts stellt die minimal mögliche Abkürzung dar.

Weitere Informationen siehe Systemkommando-Syntax in der Systemkommandos-Dokumentation.

Kommando | Erläuterung
--- | ---
`ADD[(n)]` | Fügt n Leerzeilen zum Quellcode hinzu. Weitere Informationen siehe `ADD`-Kommando in Editor-Kommandos in der Programm-Editor-Dokumentation.
`CHANGE 'string1'string2`' | Durchsucht den Quellcode nach der als Suchwert (string1) eingegebenen Zeichenkette und ersetzt jeden gefundenen Suchwert mit der als Ersetzungswert (string2) eingegebenen Zeichenkette.
`CHECK` | Prüft die Regel.
`CLEAR` | Löscht den Inhalt des Editierbereichs (auch die Markierungen `X` und `Y`).
`DX` oder `DY` oder `DX-Y` | Löscht die mit `X` markierte Zeile oder die mit `Y` markierte Zeile oder den mit den Markierungen `X` und `Y` eingegrenzten Zeilenblock.
`EX` oder `EY` oder `EX-Y` | Löscht alle Zeilen ab dem Anfang des Editierbereichs bis zur mit `X` markierten Zeile (die jedoch nicht gelöscht wird) oder ab der Zeile, die auf die mit `Y` markierte Zeile folgt, bis zum Ende des Editierbereichs oder alle Quellcodezeilen im Quellcodebereich mit Ausnahme des Zeilenblocks, der mit den Markierungen `X` und `Y` eingegrenzt ist. .
`EXIT` | Beendet die Bearbeitung der Verarbeitungsregel. Anschließend Rückkehr zur Maskenbearbeitung.
`.`
`P` | Positioniert vorwärts zur nächsten für das Feld definierten Regel.
`P*` | Auswahl einer Regel aus dem Auswahlmenü.
`Prr` | Auswahl der Regel mit Rang rr.
`P=rr` | Ändert den Rang einer Verarbeitungsregel in den Rang rr.
`POINT` | Positioniert die Zeile, in der das Zeilenkommando `.N` eingegeben wurde, an den Anfang des aktuellen Bildschirms.
`RESET` | Löscht die aktuellen Markierungen `X` und/oder `Y` sowie jede zuvor mit dem Zeilenkommando `.N` gesetzte Markierung.
`SAVE name` | Speichert die Verarbeitungsregel als Copycode unter dem Namen name.
`SCAN ['scan-value']` | Durchsucht den Quellcode-Arbeitsbereich nach Daten. Wenn Sie das `SCAN`-Kommando ohne Parameter eingeben, wird das SCAN/REPLACE-Fenster angezeigt. Sie können dann zusätzlich zum Suchwert (scan-value) Folgendes eingeben: Wenn Sie `SCAN 'scan-value'` eingeben, erfolgt die Suche nach dem Suchwert scan-value.
`SCAN = [+|-]` | Sucht nach der nächsten Ausprägung des mit dem `SCAN`-Kommando angegebenen Suchwerts in der angegebenen Richtung. Weitere Informationen siehe `SCAN=[+|-]` unter Editor-Kommandos beim Programm-Editor.
`SHIFT [-|+nn]` | Verschiebt jede Quellcode-Zeile, die mit den Markierungen `X` und `Y` begrenzt ist, nach links oder nach rechts. Der Parameter nn gibt die Anzahl der Zeichen an, um die die Zeile verschoben werden soll. Kommentarzeilen werden nicht verschoben.
`SHIFT --` | Verschiebt jede Zeile, die mit den Markierungen `X` und `Y` begrenzt ist, ganz nach links. Kommentarzeilen werden nicht verschoben.
`SHIFT ++` | Verschiebt jede Zeile, die mit den Markierungen `X` und `Y` begrenzt ist, ganz nach rechts (maximal um 99 Stellen). Kommentarzeilen werden nicht verschoben.
`SPLIT [E]` | Umschalten zwischen Split-Screen-Modus und Vollbild-Modus. Siehe auch `SPLIT` in Editor-Kommandos zum Positionieren.
`TEST` | Testet eine Maskendefinition.
`UNLINK` | Trennt die Verknüpfung zwischen einer Inline-Regel (Inline Rule) oder einer Predict Free Rule und dem Feld.

Anmerkung
Um aus den vorhanden Predict Free Rules eine Regel auszuwählen, müssen Sie ein Fragezeichen (?) in das Regelnamensfeld des Editier-Bildschirms für die Verarbeitungsregel eingeben.

### Editor-Kommandos zum Positionieren

Editor-Kommandos zum Positionieren werden in der Kommandozeile (`>`) des Regel-Editors eingegeben. Die folgenden Kommandos stehen zum Positionieren zur Verfügung. Ein unterstrichener Teil eines Schlüsselworts stellt die minimal mögliche Abkürzung dar.

Kommando | Erläuterung
--- | ---
`+P` | Eine Seite vorwärts positionieren.
`+`
`-P` | Eine Seite rückwärts positionieren.
`-`
`+H` | Eine halbe Seite vorwärts positionieren.
`-H` | Eine halbe Seite rückwärts positionieren.
`TOP` | An den Anfang der Regel positionieren.
`–`
`BOTTOM` | An das Ende der Regel positionieren.
`++`
`+nnnn` | Um nnnn (maximal 4 Ziffern) Zeilen vorwärts positionieren.
`-nnnn` | Um nnnn (maximal 4 Ziffern) Zeilen rückwärts positionieren.
`nnnn` | Auf Zeile Nummer nnnn positionieren.
`X` | Auf die mit `X` markierte Zeile positionieren.
`Y` | Auf die mit `Y` markierte Zeile positionieren.
`SPLIT[-|--|+|++]` | Im Split-Screen rückwärts (`-` oder `–`) oder vorwärts positionieren (`+` oder `++`).

### Zeilenkommandos

Zusätzlich zu den Editor-Kommandos stehen beim Bearbeiten einer Verarbeitungsregel die folgenden Zeilenkommandos zur Verfügung:

Kommando | Erläuterung
--- | ---
`.C(nnnn)` | Kopiert die Zeile, in der das Kommando eingegeben wurde.
`.CX(nnnn)` oder `.CY(nnnn)` | Kopiert die Zeile, die mit `X` oder mit `Y` markiert ist. Siehe auch Zeilenkommandos `.X` und `.Y` in den folgenden Abschnitten.
`.CX-Y(nnnn)` | Kopiert den Zeilenblock, der mit den Markierungen `X` und `Y` eingegrenzt ist. Ist die Richtungsanzeige auf + (Pluszeichen) gesetzt, werden die kopierten Zeilen nach der Zeile platziert, in der das entsprechende Kommando eingegeben wurde. Ist die Richtungsanzeige auf - (Minuszeichen) gesetzt, werden die kopierten Zeilen vor die Zeile platziert, in der das entsprechende Kommando eingegeben wurde.
`.D(nnnn)` | Löscht eine oder mehrere Zeilen. Der Standardwert ist 1 Zeile.
`.I(n)` | Fügt n Leerzeilen ein. Zeilen, die leer gelassen werden, werden beim nächsten Drücken von Enter wieder entfernt.
`.I(obj,ssss,nnnn)` | Fügt in den Quellcode ein Objekt ein, das in der aktuellen Library oder in der Steplib enthalten ist. Der Eintrag ssss kann benutzt werden, um die Zeile anzugeben, ab der die Einfügung beginnen soll. Der Eintrag nnnn kann benutzt werden, um die Anzahl der einzufügenden Zeilen anzugeben. Weitere Informationen zu den Zeilenkommandos `.I` siehe Zeilenkommandos im Abschnitt Maske bearbeiten.
`.J` | Führt die aktuelle Zeile mit der nächsten Zeile zusammen. Ist die resultierende Zeile länger als die Editor-Bildschirmzeile, wird die Zeile mit einem `L` markiert und muss mit dem Zeilenkommando `.S` in zwei Zeilen geteilt werden (siehe unten), bevor sie geändert werden kann.
`.L` | Macht alle seit dem letzten Drücken der Enter-Taste an der Zeile vorgenommenen Änderungen rückgängig.
`.MX` oder `.MY` | Verschiebt die mit `X` oder mit `Y` markierte Zeile. Siehe auch Zeilenkommandos `.X` und `.Y` (weiter unten).
`.MX-Y` | Verschiebt den Zeilenblock, der mit den Markierungen `X` und `Y` eingegrenzt ist. Ist die Richtungsanzeige auf + (Pluszeichen) gesetzt, werden die verschobenen Zeilen nach der Zeile platziert, in der das entsprechende Kommando eingegeben wurde. Ist die Richtungsanzeige auf - (Minuszeichen) gesetzt, werden die verschobenen Zeilen vor die Zeile platziert, in der das entsprechende Kommando eingegeben wurde.
`.P` | Positioniert die mit diesem Kommando markierte Zeile an den Anfang des Bildschirms.
`.S` | Spaltet die Zeile an der mit dem Cursor markierten Position.
`.W` | Fügt n Leerzeilen ein. Zeilen, die leer gelassen werden, werden beim nächsten Drücken von Enter wieder entfernt.
`.X` | Markiert eine Zeile oder den Anfang eines Zeilenblocks, die bzw. der bearbeitet werden soll.
`.Y` | Markiert eine Zeile oder das Ende eines Zeilenblocks, die bzw. der bearbeitet werden soll. Anmerkung Wenn sowohl das Kommando `.X` als auch das Kommando `.Y` bei einer Zeile angewendet werden, wird sie behandelt, als ob sie mit einem `X` und mit einem `Y` markiert ist; die tatsächlich angezeigte Zeilenmarkierung, die diesen Status wiedergeben soll, ist ein `Z`.

### On this page

- Feldbezogene Verarbeitungsregeln
- Funktionstastenbezogene Verarbeitungsregeln
- Verarbeitungsregel bearbeiten