Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

ACCEPT-Anweisung

&pagelevel(4)&pagelevel

Funktion

Die ACCEPT-Anweisung überträgt geringe Datenmengen in ein Datenfeld. Die Daten werden entweder aus einer Systemdatei gelesen oder vom Compiler bzw. vom Betriebssystem zur Verfügung gestellt.

Format 1

liest über entsprechende Merknamen Benutzereingaben oder liefert Informationen des Betriebssystems und des Compilers.

Format 2

liefert Datums- und Uhrzeitangaben des Betriebssystems.

Format 3 & 4

dienen dem Zugriff auf die Kommandozeile des POSIX-Subsystems.

Format 5

liefert den Inhalt einer BS2000- oder POSIX-Umgebungsvariablen oder den Inhalt eines bestimmten Arguments von der POSIX-Kommandozeile.

Format 1


ACCEPT bezeichner [ FROM merkname ]


Syntaxregeln

  1. bezeichner kann eine alphanumerische Datengruppe, ein alphabetisches, alphanumerisches, extern dezimales Datenfeld oder externes Gleitpunkt-Datenfeld sein.
    Ist merkname mit Betriebssysteminformationen verknüpft (COMPILER-INFO, PROCESS-INFO, TERMINAL-INFO oder DATE-ISO4), dann darf bezeichner auch ein nationales Datenfeld sein.

  2. merkname muss im SPECIAL-NAMES-Paragrafen angegeben werden und mit einem der folgenden Herstellernamen verknüpft sein:

    SYSIPT
    TERMINAL
    CONSOLE
    job-variable-name (BS2000 job variable)
    COMPILER-INFO
    CPU-TIME, PROCESS-INFO, TERMINAL-INFO, DATE-ISO4

  3. Mit der Angabe des Merknamens für SYSIPT, TERMINAL und CONSOLE wird eine Systemdatei spezifiziert, aus der die Daten gelesen werden sollen.
    SYSIPT bezeichnet die Systemdatei gleichen Namens.
    TERMINAL bezeichnet die (im Normalfall auf die Datensichtstation zugewiesene) Systemdatei SYSDTA.
    CONSOLE bezeichnet den Bedienplatz des Systems.

  4. Mit der Angabe des Merknamens für einen Jobvariablennamen wird die zugehörige Jobvariable des Betriebssystems angesprochen, die eingelesen werden soll.

  5. Mit der Angabe des Merknamens für COMPILER-INFO, CPU-TIME, PROCESS-INFO oder TERMINAL-INFO wird die Information spezifiziert, die angefordert werden soll. COMPILER-INFO bezeichnet Informationen, die der Compiler liefert.
    CPU-TIME, PROCESS-INFO, TERMINAL-INFO und DATE-ISO4 bezeichnen Informationen, die das Betriebssystem liefert.

  6. Falls die FROM-Angabe fehlt, werden die Daten standardmäßig von der logischen Eingabedatei SYSIPT gelesen. Mit einer entsprechenden Compiler-Steueranweisung können die Daten auch von der logischen Eingabedatei SYSDTA gelesen werden (siehe Handbuch „COBOL2000 Benutzerhandbuch“ [ 1]).

  7. bezeichner darf nicht mit der ANY LENGTH-Klausel definiert sein.

  8. Die Ausführung der ACCEPT-Anweisung und der Aufbau der gelieferten Informationen für die einzelnen Funktionen sind im Handbuch „COBOL2000 Benutzerhandbuch“ [ 1] beschrieben.

