Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Aktualisieren von Feldern in einem existierenden Ausgabesatz

&pagelevel(3)&pagelevel

Als bereits existierende Ausgabedatei steht die ISAM-Datei PERSONAL mit den folgenden Eigenschaften zur Verfügung:

RECORD-FORMAT = FIXED RECORD-SIZE = 60
KEY-POSITION  = 1     KEY-LENGTH = 4

Inhalt der Datei PERSONAL vor dem PERCON-Lauf:

Spalte 
1-4        5-17       18-29     30-34  35-39    41-60 
Pers.-Nr.  Name       Vorname   Abt.   Gehalt   Ort 
0005       MUELLER    HUBERT    A      06500    MUENCHEN 
0008       BREMER     KARIN     B1     04800    FREISING 
0012       ILTENAU    OTTO      A23    03450    ULM 
0015       ALBERTUS   ILONA     B12    02880    MUENCHEN 
0023       BERGER     ALBERT    A1     04250    NUERNBERG 
0036       BOETTGE    BAERBEL   K2     04300    WUERZBURG 

In einem Aktualisierungslauf sollen Gehalts- und Ortsveränderungen in die Datei eingearbeitet werden. Die Änderungsdaten befinden sich in der Datei PERS.UPDATE. Mit einem dreistelligen Kennzeichen wird festgelegt, welches Feld aktualisiert werden soll. Über die Personalnummer (Schlüsselfeld) wird die Beziehung zwischen Ein- und Ausgabesätzen hergestellt:

Aufbau der Änderungssätze (variables Satzformat):

Spalte 
5-7    8-11       12 - max. 31 
Kennz. Pers.-Nr.  Änderungsdaten  (abhängig vom Kennzeichen) 
ORT    0015       REGENSBURG          Änderung des Ortes 
GEH    0008       05300               Gehalts-Änderung 
ORT    0011       STUTTGART           Änderung des Ortes, aber Pers.-Nr. 
                                      nicht vorhanden 

PERCON-Anweisungen:

/ADD-FILE-LINK LINK-NAME=PCOUT1 ,FILE-NAME=PERSONAL ,OPEN-MODE=*INOUT &* (1)
/ADD-FILE-LINK LINK-NAME=PCOUT2 ,FILE-NAME=PERSONAL ,OPEN-MODE=*INOUT
/START-PERCON &* ——————————————————————————————————————————————————————  (2)
//ASSIGN-INPUT-FILE FILE=*DISK-FILE(NAME=PERS.UPDATE) &* ——————————————  (3)
//ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT1 &* ——————————————————————————————  (4)
//ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT2 
//SELECT-INPUT-RECORDS - &* ———————————————————————————————————————————  (5)
//   CONDITION=((5,3)='GEH') ,OUTPUT-LINK-NAME=PCOUT1 
//SELECT-INPUT-RECORDS - &* ———————————————————————————————————————————  (6)
//   CONDITION=((5,3)='ORT') ,OUTPUT-LINK-NAME=PCOUT2 
//SET-RECORD-MAPPING - &* —————————————————————————————————————————————  (7)
//   OUTPUT-LINK-NAME=PCOUT1,-
//   FILLER=*OUTPUT(-
//      KEY-NAME=*PRIMARY,- 
//      KEY-VALUE=*BY-INPUT-RECORD(KEY-POSITION=8)),- 
//   OUTPUT-FIELDS=*FIELD(-
//      INPUT-POSITION=12,-
//      INPUT-LENGTH=5,- 
//      INPUT-FORMAT=*ZONED-DECIMAL,- 
//      OUTPUT-POSITION=35) 
//SET-RECORD-MAPPING - &* —————————————————————————————————————————————  (8)
//   OUTPUT-LINK-NAME=PCOUT2,-
//   FILLER=*OUTPUT(-
//      KEY-NAME=*PRIMARY,- 
//      KEY-VALUE=*BY-INPUT-RECORD(KEY-POSITION=8)),- 
//   OUTPUT-FIELDS=*FIELD(-
//      INPUT-POSITION=12,- 
//      INPUT-LENGTH=*RECORD-LENGTH(REDUCTION=7),- 
//      OUTPUT-POSITION=41,-
//      OUTPUT-LENGTH=20) 
//END &* ——————————————————————————————————————————————————————————————  (9)
%  PER0054 WARNING: KEY '0011' MISSING IN FILE ':2OS6:$WKST.PERSONAL', LINK='PCOUT2'
%  PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCIN' (FILE=:2OS6:$WKST.PERS.UPDATE):                   3
%  PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCOUT1' (FILE=:2OS6:$WKST.PERSONAL):                   1
%  PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCOUT2' (FILE=:2OS6:$WKST.PERSONAL):                   1
%  PER0031 PERCON TERMINATED NORMALLY
  

