Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Beispiel eines COBOL-Hauptprogramms

&pagelevel(3)&pagelevel

Ein COBOL-Hauptprogramm soll PERCON als Unterprogramm aufrufen. Die PERCON-Anweisungen werden vom Programm bereitgestellt.

Ausdruck des Quellprogramms

       IDENTIFICATION DIVISION.
        PROGRAM-ID. PERCONCO.
        ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
        SPECIAL-NAMES.
            TERMINAL IS SYSOUT.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        01 PARAM.                                                        (1)
          02 STMT-INDICATOR             PIC S9(5) COMP SYNC VALUE 132.   (2)
          02 STATEMENT-1 SYNC.
            03 STMT-LENGTH              PIC S99 COMP VALUE 45.           (3)
            03 FILLER                   PIC S99 COMP VALUE 0.
            03 STMT                     PIC X(41) VALUE                  (4)
                 "MODIFY-PERCON-OPTIONS SYSOUT-LOGGING=*ALL".
          02 STATEMENT-2 SYNC.
            03 STMT-LENGTH              PIC S99 COMP VALUE 38.
            03 FILLER                   PIC S99 COMP VALUE 0.
            03 STMT                     PIC X(34) VALUE
                 "ASSIGN-INPUT-FILE  LINK-NAME=PCIN".
          02 STATEMENT-3 SYNC.
            03 STMT-LENGTH              PIC S99 COMP VALUE 38.
            03 FILLER                   PIC S99 COMP VALUE 0.
            03 STMT                     PIC X(34) VALUE
                 "ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT".
         02 STATEMENT-4 SYNC.
            03 STMT-LENGTH              PIC S99 COMP VALUE 7.
            03 FILLER                   PIC S99 COMP VALUE 0.
            03 STMT                     PIC X(3) VALUE
                 "END".

(1)

Symbolische Adresse des Parameterbereichs.

(2)

Im 4. Byte steht das Kennzeichen für die Art der Übergabe der Anweisungen. X’84’: Die PERCON-Anweisungen werden vom Hauptprogramm in Form variabler Sätze übergeben.

(3)

Mit STMT-LENGTH und FILLER wird das Satzlängenfeld der Anweisung definiert.

(4)

Mit STMT wird das Feld für den Satzinhalt der Anweisung definiert.

        01 RETCODE.                                                      (5)
          02 DMS-CODE                   PIC S9(5) COMP SYNC.             (6)
          02 MESSAGE-ID.                                                 (7)
             03 BYTE-1-2                PIC 9(4) COMP.
             03 BYTEAN-1-2              REDEFINES BYTE-1-2.
                04 BYTEAN-1             PIC X.
                04 FILLER               PIC X.
             03 BYTES-REST              PIC X(10).
        01 RESERVED.
          02 FILLER                     PIC S9(5) COMP.
          02 FILLER                     PIC S9(5) COMP.
        77 BIT-2                        PIC 9.
       PROCEDURE DIVISION.
        AUFRUF-PERCON SECTION.
        AR-1.
            CALL "PERCONU" USING PARAM RETCODE RESERVED.                 (8)
            SUBTRACT 32768 FROM BYTE-1-2.
            IF BYTEAN-1 NOT < SPACE
            MOVE 1 TO BIT-2
            ELSE MOVE ZERO TO BIT-2.
            IF BIT-2 = 0
               DISPLAY "PERCON RUN SUCCESSFUL" UPON SYSOUT
            ELSE
               DISPLAY "PERCON RUN ERRONEOUS" UPON SYSOUT.
        STOP RUN.

(5)

Symbolische Adresse des Bereichs für Rücksprunginformation.

(6)

Das Feld DMS-CODE wird von PERCON mit der letzten DVS-Meldung versorgt.

(7)

Reservierter Bereich für die PERCON-Meldungen.

(8)

PERCON wird aufgerufen. Der Einsprungpunkt ist PERCONU.

Als Daten werden übergeben:

  • Die Datengruppe PARAM, bestehend aus einem Feld, das das Kennzeichen für die Anweisungsübergabe enthält, gefolgt von den PERCON Anweisungen.

  • Die Datengruppe RETCODE, bestehend aus vier Feldern, kann den Returncode aufnehmen.

  • Die Datengruppe RESERVED, bestehend aus zwei Feldern, dient für zukünftige Erweiterungen.

Übersetzen, Binden und Aufrufen des Programms (Ablaufprotokoll)

