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: - COPYCOPY-Element- REPLACING OBJECT-ID BYNEW-OBJECT-ID.- COPYCOPY-Element- REPLACING RESTRICTED BYNEW-RESTRICTED.- COPYCOPY-Element- REPLACING USER BYNEW-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“. | 