(1)

Bei ISAM-Dateien können für dieselbe Ausgabedatei mehrere ADD-FILE-LINK-Kommandos mit dem Eröffnungsmodus OPEN-MODE=*INOUT und verschiedenen Dateikettungsnamen abgesetzt werden. Über diese Dateikettungsnamen werden dann unterschiedliche PERCON-Anweisungen zugeordnet.

Hinweis

Wenn FILLER=*OUTPUT in der Anweisung SET-RECORD-MAPPING angegeben wird, werden die betroffenen Ausgabedateien immer mit OPEN-MO-DE=*INOUT eröffnet, d.h. die Angabe in /ADD-FILE-LINK ist nicht unbedingt erforderlich.

(2)

PERCON wird gestartet.

(3)

Die Eingabedatei PERS.UPDATE mit den Aktualisierungsdaten wird zugewiesen.

(4)

Die Ausgabedatei wird mit ihren Dateikettungsnamen mehrfach zugewiesen.

(5)

Mit dieser Anweisung werden aus der Eingabedatei die Sätze selektiert, die mit dem Kennzeichen GEH eine Änderung des Feldes „Gehalt“ bewirken sollen. Über den LINK-Namen PCOUT1 wird die Verbindung zur Anweisung SET-RECORD-MAPPING, die das Feld „Gehalt“ ändert, hergestellt.

(6)

Mit dieser Anweisung werden aus der Eingabedatei die Sätze selektiert, die mit dem Kennzeichen ORT eine Änderung des Feldes „Ort“ bewirken sollen. Über den LINK-Namen PCOUT2 wird die Verbindung zur Anweisung SET-RECORD-MAPPING, die das Feld „Ort“ ändert, hergestellt.

(7)

Diese Anweisung bewirkt, dass ein Satz der Ausgabedatei zur Vorbelegung des Ausgabebereiches benutzt wird. Die Auswahl des Satzes erfolgt über das im Änderungssatz enthaltene Feld „Pers.-Nr.“. Die eigentlichen Änderungsdaten sind in das Feld „Gehalt“ des Ausgabesatzes zu übertragen.

(8)

Diese Anweisung bewirkt, dass ein Satz der Ausgabedatei zur Vorbelegung des Ausgabebereiches benutzt wird. Die Auswahl des Satzes erfolgt über das im Änderungssatz enthaltene Feld „Pers.-Nr.“. Die eigentlichen Änderungsdaten sind in das Feld „Ort“ des Ausgabesatzes zu übertragen.

(9)

Die END-Anweisung startet den Übertragungsvorgang und beendet PERCON.

Inhalt der Datei PERSONAL nach einem PERCON-Lauf mit obigen Anweisungen:

Geändert wurden die zwei Sätze mit den Personal-Nummern 0008 und 0015.

Spalte 
1-4        5-17       18-29     30-34  35-39    41-60 
Pers.-Nr.  Name       Vorname   Abt.   Gehalt   Ort 
0005       MUELLER    HUBERT    A      06500    MUENCHEN 
0008       BREMER     KARIN     B1     05300    FREISING —————————————— (10) 
0012       ILTENAU    OTTO      A23    03450    ULM 
0015       ALBERTUS   ILONA     B12    02880    REGENSBURG ———————————— (11) 
0023       BERGER     ALBERT    A1     04250    NUERNBERG 
0036       BOETTGE    BAERBEL   K2     04300    WUERZBURG 

(10)

In diesem Satz wurde das Feld „Gehalt“ geändert.

(11)

In diesem Satz wurde das Feld „Ort“ geändert.

In der Datei PERSONAL fehlt der Satz mit der Pers.-Nr. 0011. Deshalb wird bei der Verarbeitung des entsprechenden Änderungssatzes die Meldung PER0054 ausgegeben.