Allgemeine Regeln

  1. Die Daten werden linksbündig in den durch bezeichner angegebenen Bereich übertragen, unabhängig von der für bezeichner angegebenen Maskenzeichenfolge. Für die eingelesenen Daten wird dabei weder Druckaufbereitung noch Fehlerkontrolle vorgenommen.
    Ausgenommen davon ist CPU-TIME. Die CPU-Zeit wird entsprechend den Regeln der MOVE-Anweisung von einem Sendefeld mit der Beschreibung PIC 9(6)V9(4) übertragen.
    Ist bezeichner ein null-längiges Datenfeld, so werden keine Daten übertragen.

  2. Falls die für eine ACCEPT-Anweisung verwendete Systemdatei identisch ist mit einer in einer READ-Anweisung verwendeten Systemdatei, so ist das Ergebnis unbestimmt.

  3. Eine ACCEPT-Anweisung für Jobvariable wird zur Ablaufzeit mit einer Fehlermeldung zurückgewiesen, wenn die Jobvariablen im Betriebssystem nicht vorhanden sind. Kann die Jobvariable aus bestimmten Gründen nicht eingelesen werden, gibt das Laufzeitsystem eine Fehlermeldung aus. Abhängig von einer entsprechenden Compiler-Steueranweisung (siehe Handbuch „COBOL2000 Benutzerhandbuch“ [1]) wird das Programm fortgesetzt oder abgebrochen. Im Fortsetzungsfall wird entsprechend der allgemeinen Regel 1 das Literal "/*" in den bezeichner übertragen.

Beispiel 8-20

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
    TERMINAL IS T.
...
PROCEDURE DIVISION.
    ...
    ACCEPT EINGABE FROM T.


Der Merkname T wird im SPECIAL-NAMES-Paragrafen mit dem Herstellernamen TERMINAL verknüpft. Die folgende ACCEPT-Anweisung fordert Daten aus der TERMINAL zugewiesenen Systemdatei SYSDTA an und überträgt diese in das mit EINGABE bezeichnete Datenfeld.

Format 2


ACCEPT bezeichner FROM {DATE | DAY | DAY-OF-WEEK | TIME}


Syntaxregeln

  1. bezeichner darf kein alphabetisches Datenelement sein.

  2. Durch die ACCEPT-Anweisung wird die angeforderte Information in das durch bezeichner angegebene Datenfeld, entsprechend den für die MOVE-Anweisung geltenden Regeln, übertragen. DATE, DAY, DAY-OF-WEEK und TIME sind besondere Datenfelder und werden daher nicht in der Übersetzungseinheit beschrieben.

Allgemeine Regeln

  1. DATE setzt sich zusammen aus den Datenelementen Jahr innerhalb eines Jahrhunderts, Monat des Jahres und Tag des Monats. Die Reihenfolge dieser gedachten
    Datenelemente ist von links nach rechts Jahr, Monat, Tag. Daher würde z.B. der 1. April 1996 dargestellt als 960401. Falls DATE in einem COBOL-Programm angesprochen wird, wird es interpretiert als wäre es als sechsstelliges, ganzzahliges, numerisches Datenelement ohne Vorzeichen erklärt worden (PIC 9(6)).

  2. DAY setzt sich zusammen aus den Datenelementen Jahr des Jahrhunderts und Tag des Jahres. Die Reihenfolge dieser gedachten Datenelemente ist von links nach rechts Jahr und Tag des Jahres. Daher würde z.B. der 1. April 1998 dargestellt als 98091. Falls DAY in einem COBOL-Programm angesprochen wird, wird es interpretiert, als wäre es als fünfstelliges, ganzzahliges, numerisches Datenelement ohne Vorzeichen erklärt worden (PIC 9(5)).

  3. DAY-OF-WEEK besteht aus einem einzigen Datenelement, dessen Inhalt der Wochentag ist. Falls DAY-OF-WEEK in einem COBOL-Programm angesprochen wird, wird es interpretiert, als wäre es als vorzeichenloses, ganzzahliges, numerisches Datenelement von der Länge einer Ziffernstelle beschrieben worden (PIC 9).
    Bei DAY-OF-WEEK bedeutet der Wert 1 Montag, Wert 2 Dienstag ... Wert 7 Sonntag.

  4. TIME setzt sich zusammen aus den Datenelementen Stunden, Minuten, Sekunden und Hundertstel-Sekunden. TIME basiert auf einer 24-Stunden-Zeitangabe; 2 Uhr 41 Minuten nachmittags wird also dargestellt als 14410000. Falls TIME in einem COBOL-Programm angesprochen wird, wird es interpretiert als wäre es als achtstelliges, ganzzahliges, numerisches Datenelement ohne Vorzeichen erklärt worden (PIC 9(8)). Der Minimalwert, den TIME enthalten kann, ist 00000000; der Maximalwert 23595900.
    Die beiden letzten Ziffernstellen werden vom System nicht geliefert und sind daher immer auf Null gesetzt.

