Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

EXTERNAL-Klausel

&pagelevel(4)&pagelevel

Function

Mit der EXTERNAL-Klausel kann eine Datei als extern definiert werden. Auf externe Dateien kann von jedem Programm, in dem die Datei beschrieben ist, zugegriffen werden.

Format


IS EXTERNAL


Syntaxregel

  1. Namen von externen Dateien dürfen maximal 30 Zeichen lang sein.

Allgemeine Regeln

  1. Ist eine Datei als extern definiert, sind die Datensätze dieser Datei implizit ebenfalls extern.

  2. Wenn die Dateierklärung für eine sequenzielle Datei die LINAGE-Klausel und die EXTERNAL-Klausel enthält, ist das Sonderregister LINAGE-COUNTER implizit ein externes Datenfeld.

  3. Als Namen für externe Dateien dürfen nicht verwendet werden:

    • externe Datensatznamen aus der WORKING-STORAGE SECTION anderer Übersetzungseinheiten in der Ablaufeinheit,

    • PROGRAM-ID-Namen der Ablaufeinheit, ausgenommen Programmnamen von inneren Programmen eines geschachtelten Programms,

    • Namen, die in der ENTRY-Anweisung als Einsprungpunkte verwendet werden,

    • Namen, die eine Schnittstelle benennen (LZS-Namen u.a.),

  4. Die FILE STATUS-Klausel wirkt für externe Dateien stets programmlokal, d.h. der Dateizustand wird nur von Ein-/Ausgabe-Operationen in dem Programm versorgt, das eine entsprechende Angabe in der Dateibeschreibung enthält.

  5. Die EXTERNAL-Klausel darf nicht in Datei- oder Datensatzerklärungen von Dateien angegeben werden, die einen gemeinsamen Ein-/Ausgabebereich (SAME RECORD AREA-Klausel) belegen.

  6. Die EXTERNAL-Klausel darf nicht für Dateien angegeben werden, die den Systemgeräten SYSIPT, SYSOPT, PRINTER oder PRINTERnn zugewiesen sind.

  7. Die EXTERNAL-Klausel darf nicht für Dateien angegeben werden, für die Benutzerkennsätze und entsprechende USE-Prozeduren vereinbart sind.

  8. Eine externe Datei muss in allen Programmen, die auf sie zugreifen wollen, durch explizite Klauseln oder durch implizite Standardwerte weitgehend gleich beschrieben sein. Die folgende Tabelle zeigt Art und Umfang der notwendigen Übereinstimmung:

    Klauseln / Angaben in allen Programmen
    Name der externen Datei
    OPTIONAL-Angabe (SELECT-Klausel)
    ASSIGN TO datenname
    ASSIGN TO PRINTER literal
    ORGANIZATION-Klausel
    ACCESS MODE-Klausel
    RELATIVE KEY-Angabe
    RECORD KEY-Klausel
    ALTERNATE RECORD KEY-Klausel
    BLOCK CONTAINS-Klausel
    MULTIPLE FILE TAPE-Klausel
    RECORD-Klausel
    LABEL RECORDS-Klausel
    REPORT-Klausel (Report Writer)
    LINAGE-Klausel
    CODE SET-Klausel
    RECORDING MODE-Klausel
    gleich in der vollen Länge (30 Zeichen)
    gleiche Angabe*)
    gleiche Zuweisungsform
    gleiche Zuweisungsform
    gleiche Organisationsform
    gleiche Zugriffsmethode
    gleiche Anzahl Ziffern
    gleiche Länge und Position
    gleiche Anzahl, Position, Länge und DUPLICATES-Angabe
    gleiche Blockgröße in Bytes
    gleiche Positionsnummer
    gleiche minimale und maximale Satzlänge
    gleiche Angabe*)
    gleiche Angabe*)
    gleiche Angabe*)
    gleiche Angabe*)
    gleiche Angabe*)

    *)  Gleiche Angabe heißt: Die betreffende Klausel darf entweder in keinem der Programme angegeben sein oder muss in allen Programmen gleich angegeben sein.

    Alle Programme, die auf die gleiche externe Datei zugreifen, müssen mit dem gleichen Wert der Compiler-Option ENABLE-UFS-ACCESS bzw. mit dem gleichen Modulformat übersetzt worden sein (siehe Handbuch „COBOL2000 Benutzerhandbuch“ [1]).

Ist eine Datei als extern definiert, so ist der zugehörige Dateiname nicht implizit ein globaler Name.

Zusatzregeln, abhängig vom Modulformat

Wird das Format *OMF generiert (siehe Handbuch „COBOL2000 Benutzerhandbuch“ [1]), so gilt für Namen von externen Dateien:

  1. Das achte Zeichen darf kein Bindestrich sein.

  2. Es werden nur die ersten 7 Zeichen des Namens zur Identifizierung verwendet. Deshalb sollten diese Zeichen eindeutig sein für jeden externen Namen in Ablaufeinheit.