/DELETE-SYSTEM-FILE FILE-NAME=*OMF
/START-COBOL2000-COMPILER SOURCE=PERCONCO.SRC - &*————————————————————  (9)
/  ,MONJV=#MONJV
%  BLS0500 PROGRAM 'COBOL2000', VERSION '01.6A11' OF '2020-04-02' LOADED
%  CBL9000 COPYRIGHT (C) 2020 Fujitsu Technology Solutions GmbH.
                         ALL RIGHTS RESERVED
%  CBL9017 COMPILATION INITIATED, VERSION IS  V01.6A11
%  CBL9095 SAVLST FILE :2OS6:$WKST.OPTLST.COBOL.PERCONCO CREATED AND CLOSED
%  CBL9095 SAVLST FILE :2OS6:$WKST.SRCLST.COBOL.PERCONCO CREATED AND CLOSED
%  CBL9095 SAVLST FILE :2OS6:$WKST.ERRFIL.COBOL.PERCONCO CREATED AND CLOSED
%  CBL9097 COMPILATION COMPLETED WITHOUT ERRORS
%  CBL9004 COMPILATION OF PERCONCO USED  0.0631 CPU SECONDS
/START-BINDER &* —————————————————————————————————————————————————————— (10)
//START-LLM-CREATION INTERNAL-NAME=COBPROG1 &* ———————————————————————— (11)
//INCLUDE-MODULES LIBRARY=*OMF,ELEMENT=*ALL
//RESOLVE-BY-AUTOLINK LIBRARY=$.SYSLNK.PERCON.030 &* —————————————————— (12)
//RESOLVE-BY-AUTOLINK LIBRARY=$.SYSLNK.CRTE
//SAVE-LLM LIBRARY=COB.PROG.LIB
%  BND3101 SOME EXTERNAL REFERENCES UNRESOLVED
%  BND3102 SOME WEAK EXTERNS UNRESOLVED
%  BND1501 LLM FORMAT: '1'
//END
% BND1101 BINDER NORMALLY TERMINATED. SEVERITY CLASS: 'UNRESOLVED EXTERNAL'

(9)

Der COBOL-Übersetzer wird aufgerufen. Mit dem SOURCE-Operanden wird die Datei PERCONCO.SRC als Eingabedatei zugewiesen.

(10)

Der BINDER wird aufgerufen.

(11)

Der Name des Programms wird bestimmt.

(12)

Die Bindemodulbibliothek SYSLNK.PERCON.030 und das Laufzeitsystem SYSLNK.CRTE werden zugewiesen.

/ADD-FILE-LINK - &*—————————————————————————————————————————————————————— (13)
/   FILE-NAME=PERS.TAB,-
/   LINK-NAME=PCIN
/CREATE-FILE FILE-NAME=PERS.SEL
/ADD-FILE-LINK - &*—————————————————————————————————————————————————————— (14)
/   FILE-NAME=PERS.SEL,-
/   ACCESS-METHOD=*SAM,-
/   LINK-NAME=PCOUT
/START-EXECUTABLE-PROGRAM - &*——————————————————————————————————————————— (15)
/  FROM-FILE=*LIBRARY-ELEMENT(LIBRARY=COB.PROG.LIB,ELEMENT-OR-SYMBOL=COBPROG1)
%ASSIGN-INPUT-FILE  LINK-NAME=PCIN —————————————————————————————————————— (16)
%ASSIGN-OUTPUT-FILE LINK-NAME=PCOUT        
%END
%  PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCIN' 
           (FILE=:2OS6:$WKST.PERS.TAB):                  12   ——————————— (17)
%  PER0030 NUMBER OF PROCESSED RECORDS FOR LINK='PCOUT'
           (FILE=:2OS6:$WKST.PERS.SEL):                  12
%  PER0031 PERCON TERMINATED NORMALLY
PERCON RUN SUCCESSFUL ——————————————————————————————————————————————————— (18)
(13)Die Eingabedatei PERS.TAB wird mit dem Dateikettungsnamen PCIN zugewiesen.

(14)

Die Ausgabedatei PERS.SEL wird mit dem Dateikettungsnamen PCOUT und ihren Dateieigenschaften zugewiesen.

(15)

Das soeben gebundene Programm wird geladen und gestartet.

(16)

Die folgenden Anweisungen werden vom COBOL-Programm bereitgestellt und hier protokolliert.

(17)

Meldungen von PERCON als Unterprogramm.

(18)

Ausgabe des Hauptprogramms.