Die folgenden drei Formate der ACCEPT-Anweisung sind Erweiterungen aus dem X/OPEN Portability Guide. Sie erlauben den Zugriff auf Umgebungsvariablen und Kommandozeilen. Der Zugriff auf eine Kommandozeile ist nur sinnvoll, wenn das Zielprogramm im POSIX-Subsystem abläuft, das ab BS2000/OSD 2.0 zur Verfügung steht.
Der Ablauf des COBOL2000-Compilers und der von ihm erzeugten Programme unter POSIX ist im Handbuch „COBOL2000 Benutzerhandbuch“ [1] beschrieben.

Format 3

liefert die aktuelle Anzahl der Argumente in der Kommandozeile.


ACCEPT bezeichner-1 [ FROM merkname-3 ]
    [END-ACCEPT]


Syntaxregeln

  1. bezeichner-1 muss sich auf ein Datenelement beziehen, das als Ganzzahl ohne Vorzeichen beschrieben ist.

  2. merkname-3 muss im SPECIAL-NAMES-Paragrafen mit dem Herstellernamen ARGUMENT-NUMBER verknüpft sein.

Format 4

liefert nacheinander die Inhalte der Argumente in der Kommandozeile.


ACCEPT bezeichner-2 [ FROM merkname-4 ]

[ON EXCEPTION unbedingte-anweisung-1 [NOT ON EXCEPTION unbedingte-anweisung-2]]

[END-ACCEPT]


Syntaxregeln

  1. bezeichner-2 muss sich auf ein alphanumerisches Datenelement beziehen, das ohne die ANY LENGTH-Klausel definiert ist.

  2. merkname-4 muss im SPECIAL-NAMES-Paragrafen mit dem Herstellernamen ARGUMENT-VALUE verknüpft sein.

  3. NOT ON EXCEPTION darf nur angegeben werden, wenn auch ON EXCEPTION angegeben ist.

Format 5

liefert den Inhalt einer Umgebungsvariablen oder den Inhalt eines bestimmten Arguments von der Kommandozeile. Der Name der angesprochenen Umgebungsvariablen bzw. die Nummer des angesprochenen Arguments in der Kommandozeile muss zuvor durch entsprechende DISPLAY-Anweisungen festgelegt werden.


ACCEPT bezeichner-2 [ FROM merkname-6 ]

[ON EXCEPTION unbedingte-anweisung-1 [NOT ON EXCEPTION unbedingte-anweisung-2]]

[END-ACCEPT]


Syntaxregeln

  1. bezeichner-2 muss sich auf ein alphanumerisches Datenelement beziehen, das ohne die ANY LENGTH-Klausel definiert ist.

  2. merkname-6 muss im SPECIAL-NAMES-Paragrafen mit den Herstellernamen ARGUMENT-VALUE oder ENVIRONMENT-VALUE verknüpft sein.

  3. NOT ON EXCEPTION darf nur angegeben werden, wenn auch ON EXCEPTION angegeben ist.

Ein ausführliches Beispiel für den Zugriff auf Kommandozeile und Umgebungsvariable befindet sich im Handbuch „COBOL2000 Benutzerhandbuch“ [ 1 ].