COBOL-Programme können Sie entweder mit den Compilern von Micro Focus oder dem Compiler NetCOBOL von Fujitsu erstellen.
Dieses Unterkapitel beschreibt folgende Compiler-spezifische Besonderheiten:
Generierung
Schlüsselwörter
Umgebungsvariablen
Übersetzen von COBOL-Teilprogrammen
Einzelheiten zum Binden einer Anwendung und zum Erzeugen von Shared Objects finden Sie im Handbuch openUTM-Handbuch „Einsatz von UTM-Anwendungen auf Unix-, Linux- und Windows-Systemen“ im Unterkapitel „UTM-Prozess binden auf Unix- und Linux-Systemen".
Generierung
Bei der Generierung müssen Sie für diese Programme folgende KDCDEF-Anweisung angeben:
Micro Focus COBOL:
PROGRAM objectname, COMP=MFCOBOL [,SHARED-OBJECT=shared_object_name]
NetCOBOL:
PROGRAM objectname, COMP=NETCOBOL [,SHARED-OBJECT=shared_object_name]
Schlüsselwörter
Micro Focus COBOL und NetCOBOL
In den COBOL-Compilern gibt es die Schlüsselwörter OBJECT-ID, RESTRICTED und USER. Diese Schlüsselwörter kollidieren mit Namen in den COPY-Elementen der UTM-Schnittstellen. Um diese Konflikte zu vermeiden, haben Sie zwei Möglichkeiten:
Wenn die COBOL-Teilprogramme nicht objektorientiert sind, haben Sie bei manchen Compilern die Möglichkeit, beim Übersetzen die Compiler-Schalter
REMOVE(OBJECT-ID) , REMOVE(RESTRICTED) und REMOVE(USER) anzugeben.Wenn der Compiler nicht über die REMOVE-Funktionalität verfügt, bzw. wenn die objektorientierte Funktionalität erhalten bleiben soll, müssen die COPY-Anweisungen beispielsweise wie folgt modifiziert werden:
COPY
COPY-ElementREPLACING OBJECT-ID BY
NEW-OBJECT-ID.COPY
COPY-ElementREPLACING RESTRICTED BY
NEW-RESTRICTED.COPY
COPY-ElementREPLACING USER BY
NEW-USER.Beim Datenzugriff müssen die neuen Namen verwendet werden.
NetCOBOL
In den von openUTM ausgelieferten COBOL-Copies KCAUSERC und KCAUSD2C ist jeweils ein Strukturfeld namens PASSWORD enthalten.
Da PASSWORD im NetCOBOL-Compiler ein reserviertes Wort ist, muss beim Inkludieren dieser Dateien in der COBOL-Source eine REPLACING-Anweisung ergänzt werden, z.B.
COPY KCAUSERC REPLACING PASSWORD BY PASSWORD-NC.
Reservierte Schlüsselwörter bei Verwendung von CPIC
Bei Micro Focus COBOL ist TIMEOUT ein reserviertes Wort. Da dieses Wort aber auf Grund der CPIC-Spezifikation in dem COBOL-Copy CMCOBOL enthalten ist, muss dieser Name im Source ersetzt werden, z.B.
COPY CMCOBOL REPLACING TIMEOUT BY CPIC-TIMEOUT.
Umgebungsvariable
Micro Focus COBOL
Wenn Sie COBOL-Teilprogramme mit Micro Focus COBOL verwenden, führen Sie folgende Schritte durch:
> | Rufen Sie das Skript |
> | Erweitern Sie die Umgebungsvariable COBCPY um |
> | Falls Sie Programme auf Basis von CPIC, TX bzw. XATMI unter openUTM erstellen, erweitern Sie die Umgebungsvariable COBCPY um |
> | Falls Sie Client-Programme auf Basis von UPIC-L erstellen, erweitern Sie die Umgebungsvariable COBCPY um |
> | Setzen Sie die Umgebungsvariable COBMODE:
|
NetCOBOL
Wenn Sie NetCOBOL-Teilprogramme verwenden, führen Sie folgende Schritte durch:
> | Rufen Sie das Skript |
> | Erweitern Sie die Umgebungsvariable COBCOPY um |
> | Setzen Sie die Umgebungsvariable COB_LIBSUFFIX auf |
> | Falls Sie Programme auf Basis von CPIC, TX bzw. XATMI unter openUTM erstellen, erweitern Sie die Umgebungsvariable COB_COBCOPY um |
> | Falls Sie Client-Programme auf Basis von UPIC-L erstellen, erweitern Sie die Umgebungsvariable COB_COBCOPY um |
Übersetzen eines COBOL-Teilprogramms
Micro Focus COBOL
Micro Focus COBOL-Quellprogramme werden mit cob übersetzt. Dabei geben Sie folgende Schalter an:
-c | Erzeugen einer .o-Datei |
NetCOBOL
NetCOBOL-Quellprogramme werden mit cobol erzeugt. Dabei geben Sie folgende Schalter an:
cobol -c WC'LIST,SOURCE,XREF,MESSAGE,COPY(FULL),SRF(VAR,FIX)' P'cobolprogramm.lst' cobolprogramm.cbl
(Erzeugen einer .o-Datei)
Weitere Einzelheiten zum Erzeugen von UTM-Anwendungen mit COBOL-Programmen finden Sie im openUTM-Handbuch „Einsatz von UTM-Anwendungen auf Unix-, Linux- und Windows-Systemen“. |