Der CHAINING/USING-Zusatz der PROCEDURE DIVISION

USING-Zusatz
Für den Fall, daß es sich um ein externes Unterprogramm handelt, muß in der PROCEDURE DIVISION dieser Zusatz verwendet werden. Dies gilt jedoch nur, wenn das Programm mittels CALL-Anweisung aufgerufen werden.
Die hinter USING angegebenen Datennamen beziehen sich dabei auf die, in der LINKAGE SECTION definierten Datenfelder. Diese verweisen entweder auf die Datenfelder des 'rufenden' Programms (BY REFERECE) oder erzeugen neue Datenfelder (BY CONTENT).
Die Anzahl der Felder, die hinter USING angegeben werden, darf die Zahl der, hinter dem USING-Zusatz der CALL-Anweisung angegebenen Felder allenfalls unterschreiten. Normalerweise ist die Anzahl gleich.

'rufendes' Programm:
IDENTIFICATION DIVISION.
PROGRAMM-ID. Haupt.
     :
DATA DIVISION.
01 Wert-1 PIC X(20).
01 Gruppe-1.
   05 Feld-A PIC X(10).
   05 Feld-B PIC X(10).
     :
PROCEDURE DIVISION.
     :
     CALL "Unterprgr" USING Wert-1, Gruppe-1.
     :

'gerufenes' Programm:
IDENTIFICATION DIVISION.
PROGRAMM-ID. Unterprgr.
     :
DATA DIVISION.
LINKAGE SECTION.
01 Feld-1 PIC X(20).
01 Beide.
   05 Name-A PIC X(10).
   05 Name-B PIC X(10).
     :
PROCEDURE DIVISION USING Feld-1, Beide.
     :


CHAINING-Zusatz
Neben der Möglichkeit ein externes Unterprogramm mit dem CALL-Befehl aufzurufen, gibt es noch die Möglichkeit dies mittels CHAIN-Anweisung zu bewerkstelligen. Wurde das zweite Verfahren gewählt, so wird im 'gerufenen' Programm der CHAINING-Zusatz in der PROCEDURE DIVISION benötigt. Natürlich muß in der CHAIN-Anweisung des 'rufenden' Programms der USING-Zusatz verwendet worden sein. Die hinter CHAINING angegebenen Datenfelder werden hier nicht in der LINKAGE SECTION sondern der WORKING-STORAGE SECTION oder der FILE SECTION definiert.

'rufendes' Programm:
IDENTIFICATION DIVISION.
PROGRAMM-ID. Haupt.
     :
WORKING-STORAGE SECTION.
01 Wert-1 PIC X(20).
01 Gruppe-1.
   05 Feld-A PIC X(10).
   05 Feld-B PIC X(10).
     :
PROCEDURE DIVISION.
     :
     CHAIN "Unterprgr" USING Wert-1, Gruppe-1.
     :

'gerufenes' Programm:
IDENTIFICATION DIVISION.
PROGRAMM-ID. Unterprgr.
     :
WORKING-STORAGE SECTION.
01 Feld-1 PIC X(20).
01 Beide.
   05 Name-A PIC X(10).
   05 Name-B PIC X(10).
     :
PROCEDURE DIVISION CHAINING Feld-1, Beide.
     :


...