Herunterladen Inhalt Inhalt Diese Seite drucken
Inhaltsverzeichnis

Werbung

Deutsch
BS2000/OSD
COBOL2000 V1.5
COBOL-Compiler
Benutzerhandbuch
Ausgabe März 2014

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Fujitsu BS2000/OSD COBOL2000 V1.5

  • Seite 1 Deutsch BS2000/OSD COBOL2000 V1.5 COBOL-Compiler Benutzerhandbuch Ausgabe März 2014...
  • Seite 2 Forderungen der DIN EN ISO 9001:2008 erfüllt. cognitas. Gesellschaft für Technik-Dokumentation mbH www.cognitas.de Copyright und Handelsmarken Copyright © Fujitsu Technology Solutions GmbH 2014. Alle Rechte vorbehalten. Liefermöglichkeiten und technische Änderungen vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Warenzeichen der jeweiligen Hersteller.
  • Seite 3: Inhaltsverzeichnis

    Inhalt Einleitung ........11 Zielsetzung und Zielgruppen des Handbuchs .
  • Seite 4 Inhalt Parametrisierte Klassen und Interfaces ..... . . 44 Steuerung des Compilers über SDF ......49 Compileraufruf und Eingabe der Optionen .
  • Seite 5 Inhalt Binden, Laden, Starten ....... . 119 Aufgaben des Binders ....... . 120 Statisches Binden mit TSOSLNK .
  • Seite 6 Inhalt Verarbeitung katalogisierter Dateien ......177 Grundsätzliches zum Aufbau und zur Verarbeitung katalogisierter Dateien . . 177 9.1.1 Grundbegriffe zum Aufbau von Dateien .
  • Seite 7 Inhalt Verarbeiten von XML-Dokumenten ......271 10.1 Bereitstellen von XML-Dokumenten ......271 10.2 Verwenden von XML-Sprachmitteln in Programmen .
  • Seite 8 Inhalt COBOL2000 und POSIX ....... 303 14.1 Überblick ........304 14.1.1 Übersetzen .
  • Seite 9 Inhalt Meldungen des COBOL2000-Systems ......349 Anhang ........353 17.1 Aufbau des COBOL2000-Systems .
  • Seite 10 Inhalt U41113-J-Z125-6...
  • Seite 11: Einleitung

    1 Einleitung COBOL2000 ist der COBOL-Compiler für objektorientiertes Programmieren in BS2000/OSD. 1.1 Zielsetzung und Zielgruppen des Handbuchs Das vorliegende Benutzerhandbuch beschreibt, wie COBOL-Programme in einer BS2000- Systemumgebung verarbeitet werden. Das Handbuch wendet sich an Benutzer, die über Kenntnisse der Programmiersprache COBOL sowie des Betriebssystems BS2000 verfügen.
  • Seite 12 Das Kommando zeigt, unter /SHOW-INSTALLATION-PATH INSTALLATION-UNIT=<product> welcher Benutzerkennung die Dateien des Produkts abgelegt sind. Ergänzende Produkt-Informationen Aktuelle Informationen, Versions-, Hardware-Abhängigkeiten und Hinweise für Installation und Einsatz einer Produktversion enthält die zugehörige Freigabemitteilung. Solche Frei- gabemitteilungen finden Sie online unter http://manuals.ts.fujitsu.com. U41113-J-Z125-6...
  • Seite 13: Die Ausbaustufen Des Cobol2000-Systems

    Einleitung Die Ausbaustufen des COBOL2000-Systems 1.3 Die Ausbaustufen des COBOL2000-Systems Das COBOL2000-System V1.5 wird in zwei Ausbaustufen geliefert: – COBOL2000 (Vollausbau) – COBOL2000-BC (Basic Configuration / Grundausbaustufe) In der BC-Version des COBOL2000 werden folgende Steuerungs- und Sprachkomponen- ten nicht unterstützt: –...
  • Seite 14: Änderungen Gegenüber Der Vorgängerversion

    Änderungen gegenüber der Vorgängerversion Einleitung 1.4 Änderungen gegenüber der Vorgängerversion Verarbeitung von XML-Dokumenten Bereitstellen von XML-Dokumenten ● Verwenden von XML-Sprachmitteln in Programmen ● Binden, Laden und Starten von Programmen mit XML-Sprachmitteln ● Erkennung des Zeichensatzes, der für die Darstellung des XML-Dokuments verwendet ●...
  • Seite 15: Darstellungsmittel

    Einleitung Darstellungsmittel 1.5 Darstellungsmittel In diesem Benutzerhandbuch werden folgende metasprachliche Konventionen verwendet: COMOPT Großbuchstaben bezeichnen Schlüsselwörter, die in dieser Form eingegeben werden müssen. name Kleinbuchstaben bezeichnen Variablen, die bei der Eingabe durch aktuelle Werte ersetzt werden müssen. Die Unterstreichung eines Wertes bedeutet, dass es sich um einen Standardwert handelt, der automatisch eingesetzt wird, wenn der Anwender keine Angaben macht.
  • Seite 16: Begriffserklärungen

    Begriffserklärungen Einleitung 1.6 Begriffserklärungen In der Beschreibung des Programmerstellungsprozesses werden häufig unterschiedliche Begriffe für dasselbe Objekt verwendet. Beispielsweise wird das Resultat eines Compiler- laufs als „Objektmodul“ bezeichnet, während für den Binder dasselbe Objekt ein „Bindemo- dul“ (= „zu bindendes Modul“) ist. Die Verwendung der komponentenspezifischen Begriffe ist sinnvoll, kann aber beim Leser des Handbuchs zur terminologischen Verunsicherung führen.
  • Seite 17 Einleitung Begriffserklärungen Das Synonym „Objektprogramm“ für Lademodul kann in der COBOL-Terminologie zu Miss- verständnissen führen: Im COBOL-Standard wird, ohne auf die herstellerspezifische Not- wendigkeit eines Bindelaufs einzugehen, als Objektprogramm bereits das vom COBOL- Compiler erzeugte Kompilat bezeichnet. Auftrag (Job), Task, Prozess Ein Auftrag (Job) ist die Folge von Kommandos, Anweisungen etc., die zwischen den Kom- mandos SET-LOGON-PARAMETERS und EXIT-JOB (bzw.
  • Seite 18 Begriffserklärungen Einleitung U41113-J-Z125-6...
  • Seite 19: Von Der Übersetzungseinheit Zum Ablauffähigen Programm

    2 Von der Übersetzungseinheit zum ablauffähigen Programm Damit aus einer COBOL-Übersetzungseinheit ein ablauffähiges Programm wird, sind drei Schritte nötig: 1. Bereitstellen der Übersetzungseinheit (siehe Abschnitt „Bereitstellen der Überset- zungseinheit“ auf Seite 2. Übersetzen: Die Übersetzungseinheit muss in Maschinensprache umgesetzt werden. Der Compiler erzeugt dabei wahlweise ein Objektmodul oder ein Bindelademodul und protokolliert Ablauf und Ergebnis der Übersetzung.
  • Seite 20 Von der Übersetzungseinheit zum ablauffähigen Programm Der Compiler übernimmt während des Übersetzungslaufs drei Funktionen: – Überprüfung der Übersetzungseinheit auf syntaktische und semantische Fehler, – Umsetzung des COBOL-Codes in Maschinensprache, – Ausgabe von Meldungen, Protokoll-Listen und Modulen. Durch Steueranweisungen kann der Benutzer –...
  • Seite 21 Von der Übersetzungseinheit zum ablauffähigen Programm Mögliche Eingabequellen und Ausgabeziele des Compilers LISTENAUSGABE S-Variable SYSDIR Drucker temporäre automatische Systemdatei Ausgabe nach SYSLST Taskende Zuweisung vor Aufruf des Gesamtliste in Compilers katalog.Datei POSIX- Dateisystem Einzellisten in katalog.Dateien oder PLAM- Bibliothek katalogisierte Datei POSIX- Dateisystem...
  • Seite 22: Bereitstellen Der Übersetzungseinheit

    Bereitstellen der Übersetzungseinheit Von der Übersetzungseinheit ... 2.1 Bereitstellen der Übersetzungseinheit Eine COBOL-Übersetzungseinheit muss nach ihrer Codierung dem Compiler für die Über- setzung zugänglich gemacht werden. Unter den verschiedenen Wegen, die dafür zur Ver- fügung stehen, sind die gebräuchlichsten – die Eingabe aus einer Datei, –...
  • Seite 23: Bereitstellen In Plam-Bibliotheken

    ... zum ablauffähigen Programm Bereitstellen der Übersetzungseinheit 2.1.2 Bereitstellen in PLAM-Bibliotheken Neben SAM- oder ISAM-Dateien stellen PLAM-Bibliotheken eine weitere wichtige Einga- bequelle für den COBOL2000-Compiler dar. Eigenschaften von PLAM-Bibliotheken PLAM-Bibliotheken sind PAM-Dateien, die mit der Zugriffsmethode PLAM (Primary Library Access Method) bearbeitet werden. Für das Einrichten und Verwalten dieser Bibliotheken steht das Dienstprogramm LMS (siehe Handbuch „LMS (BS2000/OSD)“...
  • Seite 24 Bereitstellen der Übersetzungseinheit Von der Übersetzungseinheit ... Eingabe in PLAM-Bibliotheken PLAM-Bibliotheken können Übersetzungseinheiten aufnehmen – aus Dateien, – aus anderen Bibliotheken, – über SYSDTA bzw. SYSIPT; d.h. von einer Datenstation oder einer temporären SPOOLIN-Datei. Wie eine Übersetzungseinheit in eine PLAM-Bibliothek eingegeben werden kann, hängt davon ab, in welcher Form sie dafür zur Verfügung steht: –...
  • Seite 25 ... zum ablauffähigen Programm Bereitstellen der Übersetzungseinheit Beispiel 2-1 Übernahme einer Übersetzungseinheit aus einer katalogisierten Datei in eine PLAM- Bibliothek /START-LMS ————————————————————————————————————————————————————————————— (1) % LMS0310 LMS VERSION '03.3A30' STARTED //OPEN-LIBRARY LIB=PLAM.LIB,MODE=UPDATE(STATE=NEW) ————————————————————— (2) //ADD-ELEM FROM-FILE=SOURCE.EINXEINS,TO-E=LIB-ELEM(ELEM=EINXEINS,TYPE=S) (3) //END —————————————————————————————————————————————————————————————————— (4) LMS0311 LMS V03.3A30 TERMINATED NORMALLY Das Dienstprogramm LMS wird aufgerufen.
  • Seite 26: Quelldaten-Eingabe

    Quelldaten-Eingabe Von der Übersetzungseinheit ... 2.2 Quelldaten-Eingabe Eingaben in den Compiler können folgende Quelldaten sein: – Übersetzungseinheiten (einzelne Übersetzungseinheiten oder Übersetzungsgruppe) – Programmteile (COPY-Elemente) – Compiler-Steueranweisungen (COMOPT-Anweisungen oder SDF-Optionen) – Repository-Daten (Schnittstellenbeschreibungen) Der Compiler kann Übersetzungseinheiten aus katalogisierten SAM- oder ISAM-Dateien, aus Elementen von PLAM-Bibliotheken und aus POSIX-Dateien verarbeiten.
  • Seite 27: Eingabe Von Programmteilen

    ... zum ablauffähigen Programm Quelldaten-Eingabe Der Systemdatei SYSDTA wird die katalogisierte Datei QUELL.EINXEINS zuge- wiesen, in der sich die zu übersetzende Übersetzungseinheit befindet. Der Compiler wird geladen und gestartet. Er verarbeitet die Daten, die von SYSDTA kommen. Dies gilt nur, falls der Compiler nicht über SDF-Schnittstelle aufgerufen wurde bzw.
  • Seite 28 Quelldaten-Eingabe Von der Übersetzungseinheit ... Eingabe von COPY-Elementen aus PLAM-Bibliotheken Vor dem Aufruf des Compilers müssen die Bibliotheken, in denen sich die COPY-Elemente befinden, dem Compiler mit dem ADD-FILE-LINK-Kommando zugewiesen und mit den im Folgenden spezifizierten Linknamen verknüpft werden. Falls in der COPY-Anweisung ein Bibliotheksname angegeben ist, wird der Linkname aus den ersten 8 Zeichen des Bibliotheksnamens gebildet.
  • Seite 29 ... zum ablauffähigen Programm Quelldaten-Eingabe Eingabe von COPY-Elementen aus dem POSIX-Dateisystem Wenn das POSIX-Subsystem vorhanden ist, können dem Compiler auch COPY-Texte aus dem POSIX-Dateisystem eingegeben werden. Dies erfolgt mittels einer S-Variablen mit dem Standardnamen SYSIOL-COBLIB bzw. SYSIOL-bibliotheksname. Je nach Formulie- rung der COPY-Anweisung in der Übersetzungseinheit ist die S-Variable folgendermaßen zu gestalten (siehe auch Beispiel 2-6, Seite...
  • Seite 30 Quelldaten-Eingabe Von der Übersetzungseinheit ... Beispiel 2-4 Eingabe zweier COPY-Elemente IDENTIFICATION DIVISION. PROGRAM-ID. PROG. COPY XYZ.——————————————————————————————————————————————————————————— (1) COPY ABC OF BIBLIO. ———————————————————————————————————————————————— (2) Zuweisung und Verknüpfung: /ASSIGN-SYSDTA BEISPIEL1 ——————————————————————————————————————————————— (3) /ADD-FILE-LINK COBLIB,BIB1 ————————————————————————————————————————————— (4) /ADD-FILE-LINK BIBLIO,BIB2 ————————————————————————————————————————————— (5) Compileraufruf Die Übersetzungseinheit in der Datei BEISPIEL1 enthält folgende COPY-Anweisungen: XYZ ist der Name des Elements, unter dem das COPY-Element in der PLAM- Bibliothek BIB1 abgespeichert ist.
  • Seite 31 ... zum ablauffähigen Programm Quelldaten-Eingabe Beispiel 2-5 Eingabe mehrerer COPY-Elemente aus verschiedenen Bibliotheken IDENTIFICATION DIVISION. PROGRAM-ID. PROG1. COPY A1. ———————————————————————————————————————————————— COPY B1. COPY D1. Zuweisung und Verknüpfung: /ASSIGN-SYSDTA BEISPIEL2 ————————————————————————————————————————————— (2) /ADD-FILE-LINK COBLIB,A /ADD-FILE-LINK COBLIB1,B —————————————————————————————————————————— (3) /ADD-FILE-LINK COBLIB3,D Compileraufruf ——————————————————————————————————————————————————————...
  • Seite 32 Quelldaten-Eingabe Von der Übersetzungseinheit ... Beispiel 2-6 Eingabe eines COPY-Elements aus dem POSIX-Dateisystem IDENTIFICATION DIVISION. PROGRAM-ID. PROG1. COPY ATEXT. ———————————————————————————————————————————————————————————— (1) Zuweisung des POSIX-Dateisystems durch Einrichten und Setzen einer S-Variablen: /DECL-VAR SYSIOL-COBLIB,INIT=‘*POSIX(/usr/dir1),*POSIX(/usr/dir2)‘, - SCOPE=*TASK ————————————————————————————— (2) /START-COBOL2000-COMPILER? ————————————————————————————————————————————— (3) Das COPY-Element ATEXT befindet sich als Datei im POSIX-Dateisystem. Mit dem SDF-P-Kommando DECL-VARIABLE wird die Variable auf die Pfade im POSIX gesetzt, in deren Verzeichnissen dir1 und dir2 nach der Datei ATEXT gesucht werden soll.
  • Seite 33: Zuweisung An Compilervariablen Zur Steuerung Der Quelltextmanipulation

    ... zum ablauffähigen Programm Quelldaten-Eingabe 2.2.3 Zuweisung an Compilervariablen zur Steuerung der Quelltextmanipulation Compiler-Direktiven ermöglichen es dem COBOL-Programmierer, die Quelltext-Manipula- tion zu steuern. Folgende Compiler-Direktiven stehen zur Verfügung: – DEFINE-Direktive – EVALUATE-Direktive – IF-Direktive Die Compiler-Direktiven sind ausführlich beschrieben im Handbuch „COBOL2000-Sprach- beschreibung“...
  • Seite 34 Quelldaten-Eingabe Von der Übersetzungseinheit ... Beispiel 2-7 Übergabe eines numerischen Wertes IDENTIFICATION DIVISION. PROGRAM-ID. PROG1 >>DEFINE VLADIMIR AS PARAMETER.————————————————————————————————————— (1) Zuweisung und Verknüpfung: /DECLARE-VARIABLE SYSDIR-VLADIMIR(TYPE=*INTEGER),SCOPE=*TASK ——————————— (2) /SET-VARIABLE SYSDIR-VLADIMIR=1234—————————————————————————————————————— (3) Compiler-Aufruf Mit der DEFINE-Direktive wird eine Compilervariable angegeben, deren Inhalt der COBOL-Compiler in einer S-Variablen erwartet.
  • Seite 35 ... zum ablauffähigen Programm Quelldaten-Eingabe Beispiel 2-8 Übergabe eines alphanumerischen Literals IDENTIFICATION DIVISION. PROGRAM-ID. PROG2 >>DEFINE JERRY AS PARAMETER. ——————————————————————————————————————— (1) Zuweisung und Verknüpfung: /DECLARE-VARIABLE SYSDIR-JERRY (TYPE=*STRING),SCOPE=*TASK ————————————— (2) /SET-VARIABLE SYSDIR-JERRY=’Das ist ein String’ ———————————————————————— (3) Compiler-Aufruf Mit der DEFINE-Direktive wird eine Compilervariable angegeben, deren Inhalt der COBOL-Compiler in einer S-Variablen erwartet.
  • Seite 36: Ein-/Ausgabe Für Repositories

    Ein-/Ausgabe für Repositories Von der Übersetzungseinheit ... 2.3 Ein-/Ausgabe für Repositories 2.3.1 Prinzip des Repository Zur Übersetzung von objektorientierten COBOL-Programmen ist eine externe Bibliothek (logisch eine Bibliothek), REPOSITORY genannt, nötig, die die Beschreibung von Schnitt- stellen von Programmen, Klassen und Interfaces enthält. Ein Repository muss auch bei nicht objektorientierten Programmen verwendet werden, nämlich dann, wenn bei CALL die Schnittstellen geprüft werden sollen (siehe CALL-Anweisung, Format 3 im Handbuch „COBOL2000-Sprachbeschreibung“...
  • Seite 37: Ausgaben Des Compilers

    ... zum ablauffähigen Programm Ausgaben des Compilers 2.4 Ausgaben des Compilers 2.4.1 Ausgabe von Modulen Der Compiler übersetzt die eingegebenen Quelldaten in Maschinensprache und erzeugt auf diese Weise ein oder mehrere Objektmodule (OM Format) oder Bindelademodule (LLM Format). Der Benutzer kann veranlassen, dass einem Modul ein Symbolisches Adressbuch (LSD, List for Symbolic Debugging) zugeordnet wird, das die symbolischen Adressen der Übersetzungseinheit speichert.
  • Seite 38 Ausgaben des Compilers Von der Übersetzungseinheit ... Bildung von Elementnamen bei der Ausgabe von Modulen in Bibliotheken Modulformat OM Modulformat LLM Übersetzungseinheit Standardname abgeleitet aus nicht gemeinsam be- nutzbarer Code nicht segmentiert ID-Name 1..8 ID-Name 1..30 segmentiert PROGRAM-ID-Name 1..6 PROGRAM-ID-Name 1..30 + Segmentnummer (Segmentierung ignoriert) (für jedes Segment)
  • Seite 39: Ausgabe Von Listen Und Meldungen

    ... zum ablauffähigen Programm Ausgaben des Compilers 2.4.2 Ausgabe von Listen und Meldungen Ausgabe von Listen Der Compiler kann folgende Protokoll-Listen des Übersetzungslaufs erzeugen: Steueranweisungsliste OPTION LISTING Übersetzungseinheitliste SOURCE LISTING Bibliotheksliste LIBRARY LISTING Objektliste OBJECT PROGRAM LISTING Adressliste LOCATOR MAP LISTING Querverweisliste Fehlermeldungsliste DIAGNOSTIC LISTING...
  • Seite 40: Steuerungsmöglichkeiten Des Compilers

    Steuerungsmöglichkeiten des Compilers Von der Übersetzungseinheit ... 2.5 Steuerungsmöglichkeiten des Compilers Die Quelldaten-Eingabe, die Eigenschaften des Moduls, die Ausgabe von Meldungen und Listen sowie die Ausgabe des Moduls lassen sich durch Anweisungen an den COBOL2000-Compiler steuern. Der COBOL2000-Compiler kann auf verschiedene Arten gesteuert werden: durch Optionen im SDF-Syntaxformat ●...
  • Seite 41: Beendigung Des Compilerlaufs

    ... zum ablauffähigen Programm Beendigung des Compilerlaufs 2.6 Beendigung des Compilerlaufs Das Beendigungsverhalten des COBOL2000-Compilers hängt davon ab, – welcher Klasse die in der Übersetzungseinheit erkannten Fehler angehören, – ob der Compiler selbst fehlerfrei abläuft. Dieses Verhalten ist vor allem dann von Bedeutung, wenn der COBOL2000-Compiler in einer Prozedur aufgerufen oder von Monitor-Jobvariablen überwacht wird.
  • Seite 42: Übersetzung Von Übersetzungsgruppen

    Übersetzung von Übersetzungsgruppen Von der Übersetzungseinheit ... 2.7 Übersetzung von Übersetzungsgruppen Für die Übersetzung von Übersetzungsgruppen gelten einige Besonderheiten: Steueranweisungen: Die vor dem Aufruf des Compilers angegebenen Steueranweisungen gelten für alle Über- setzungseinheiten. Zwischen den Übersetzungseinheiten einer Gruppe dürfen keine Steueranweisungen ste- hen.
  • Seite 43 ... zum ablauffähigen Programm Übersetzung von Übersetzungsgruppen Repositoryausgabe: Für jede Übersetzungseinheit wird (sofern verlangt) ein Repositoryeintrag erzeugt. Beim Arbeiten mit Repository (insbesondere, wenn es eine Hierarchie ist) und Re- positoryeinträgen, die neu erzeugt werden und in vorhergehenden bzw. nachfol- genden Programmen genutzt werden sollen, muss besondere Sorgfalt darauf ver- wandt werden, auch wirklich den gewünschten Inhalt zu erhalten.
  • Seite 44: Parametrisierte Klassen Und Interfaces

    Parametrisierte Klassen und Interfaces Von der Übersetzungseinheit ... 2.8 Parametrisierte Klassen und Interfaces Beim Arbeiten mit parametrisierten Klassen bzw. Interfaces sind 3 Schritte zu unterschei- den: 1. Vorübersetzung einer parametrisierten Klasse bzw. Interface 2. Nutzung einer parametrisierten Klasse bzw. Interface 3.
  • Seite 45 ... zum ablauffähigen Programm Parametrisierte Klassen und Interfaces Beispiel 2-9 Vorübersetzung einer parametrisierten Klasse Quelltext CLASS-ID. pkl USING fp. ———————————————————————————————————————————————— (1) REPOSITORY. CLASS fp. 01 obj-fp USAGE OBJECT REFERENCE fp. 01 obj-pkl USAGE OBJECT REFERENCE pkl. Zuweisung und Compileraufruf /ADD-FILE-LINK REPOUT,REPOSITORY ——————————————————————————————————————— (2) /START-COBOL2000-COMPILER - ————————————————————————————————————————————...
  • Seite 46 Parametrisierte Klassen und Interfaces Von der Übersetzungseinheit ... Beispiel 2-10 Nutzung einer parametrisierten Klasse Quelltext: PROGRAM-ID. n. REPOSITORY. CLASS pkl CLASS exp EXPANDS pkl USING ap—————————————————————————————————————— (1) CLASS ap. 01 obj-exp USAGE OBJECT REFERENCE exp. Zuweisung und Compileraufruf: /ADD-FILE-LINK REPLIB,REPOSITORY———————————————————————————————————————— (2) /START-COBOL2000-COMPILER ...———————————————————————————————————————————...
  • Seite 47: Expansion Einer Parametrisierten Klasse

    ... zum ablauffähigen Programm Parametrisierte Klassen und Interfaces Beispiel 2-11 Expansion einer parametrisierten Klasse temporär erzeugter Quelltext LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (1) CLASS-ID. exp USING ap. LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (2)(3) REPOSITORY. CLASS ap. LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR LR LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (3) 01 obj-fp USAGE OBJECT REFERENCE ap. LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (3) 01 obj-pkl USAGE OBJECT REFERENCE exp.
  • Seite 48 Parametrisierte Klassen und Interfaces ... zum ablauffähigen Programm U41113-J-Z125-6...
  • Seite 49: Steuerung Des Compilers Über Sdf

    Steuerung des Compilers über SDF 3 Steuerung des Compilers über SDF Der COBOL2000-Compiler kann über SDF (System Dialog Facilities) gesteuert werden. In den folgenden Abschnitten werden die wesentlichen Vorgehensweisen im Umgang mit SDF beschrieben. Die ausführliche Darstellung der Dialog-Schnittstelle SDF findet sich in den Handbüchern „Einführung in die Dialogschnittstelle (SDF)“...
  • Seite 50: Compileraufruf Und Eingabe Der Optionen

    Compileraufruf und Eingabe der Optionen Steuerung des Compilers über SDF 3.1 Compileraufruf und Eingabe der Optionen Im Dialogbetrieb bietet SDF folgende Möglichkeiten: Eingabe von der Datensichtstation ohne Benutzerführung, nachfolgend „Expert-Mo- ● dus“ genannt. Eingabe von der Datensichtstation mit Benutzerführung in drei verschiedenen Stufen, ●...
  • Seite 51: Sdf-Menü-Modus

    Steuerung des Compilers über SDF Compileraufruf und Eingabe der Optionen Unzulässige Abkürzungen und Schreibfehler werden als Syntaxfehler gemeldet und können sofort korrigiert werden. Von der Verwendung von Abkürzungen (insbesondere in Prozeduren) wird je- doch abgeraten, da sich bei zukünftigen Erweiterungen der SDF-Kommandos die möglichen Abkürzungen ändern können.
  • Seite 52 Compileraufruf und Eingabe der Optionen Steuerung des Compilers über SDF Temporärer Menü-Modus Für die Compilersteuerung im temporären Menü-Modus gibt es zwei Wege: 1. Schrittweises Durchlaufen der SDF-Menüs bis zum Operandenfragebogen Mit der Angabe des Fragezeichens auf Systemebene gelangt der Benutzer in das SDF- Hauptmenü.
  • Seite 53 Steuerung des Compilers über SDF Compileraufruf und Eingabe der Optionen Hinweise zur Bearbeitung des Operandenfragebogens Der Operandenfragebogen ist weitgehend selbsterklärend aufgebaut. Bei der Bearbeitung ist vor allem zu beachten, dass allein der Eintrag in der Eingabezeile („NEXT:...“) den Aus- schlag gibt, welche Operation ausgeführt wird. Die jeweils zulässigen Eingaben sind unter dieser Zeile aufgeführt.
  • Seite 54: Sdf-Syntaxbeschreibung

    SDF-Syntaxbeschreibung Steuerung des Compilers über SDF 3.2 SDF-Syntaxbeschreibung In den folgenden Tabellen wird die Metasyntax der Optionenformate erläutert. Tabelle Metazeichen In den Optionenformaten werden bestimmte Zeichen und Darstellungsformen verwendet, deren Bedeutung in der folgenden Tabelle erläutert wird. Kennzeichnung Bedeutung Beispiele GROSSBUCHSTABEN Großbuchstaben bezeichnen Schlüs- LISTING=*STD...
  • Seite 55: Ebcdic-Zeichen

    Steuerung des Compilers über SDF SDF-Syntaxbeschreibung Tabelle 6: Datentypen Variable Operandenwerte werden in SDF durch Datentypen dargestellt. Jeder Datentyp re- präsentiert einen bestimmten Wertevorrat. Die Anzahl der Datentypen ist beschränkt auf die in Tabelle 6 beschriebenen Datentypen. Die Beschreibung der Datentypen gilt für alle Optionen. Deshalb werden bei den entspre- chenden Operandenbeschreibungen nur noch Abweichungen von Tabelle 6 erläutert...
  • Seite 56 SDF-Syntaxbeschreibung Steuerung des Compilers über SDF Datentyp Zeichenvorrat Besonderheiten filename $user. (Forts.) wahlfreie Angabe der Benutzerkennung; Zeichenvorrat ist A…Z, 0…9, $, #, @; max. 8 Zeichen; darf nicht mit einer Ziffer beginnen; $ und Punkt müssen angegeben werden; Standardwert ist die eigene Benut- zerkennung.
  • Seite 57 Steuerung des Compilers über SDF SDF-Syntaxbeschreibung Datentyp Zeichenvorrat Besonderheiten filename (+rel) (Forts.) (-rel) relative Generationsnummer (0..99); Vorzeichen und Klammern müssen angege- ben werden. integer 0…9 Tabelle 6: Datentypen Tabelle Zusätze zu Datentypen Zusätze zu Datentypen kennzeichnen weitere Eingabevorschriften für Datentypen. Die Zusätze schränken den Wertevorrat ein oder erweitern ihn.
  • Seite 58: Sdf-Optionen Zur Steuerung Des Übersetzungslaufs

    SDF-Optionen zur Steuerung des Übersetzungslaufs Steuerung des Compilers über SDF 3.3 SDF-Optionen zur Steuerung des Übersetzungslaufs Name der Option Zweck SOURCE Bestimmen der Eingabequelle der Übersetzungsgruppe SOURCE-PROPERTIES Festlegen bestimmter Eigenschaften der Übersetzungsgruppe ACTIVATE-FLAGGING Kennzeichnung bestimmter Sprachelemente in der Fehlerliste mit einer Meldung der Klasse F COMPILER-ACTION Teilweise Durchführung des Compilerlaufs;...
  • Seite 59: Source-Option

    Steuerung des Compilers über SDF SOURCE-Option 3.3.1 SOURCE-Option Die Parameter dieser Option bestimmen, ob die Übersetzungseinheit von SYSDTA, aus ei- ner katalogisierten BS2000-Datei, aus einer PLAM-Bibliothek oder aus einer POSIX-Datei eingelesen wird. Format SOURCE = *SYSDTA / <filename 1..54> / <c-string 1..1024 with-low> / *LIBRARY-ELEMENT(...) *LIBRARY-ELEMENT(...) ⏐...
  • Seite 60 SOURCE-Option Steuerung des Compilers über SDF ELEMENT = <composed-name 1..40>(...) Name des Bibliothekselements, in dem die Übersetzungsgruppe steht. VERSION = *HIGHEST-EXISTING / *UPPER-LIMIT / <composed-name 1..24> Versionsbezeichnung des Bibliothekselements. Wird keine Version oder *HIGHEST-EXISTING angegeben, liest der Compiler die Version des Elements mit der höchsten in der Bibliothek vorhandenen Versionsbezeichnung.
  • Seite 61: Source-Properties-Option

    Steuerung des Compilers über SDF SOURCE-PROPERTIES-Option 3.3.2 SOURCE-PROPERTIES-Option Mit dieser Option können bestimmte Eigenschaften der Übersetzungsgruppe festgelegt werden. Format SOURCE-PROPERTIES = *STD / *PARAMETERS(...) *PARAMETERS(...) ⏐ RETURN-CODE = *FROM-COBOL-SUBPROGRAMS / *FROM-ALL-SUBPROGRAMS ⏐ ,ENABLE-KEYWORDS=*COBOL85 / *STD(...) ⏐ *STD(...) ⏐ ⏐ XML-SUPPORT = *YES / *NO ⏐...
  • Seite 62 SOURCE-PROPERTIES-Option Steuerung des Compilers über SDF STANDARD-DEVIATION = *YES / *NO Bei Angabe von YES akzeptiert der Compiler gewisse Abweichungen von den im COBOL-Standard vorgeschriebenen Regeln: – Den Datenbeschreibungen der Linkage Section (Stufennummer 01 oder 77) ohne BASED-Angabe kann ebenfalls mit einer SET-Anweisung die Adresse eines ande- ren Bereichs oder der Inhalt eines Zeigers zugewiesen werden.
  • Seite 63: Activate-Flagging-Option

    Steuerung des Compilers über SDF ACTIVATE-FLAGGING-Option 3.3.3 ACTIVATE-FLAGGING-Option Diese Option veranlasst den Compiler, bestimmte Sprachelemente gemäß ANS85 oder ge- mäß „Federal Information Processing Standard“ (FIPS) in der Fehlerliste mit einer Meldung der Klasse F zu kennzeichnen. Format ACTIVATE-FLAGGING = *NO / *ANS85 ACTIVATE-FLAGGING = *NO Es werden keine Sprachelemente in der Fehlermeldungsliste gekennzeichnet.
  • Seite 64: Compiler-Action-Option

    COMPILER-ACTION-Option Steuerung des Compilers über SDF 3.3.4 COMPILER-ACTION-Option Diese Option legt fest, nach welchem Übersetzungsschritt der Compilerlauf beendet wer- den soll und - falls ein Modul erzeugt wird - welches Format und welche Eigenschaften das Modul erhalten soll. Format COMPILER-ACTION = *PRINT-MESSAGE-LIST / *SYNTAX-CHECK / *SEMANTIC-CHECK / MODULE-GENERATION(...) *MODULE-GENERATION(...) ⏐...
  • Seite 65 Steuerung des Compilers über SDF COMPILER-ACTION-Option COMPILER-ACTION = *MODULE-GENERATION(...) Es werden ein vollständiger Übersetzungslauf durchgeführt und - falls nicht explizit unter- drückt - Module erzeugt. SHAREABLE-CODE = *NO / *YES Bei Angabe von YES schreibt der Compiler den Code der PROCEDURE DIVISION (ohne DECLARATIVES) in ein gemeinsam benutzbares Codemodul (siehe Abschnitt „Gemeinsam benutzbare COBOL-Programme“...
  • Seite 66 COMPILER-ACTION-Option Steuerung des Compilers über SDF SEGMENTATION=*ELABORATE / *IGNORE ELABORATE: Segmentierung wird unterstützt. Wenn das Programm ’Nested Source Programs’ und nicht-feste Segmente (Segment-Nummer größer oder gleich Segment- Limit) enthält, wird die Übersetzung mit einer Meldung abgebrochen. Liegt diese Kom- bination nicht vor, werden nur segmentierungsbezogene Sprachmittel mit entsprechen- den Warnungen abgewiesen.
  • Seite 67: Module-Output-Option

    Steuerung des Compilers über SDF MODULE-OUTPUT-Option 3.3.5 MODULE-OUTPUT-Option Mit dieser Option steuert der Benutzer, in welche Bibliothek und unter welchem Namen das Modul abgelegt werden soll. Format MODULE-OUTPUT = *STD / *OMF / <c-string 1..1024 with-low> / *LIBRARY-ELEMENT(...) *LIBRARY-ELEMENT(...) ⏐ LIBRARY=<filename 1..54>...
  • Seite 68 MODULE-OUTPUT-Option Steuerung des Compilers über SDF MODULE-OUTPUT = *LIBRARY-ELEMENT(...) Mit diesem Parameter wird angegeben, in welcher PLAM-Bibliothek (LIBRARY=) und unter welchem Elementnamen (ELEMENT=) das Modul abgelegt werden soll. LIBRARY=<filename 1..54> Name der PLAM-Bibliothek, in die das Modul geschrieben werden soll. Wenn die PLAM-Bibliothek noch nicht existiert, wird sie automatisch angelegt.
  • Seite 69 Steuerung des Compilers über SDF MODULE-OUTPUT-Option ELEMENT = <composed-name 1..32> Für Bindelademodule (LLMs) kann der Benutzer einen selbstgewählten Elementnamen angeben. Dieser Operand wird bei der Übersetzung einer Übersetzungsgruppe ignoriert. Statt- dessen werden die Elementnamen der LLMs aus dem jeweiligen PROGRAM-ID- Namen abgeleitet (siehe Abschnitt „Ausgabe von Modulen“,...
  • Seite 70: Listing-Option

    LISTING-Option Steuerung des Compilers über SDF 3.3.6 LISTING-Option Die Parameter dieser Option steuern, welche Listen der Compiler erzeugen soll, welches Layout die Listen haben und wohin sie ausgegeben werden sollen. Pro Übersetzungsgrup- pe wird nur eine Optionenliste erstellt. Sonstige Listen werden für jede Übersetzungseinheit erzeugt.
  • Seite 71 Steuerung des Compilers über SDF LISTING-Option LISTING = *STD Es werden die voreingestellten Werte der nachfolgenden PARAMETERS-Struktur über- nommen. LISTING = *PARAMETERS(...) Mit den folgenden Parametern wird bestimmt, welche Listen erzeugt werden und welches Layout und Ausgabeziel die angeforderten Listen haben sollen. OPTIONS = *NO / *YES Der Compiler erzeugt standardmäßig eine Liste, in der die während der Übersetzung wirksamen Steueranweisungen, die Umgebung des Übersetzungsprozesses sowie...
  • Seite 72 LISTING-Option Steuerung des Compilers über SDF CROSS-REFERENCE = *YES(...) Bei Angabe von YES folgen in der Übersetzungseinheitenliste rechts neben den Quellzeilen noch Angaben zu Adresse und Länge von in der Zeile enthaltenen Definitionen, sowie bei Definitionen Querverweise auf die Nutzer einschließlich Nutzungsart und bei den Nutzern Rückverweise auf die Definition.
  • Seite 73 Steuerung des Compilers über SDF LISTING-Option NAME-INFORMATION = *NO / *YES(...) Bei Angabe von YES erzeugt der Compiler eine Adressliste oder eine Adress- und Querverweisliste. Die Liste enthält die Daten-, Kapitel- und Paragrafennamen. SORTING-ORDER = *ALPHABETIC Die symbolischen Namen der Adressliste sind alphabetisch aufsteigend sortiert aufgelistet.
  • Seite 74 LISTING-Option Steuerung des Compilers über SDF OUTPUT = *STD-FILES Mit dieser Angabe werden die angeforderten Listen in eigene katalogisierte Dateien ausgegeben. Die so erzeugten katalogisierten Dateien haben Standardnamen, die in der rechten Spalte der folgenden Tabelle genannt sind. programmname wird aus dem PROGRAM-ID-Namen abgeleitet und ggf.
  • Seite 75 Steuerung des Compilers über SDF LISTING-Option OUTPUT = LIBRARY-ELEMENT(LIBRARY = <filename 1..54>) Die angeforderten Listen werden in die mit <filename> bezeichnete PLAM-Bibliothek ausgegeben. Jede Liste belegt ein eigenes Bibliothekselement vom Typ P mit der größtmöglichen Versionsnummer. Die Elemente erhalten folgende Standardnamen: Liste Elementname Steueranweisungsliste...
  • Seite 76 LISTING-Option Steuerung des Compilers über SDF Beispiel 3-3 Ausgabe von Listen in eine PLAM-Bibliothek Der Compiler soll alle Listen erzeugen und als Elemente in der PLAM-Bibliothek LISTLIB ablegen. /START-COBOL2000-COMPILER? ————————————————————————————————————————————— (1) Angabe im Operandenfragebogen: LISTING=PAR(NAME-INFORMATION=YES(CROSS-REFERENCE=ALL),- OUTPUT=*LIBRARY-ELEMENT(LIBRARY=LISTLIB)) —————————————————————————————— (2) Compileraufruf im Menü-Modus Die Voreinstellung (Ausgabe von Optionen-, Übersetzungseinheit- und Fehlerliste) wird ergänzt;...
  • Seite 77 Steuerung des Compilers über SDF LISTING-Option Beispiel 3-5 Ausgabe eines verdichteten Listings zur Ausnutzung von Druckseiten Es soll ein verdichtetes Listing erstellt werden, um die Druckseiten so weit wie möglich aus- zunutzen. LISTING=*PAR(SOURCE=*YES(CROSS-REFERENCE=YES),- ——————————————————————— (1) LAYOUT=*PAR(LINES-PER-PAGE=60,LINE-SIZE=172)) *) —————————— (1) /PRINT-FILE srclst.cobol.programmname,LOOP=98,CHAR-SET=R01 ————————————— (2) Diese Angaben sind optimiert für eine Seitenbreite von 32 cm und eine Seitenhöhe von 22 cm.
  • Seite 78: Test-Support-Option

    TEST-SUPPORT-Option Steuerung des Compilers über SDF 3.3.7 TEST-SUPPORT-Option Diese Option steuert, ob mit der Testhilfe AID der Ablauf eines Programms getestet werden soll. Ferner können bestimmte Eigenschaften der Testhilfe AID festgelegt werden. Diese Option ist in COBOL2000-BC nicht verfügbar. Format TEST-SUPPORT = *NONE / *AID(...) *AID(...) ⏐...
  • Seite 79 Steuerung des Compilers über SDF TEST-SUPPORT-Option PREPARE-FOR-JUMPS = *NO / *YES YES muss angegeben werden, wenn beim Testen mit AID – das AID-Kommando %JUMP angewendet werden soll (siehe Handbuch „AID“ [8] Abschnitt „Dialogtesthilfe AID“ auf Seite 142) oder – Testpunkte gezielt auf Paragrafen oder Kapitel gesetzt werden sollen; z.B. beim Testen von geschachtelten GO TO-Schleifen (wie sie vom COLUMBUS-Präprozes- sor COLCOB erzeugt werden), in denen mehrere Paragrafenüberschriften unmit- telbar aufeinander oder auf eine Kapitelüberschrift folgen.
  • Seite 80: Optimization-Option

    OPTIMIZATION-Option Steuerung des Compilers über SDF 3.3.8 OPTIMIZATION-Option Mit dieser Option lassen sich die Optimierungsmaßnahmen des Compilers ein- und aus- schalten. Format OPTIMIZATION = *STD / *PARAMETERS(...) *PARAMETERS(...) ⏐ CALL-IDENTIFIER = STD / *OPTIMIZE OPTIMIZATION = *STD Es gilt die Voreinstellung der PARAMETERS-Struktur. OPTIMIZATION = *PARAMETERS(...) CALL-IDENTIFIER = *STD / *OPTIMIZE Bei Angabe von *OPTIMIZE wird die Optimierung eingeschaltet.
  • Seite 81: Runtime-Checks-Option

    Steuerung des Compilers über SDF RUNTIME-CHECKS-Option 3.3.9 RUNTIME-CHECKS-Option Mit dieser Option werden die Prüfroutinen des Laufzeitsystems aktiviert. Format RUNTIME-CHECKS = *NONE / *ALL / *PARAMETERS(...) *PARAMETERS(...) ⏐ TABLE-SUBSCRIPTS = *NO / *YES ⏐ ,FUNCTION-ARGUMENTS = *NO / *YES ⏐ ,PROC-ARGUMENT-NR = *NO / *YES ⏐...
  • Seite 82 RUNTIME-CHECKS-Option Steuerung des Compilers über SDF FUNCTION-ARGUMENTS = *NO / *YES Bei Angabe von YES werden zur Ablaufzeit die Funktionsargumente bezüglich Werte- bereich, Anzahl und Länge überprüft. Treten ungültige Werte auf, wird, je nach Art des Fehlers, eine der Meldungen COB9123, COB9124, COB9125, COB9126 oder COB9127 ausgegeben;...
  • Seite 83: Compiler-Termination-Option

    Steuerung des Compilers über SDF COMPILER-TERMINATION-Option 3.3.10 COMPILER-TERMINATION-Option Mit dieser Option kann ein fehlerzahlabhängiger Abbruch des Übersetzungslaufs initiiert werden. Format COMPILER-TERMINATION = *STD / *PARAMETERS(...) *PARAMETERS(...) ⏐ MAX-ERROR-NUMBER = *NONE / <integer 1..100> COMPILER-TERMINATION = *STD Es gilt die Voreinstellung der PARAMETERS-Struktur. COMPILER-TERMINATION = *PARAMETERS(...) MAX-ERROR-NUMBER = *NONE / <integer 1..100>...
  • Seite 84: Monjv-Option

    MONJV-Option Steuerung des Compilers über SDF 3.3.11 MONJV-Option Mit dieser Option kann der Benutzer eine Jobvariable zur Überwachung des Compilerlaufs einrichten. Format MONJV = *NONE / <filename 1..54 > MONJV = *NONE / <filename 1..54> Mit <filename> definiert der Benutzer eine Monitorjobvariable. Während des Übersetzungs- laufs hinterlegt der Compiler in der Rückkehrcode-Anzeige dieser Jobvariablen einen Code, der über aufgetretene Fehler während des Compilerlaufs Aufschluss gibt.
  • Seite 85: Runtime-Options-Option

    Steuerung des Compilers über SDF RUNTIME-OPTIONS-Option 3.3.12 RUNTIME-OPTIONS-Option Die Parameter dieser Option steuern bestimmte Eigenschaften des ablauffähigen COBOL- Programms. Format RUNTIME-OPTIONS = *STD / *PARAMETERS(...) *PARAMETERS(...) ⏐ ACCEPT-STMT-INPUT = *UNMODIFIED / *UPPERCASE-CONVERTED ⏐ ,FUNCTION-ERR-RETURN = *UNDEFINED / *STD-VALUE ⏐ ,SORTING-ORDER = *STD / *BY-DIN ⏐...
  • Seite 86 RUNTIME-OPTIONS-Option Steuerung des Compilers über SDF ERR-MSG-WITH-LINE-NR = *NO / *YES Bei Angabe von YES wird statt der Meldung COB9101 die Meldung COB9102 ausge- geben, die zusätzlich die vom Compiler vergebene Übersetzungseinheit-Zeilennum- mer der Anweisung enthält, deren Ausführung die Meldung verursacht hat. ACCEPT-DISPLAY-ASSGN = *SYSIPT-AND-SYSLST / *TERMINAL Die Angabe von TERMINAL bewirkt, dass für ACCEPT- und DISPLAY-Anweisungen ohne FROM- bzw.
  • Seite 87: Version-Option

    Steuerung des Compilers über SDF VERSION-Option 3.3.13 VERSION-Option Mit dieser Option können Sie über die Versionsnummer denjenigen Compiler auswählen, mit dem die Übersetzungsgruppe übersetzt werden soll. Format VERSION = *STD /<product-version> VERSION = *STD Es wird der zuletzt im System mittels IMON installierte COBOL2000 Compiler aufgerufen. VERSION = <product-version>...
  • Seite 88 VERSION-Option Steuerung des Compilers über SDF U41113-J-Z125-6...
  • Seite 89: Steuerung Des Compilers Mit Comopt-Anweisungen

    4 Steuerung des Compilers mit COMOPT-Anweisungen Der COBOL2000-Compiler kann auch wie bisher über COMOPT-Anweisungen gesteuert werden. Er wird zu diesem Zweck mit dem folgenden Kommando aufgerufen: /START-PROGRAM [FROM-FILE =] $.COBOL2000 Die Eingabe der Übersetzungseinheit, die Ausgabe der Protokolllisten und des Moduls so- wie der interne Ablauf des Übersetzungsvorgangs lassen sich durch Optionen steuern, die der Benutzer in einer oder mehreren COMOPT-Anweisungen angibt.
  • Seite 90 COMOPT-Steuerung Format der COMOPT-Anweisung COMOPT operand= option COBRUN (option[,option]...) – Eingabezeilen für COMOPT-Anweisungen können bis zu 128 Zeichen lang sein. Bei ISAM-Dateien ist die Länge des Satzschlüssels darin enthalten. Das standardisierte Referenzformat für das Schreiben von COBOL-Übersetzungseinheiten hat für die Ein- gabe von COMOPT-Anweisungen keine Bedeutung.
  • Seite 91: Quelldaten-Eingabe Bei Comopt-Steuerung

    COMOPT-Steuerung Quelldaten-Eingabe 4.1 Quelldaten-Eingabe bei COMOPT-Steuerung Eingaben in den Compiler können folgende Quelldaten sein: – einzelne Übersetzungseinheiten – Programmteile (COPY-Elemente) – COMOPT-Anweisungen – Repository-Daten – aktuelle Werte für DEFINE-Direktiven Der Compiler erwartet die Quelldaten von der System-Eingabedatei SYSDTA. SYSDTA ist standardmäßig im Dialogbetrieb der Datensichtstation und im Stapelbetrieb der SPOOLIN- bzw.
  • Seite 92 Quelldaten-Eingabe COMOPT-Steuerung Beispiel 4-1 Zuweisen einer katalogisierten Datei nach Eingabe von COMOPT-Anweisungen /START-PROGRAM $.COBOL2000—————————————————————————————————————————————— (1) COMOPT... ——————————————————————————————————————————————————————————————— (2) END QUELL.EINXEINS ——————————————————————————————————————————————————————— (3) Der Compiler wird aufgerufen. SYSDTA ist im Dialog der Datensichtstation zuge- ordnet. Das Schlüsselwort COMOPT teilt dem Compiler mit, dass die folgenden Eingaben Steueranweisungen sind.
  • Seite 93: Zuweisen Der Übersetzungseinheit Mit Add-File-Link Und Comopt Source- Element

    COMOPT-Steuerung Quelldaten-Eingabe 4.1.2 Zuweisen der Übersetzungseinheit mit ADD-FILE-LINK und COMOPT SOURCE-ELEMENT Die Eingabe aus Bibliotheken kann auch direkt - unter Umgehung von SYSDTA - mit dem ADD-FILE-LINK-Kommando initiiert werden. Dabei muss der Standard-Linkname SRCLIB verwendet werden. Das allgemeine Format des ADD-FILE-LINK-Kommandos für die Ein- gabe von Übersetzungseinheiten aus Bibliotheken lautet also: /ADD-FILE-LINK [LINK-NAME=]SRCLIB,[FILE-NAME=]libname Beispiel 4-3...
  • Seite 94: Tabelle Der Comopt-Operanden

    COMOPT-Operanden COMOPT-Steuerung 4.2 Tabelle der COMOPT-Operanden Fast alle Optionen haben einen Standardwert. Gibt der Benutzer eine mögliche Option nicht explizit an, so ist der Standardwert gültig. Sollen alle vom System voreingestellten Optionen benutzt werden, so sind COMOPT-Angaben überflüssig. Die folgende Tabelle fasst alle COMOPT-Operanden zusammen, mit denen der Compiler gesteuert werden kann.
  • Seite 95 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion ACTIVATE-WARNING-MECHANISM={YES/NO gibt an, ob bei der Übersetzung im Programm enthaltene - veraltete Sprachelemente und ACT-W-MECH - nicht standardgemäße Spracherweiterungen durch eine Meldung der Klasse F (Severity Code F) in der Fehlerliste gekennzeichnet werden sollen. Hinweis In Compilerläufen, für die ACTIVATE-WARNING-MECHANISM=YES angegeben wird, sind die folgenden COMOPT-Operanden unwirksam, die bei der Übersetzung eine Abweichung vom ANS85...
  • Seite 96 COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion CHECK-CALLING-HIERARCHY={YES/NO legt fest, ob die Aufrufhierarchie überprüft werden soll. Ein Programm, in dem die Anweisungen CALL bezeichner CHECK-C-H und/oder CANCEL verwendet werden, sollte mit CHECK-CALLING-HIERARCHY=YES übersetzt werden. SDF-Option: RUNTIME-CHECKS = PARAMETERS(...) RECURSIVE-CALLS = CHECK-DATE={YES/NO} entscheidet, ob der Compiler bei ACCEPT FROM DATE/DAY einen Hinweis auf zweistellige CHECK-D Jahreszahlen ausgeben soll.
  • Seite 97 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion CHECK-SOURCE-SEQUENCE={YES/NO entscheidet, ob in der Übersetzungseinheit Satzpaare, die in nicht aufsteigender Reihenfolge gefunden werden, durch CHECK-S-SEQ eine Meldung der Fehlerklasse 0 (Severity Code 0) in der Fehlerliste gekennzeichnet werden sollen. CHECK-SOURCE-SEQUENCE wirkt nicht bei Free For- mat.
  • Seite 98 COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion ELABORATE-SEGMENTATION={YES/NO} Bei Angabe von NO werden segmentierungsbezogene Sprachmittel ignoriert (SEGMENT-LIMIT Klausel, Seg- ment-Nummern in Section-Header). Es werden Warnun- gen ausgegeben. Bei Angabe von YES werden Compiler- Direktiven ignoriert, die während der Übersetzungsphase wirken und innerhalb einer Übersetzungseinheit angege- ben sind.
  • Seite 99 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion /NO} EXPAND-COPY={YES steuert, ob in die Übersetzungseinheit eingefügte COPY- Elemente in der Übersetzungseinheitliste abgedruckt wer- EXP-COPY den. SDF-Option: LISTING = PARAMETERS(...) SOURCE = YES(...) COPY-EXPANSION = /NO} EXPAND-SUBSCHEMA={YES steuert, ob die SUBSCHEMA SECTION der Übersetzungs- einheit in der Übersetzungseinheitliste protokolliert wird. EXP-SUB SDF-Option: LISTING = PARAMETERS(...)
  • Seite 100 COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion GENERATE-INITIAL-STATE={YES/NO legt fest, ob der Compiler Vorkehrungen treffen soll, dass das Programm erneut in den Initialzustand versetzt werden GEN-INIT-STA kann. Alle Programme, die von einer CANCEL-Anweisung betrof- fen sind, eine INITIAL-Klausel oder eine INITIALIZE- Anweisung mit der TO VALUE-Angabe enthalten, sollten für einen standardkonformen Ablauf mit GENERATE-INITIAL-STATE=YES übersetzt werden.
  • Seite 101 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion IGNORE-EXTRA-ALTERNATE-KEYS={YES/NO bestimmt, ob bei OPEN INPUT für indizierte Dateien Sekundärschlüssel, die nur im Katalogeintrag, aber nicht IGN-EXT-ALTKEY im Programm beschrieben sind, ohne Fehlermeldung igno- riert werden sollen. SDF-Option: RUNTIME-OPTIONS = PARAMETERS(...) EXTRA-ALTERNATE-KEYS = IGNORE-OPTION-DIRECTIVES={YES/NO} bestimmt, ob >>IMP-Direktiven, die Compiler-Optionen betreffen (LISTING-OPTIONS, COMPILER-ACTION und IGN-O-DIR RUNTIME-ERRORS), ignoriert werden.
  • Seite 102: Comopt-Steuerung

    COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion LIBFILES= (listenangabe[,listenangabe]...) legt fest, welche Übersetzungsprotokolle erzeugt und in eine PLAM-Bibliothek ausgegeben werden sollen. listenangabe ist dabei eine der folgenden Angaben: [NO]OPTIONS [NO]DIAG [NO]SOURCE [NO]OBJECT [NO]MAP [NO]XREF Die angeforderten Listen werden von links nach rechts abgearbeitet. Es gilt der zuletzt gesetzte Wert für die jewei- lige Liste.
  • Seite 103 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion LINES-PER-PAGE=64 / 20..128 legt die maximale Anzahl von Zeilen fest, die in den Über- setzungsprotokollen pro Seite gedruckt werden. Ein Sei- LINES tenwechsel wird ausgeführt, wenn diese Zeilenzahl erreicht ist. SDF-Option: LISTING = PARAMETERS(...) LAYOUT = PARAMETERS(...) LINES-PER-PAGE = LISTFILES= (listenangabe[,listenangabe]...) ) legt fest, welche Übersetzungsprotokolle erzeugt und in...
  • Seite 104 COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion MERGE-DIAGNOSTICS={YES/NO} bewirkt, dass alle während der Übersetzung aufgetretenen Fehlermeldungen in die Übersetzungseinheitliste „einge- M-DIAG mischt“ werden. Um ein ordnungsgemäßes Einmischen zu gewährleisten, sollte die Liste nicht mehr als 65535 Quell- zeilen beinhalten (siehe Abschnitt „Übersetzungseinheitli- ste“ auf Seite 367).
  • Seite 105 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion / libname} MODULE={*OMF vereinbart, wohin das bei der Übersetzung erzeugte Objektmodul ausgegeben werden soll. *OMF bewirkt die Ausgabe in die temporäre EAM-Datei der aktu- ellen Task. libname ist der Name der PLAM-Bibliothek, in die das Objektmodul ausgegeben werden soll.
  • Seite 106 COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion PERMIT-STANDARD-DEVIATION={YES/NO} legt fest, ob P-S-D - den Datenbeschreibungen der Linkage Section (Stufen- nummer 01 oder 77) ohne BASED-Angabe ebenfalls mit einer SET-Anweisung die Adresse eines anderen Bereichs oder der Inhalt eines Zeigers zugewiesen werden kann. (Es entfällt dann die Überprüfung, ob jeder Parameter, falls er benutzt wird, auch in der USING- Klausel der Procedure Division angegeben wurde.) - Datenstrukturen, die Zeigerdatenfelder oder universelle...
  • Seite 107 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion /NO} REPLACE-PSEUDOTEXT={YES entscheidet, wie COPY-Elemente in einzeln ersetzbare Textwörter zerlegt werden. Bei Angabe von NO wirken die REP-PSEUDO Trennsymbole Doppelpunkt, Klammer auf, Klammer zu und Pseudotext-Begrenzer nicht als Trennzeichen für Text- wörter und sind keine eigenständigen Textwörter. Das bewirkt insbesondere, dass innerhalb von Klammern in Maskenzeichenfolgen keine Ersetzungen stattfinden.
  • Seite 108 COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion SHORTEN-OBJECT={YES/NO} legt fest, ob in der angeforderten Objektliste nur die ESD- Informationen aufgeführt werden sollen. SHORT-OBJ In COBOL2000-BC nicht verfügbar! SDF-Option: -- SHORTEN-XREF={YES/NO entscheidet, ob in der gewünschten Querverweisliste nur Daten- bzw. Prozedurnamen aufgelistet werden sollen, die SHORT-XREF im Programm angesprochen werden.
  • Seite 109 COMOPT-Steuerung COMOPT-Operanden Operandenformat Funktion SOURCE-VERSION=version gibt dem Compiler an, welche Version des mit SOURCE-ELEMENT zugewiesenen Elementes zu über- SOURCE-VERS setzen ist. version ist eine der folgenden Angaben: *HIGHEST-EXISTING / *HIGH *UPPER-LIMIT / *UPPER <alphanum-name 1..24> SDF-Option: SOURCE = *LIBRARY-ELEMENT(...) LIBRARY = ,ELEMENT = VERSION = SUPPRESS-LISTINGS={YES/NO ermöglicht es, beim Auftreten einer Fehlermeldung mit...
  • Seite 110 COMOPT-Operanden COMOPT-Steuerung Operandenformat Funktion SYSLIST= (listenangabe[,listenangabe]...) legt fest, welche Übersetzungsprotokolle erzeugt und in die Systemdatei SYSLST ausgegeben werden sollen. listenangabe ist dabei eine der folgenden Angaben: [NO]OPTIONS [NO]DIAG [NO]SOURCE [NO]OBJECT [NO]MAP [NO]XREF SDF-Option: LISTING = PARAMETERS(...) OUTPUT = SYSLST TERMINATE-AFTER-SEMANTIC={YES/NO ermöglicht es, die Übersetzungsgruppe nur auf syntakti- sche und semantische Fehler überprüfen zu lassen, ohne TERM-A-SEM...
  • Seite 111: Steuerung Des Compilers Mit Compiler-Direktiven

    5 Steuerung des Compilers mit Compiler- Direktiven Die >>IMP-Compiler-Direktiven ermöglichen es, einige Übersetzungsoptionen direkt im Quelltext anzugeben. Im Gegensatz zu Optionen, die für die ganze Übersetzungsgruppe gelten, können Direkti- ven für jede Übersetzungseinheit separat angegeben werden. Die durch die SDF-Steuerung bzw. COMOPT-Anweisungen angegebenen Werte definie- ren die voreingestellten Werte für die im Folgenden beschriebenen Direktiven.
  • Seite 112: Imp Compiler-Action

    IMP COMPILER-ACTIONS Compiler-Direktiven IMP COMPILER-ACTION Durch diese Direktive können Aktionen des Compilers bei der Modul-Generierung gesteu- ert werden. Format LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR GENERATE-INITIAL-STATE >>IMP COMPILER-ACTION UPDATE-REPOSITORY DEFAULT LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR Syntaxregel 1. Die Direktive darf nur vor einer Übersetzungseinheit angegeben werden. Allgemeine Regeln 1. Die Direktive wirkt in der Übersetzungsphase. 2.
  • Seite 113: Imp Listing-Options

    Compiler-Direktiven IMP LISTING-OPTIONS IMP LISTING-OPTIONS Durch diese Direktive können die Werte von Compiler-Optionen, die die vom Compiler er- zeugten Listen beeinflussen, geändert werden. Format LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR EXPAND-COPY EXPAND-SUBSCHEMA MERGE-DIAGNOSTICS MERGE-REFERENCES >>IMP LISTING-OPTIONS DEFAULT MERGE-STATEMENT-ADDRESS SORT-MAP SHORTEN-XREF LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR Syntaxregel 1. Die Direktive darf nur vor einer Übersetzungseinheit angegeben werden. Allgemeine Regeln 1.
  • Seite 114: Imp Print-Directives

    IMP PRINT-Direktiven Compiler-Direktiven IMP PRINT-DIRECTIVES Durch diese Direktive können die Werte von Direktiven in die Quellprogrammliste ausge- geben werden. Format LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR >>IMP PRINT-DIRECTIVES NON-DEFAULT LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR Allgemeine Regeln 1. Die Direktive wirkt in der Listenerzeugungsphase. 2. Die Direktive darf überall in einer Übersetzungseinheit angegeben werden. 3.
  • Seite 115 Compiler-Direktiven IMP PRINT-Direktiven Beispiel 5-1 Quelltext: >>IMP PRINT-DIRECTIVES NON-DEFAULT >>IMP PRINT-DIRECTIVES ALL >>IMP LISTING-OPTIONS MERGE-DIAGNOSTICS >>CALL-CONVENTION COBOL >>TURN EC-OO-CONFORMANCE EC-OO-NULL CHECKING ON >>IMP LISTING-OPTIONS EXPAND-COPY EXPAND-SUBSCHEMA OFF >>IMP RUNTIME-ERRORS FUNCTION-DEFAULT-VALUE ON >>IMP LISTING-OPTIONS SORT-MAP SHORTEN-XREF ON >>IMP PRINT-DIRECTIVES NON-DEFAULT >>IMP PRINT-DIRECTIVES ALL Listenausgabe: OPTIONS BY DEFAULT EXPAND-COPY...
  • Seite 116 IMP PRINT-Direktiven Compiler-Direktiven ##### >>TURN EC-OO-RESOURCE CHECKING OFF ##### >>TURN EC-OO-UNIVERSAL CHECKING OFF ##### >>TURN EC-STORAGE-NOT-ALLOC CHECKING OFF ##### >>TURN EC-STORAGE-NOT-AVAIL CHECKING OFF ##### >>TURN EC-XML-CODESET-CONVERSION CHECKING OFF 00003 >>IMP LISTING-OPTIONS MERGE-DIAGNOSTICS 00004 >>CALL-CONVENTION COBOL 00005 >>TURN EC-OO-CONFORMANCE EC-OO-NULL CHECKING ON 00006 >>IMP LISTING-OPTIONS EXPAND-COPY EXPAND-SUBSCHEMA OFF 00007...
  • Seite 117: Imp Runtime-Errors

    Compiler-Direktiven IMP RUNTIME-ERRORS IMP RUNTIME-ERRORS Durch diese Direktive kann die Überprüfung und Behandlung von Laufzeitfehlern gesteuert werden. Format LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR >>IMP RUNTIME-ERRORS FUNCTION-DEFAULT-VALUE DEFAULT LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR Allgemeine Regeln 1. Die Direktive wirkt in der Übersetzungsphase. Ist die Direktive innerhalb einer Anweisung angegeben, so wirkt sie erst für die nächste Klausel bzw.
  • Seite 118 IMP RUNTIME-ERRORS Compiler-Direktiven U41113-J-Z125-6...
  • Seite 119: Binden, Laden, Starten

    6 Binden, Laden, Starten Im Verlauf der Übersetzung erzeugt COBOL2000 Objektmodule (OM’s) oder Bindelademo- dule (LLMs), die anschließend in einer PLAM-Bibliothek oder in der temporären EAM-Datei der aktuellen Task zur Verfügung stehen. Das Programm kann jedoch in dieser Form nicht ablaufen, da sein Maschinencode noch nicht vollständig ist: Jedes Modul enthält Verweise auf externe Adressen, d.h.
  • Seite 120: Aufgaben Des Binders

    Aufgaben des Binders Binden, Laden, Starten Das COBOL-Programm verwendet Sprachmittel für Objektorientierung. ● Der Compiler erzeugt Externverweise für alle nicht-parametrisierten Klassen bzw. Inter- faces, die im REPOSITORY Paragrafen spezifiziert sind. Das COBOL-Programm enthält mit External beschriebene Daten. Der Compiler legt da- ●...
  • Seite 121 Binden, Laden, Starten Aufgaben des Binders Ein Binder verarbeitet entweder das Ergebnis einer Übersetzung (Objektmodul oder Binde- lademodul) oder ein bereits durch einen Bindelauf vorgebundenes Modul, das ein aus meh- reren Objektmodulen bestehendes Großmodul oder ein Bindelademodul sein kann. Objekt- module und Großmodule werden unter dem Begriff „Bindemodul“...
  • Seite 122 Aufgaben des Binders Binden, Laden, Starten Der COBOL2000-Compiler erzeugt bei der Übersetzung Objektmodule oder LLMs. Die Objektmodule stehen in der temporären EAM-Datei der aktuellen Task oder als Ele- mente vom Typ R in einer PLAM-Bibliothek. Die LLMs stehen als Elemente vom Typ L in einer PLAM-Bibliothek. Folgende Tabelle zeigt, welche Module von den einzelnen Funktionseinheiten des Binder- Lader-Starter-Systems verarbeitet bzw.
  • Seite 123 Binden, Laden, Starten Aufgaben des Binders COBOL2000 - Compiler MODULE-OUTPUT= * LIB-ELEM(lib,elem) MODULE-OUTPUT= * OMF Bibliotheks- programm temporäre permanente Module Module TSOSLNK BINDER temporäres permanentes Bindelademodul Objektprogramm Objektprogramm ELDE Programmablauf Bild 2: Erzeugung und Aufruf permanent und temporär ablauffähiger COBOL-Programme im BS2000 U41113-J-Z125-6...
  • Seite 124: Statisches Binden Mit Tsoslnk

    Statisches Binden mit TSOSLNK Binden, Laden, Starten 6.2 Statisches Binden mit TSOSLNK Der Statische Binder TSOSLNK erzeugt aus einem oder mehreren Bindemodulen (Objekt- module oder Großmodule) eine der folgenden Einheiten: – ein ablauffähiges Programm, das er in eine eigene katalogisierte Datei bzw. als Ele- ment vom Typ „C“...
  • Seite 125 Binden, Laden, Starten Statisches Binden mit TSOSLNK Anweisung Kurzbeschreibung PROGRAM weist den Binder an, aus den eingelesenen Objektmodulen ein Programm zu erzeu- PROG gen, und legt dessen Eigenschaften und Ausgabeziel (PLAM-Bibliothek oder kata- logisierte Datei) fest. Unter anderem können folgende Operanden angegeben wer- den: –...
  • Seite 126 Statisches Binden mit TSOSLNK Binden, Laden, Starten Autolink-Verfahren des TSOSLNK Findet TSOSLNK in einem Modul externe Adressverweise, die nicht durch die Module be- friedigt werden können, die in INCLUDE-Anweisungen angegeben wurden, so geht er nach folgendem Autolink-Verfahren vor: 1. Als erstes prüft TSOSLNK, ob dem Externverweis mit einer RESOLVE-Anweisung ex- plizit eine Bibliothek zugeordnet wurde, in der ein passendes Modul zu suchen ist.
  • Seite 127 Binden, Laden, Starten Statisches Binden mit TSOSLNK Beispiel 6-1 Statisches Binden zu einem ablauffähigen Programm /START-PROGRAM FROM-FILE = $TSOSLNK ——————————————————————————————————— (1) BLS0500 PROGRAM ’TSOSLNK’, VERSION ’V21.0E02’ OF ’1999-03-15’ LOADED BLS0552 ... *PROG COBOLPROG,LIB=PLAM.LIB,ELEM=COBOLLAD ———————————————————————————— (2) *INCLUDE COBOLMOD,PLAM.LIB ——————————————————————————————————————————— (3) *RESOLVE ,$.SYSLNK.CRTE ——————————————————————————————————————————————...
  • Seite 128 Statisches Binden mit TSOSLNK Binden, Laden, Starten Binden von segmentierten Programmen mit Überlagerungsstruktur Durch geeignete COBOL-Sprachmittel (siehe Handbuch „COBOL2000-Sprachbeschrei- bung“ [1]) kann der Compiler veranlasst werden, den Maschinencode für eine Überset- zungseinheit nicht als ein einziges Objektmodul, sondern, in Teile zerlegt, in Form mehrerer Objektmodule auszugeben.
  • Seite 129: Binden Mit Dem Binder

    Binden, Laden, Starten Binden mit dem BINDER 6.3 Binden mit dem BINDER Mit dem BINDER können Objektmodule und Bindelademodule (LLMs) zu einem LLM ge- bunden und als Element vom Typ L in einer PLAM-Bibliothek abgespeichert werden. Der BINDER ist ausführlich im Handbuch „BINDER“ [22] beschrieben. Wichtiger Hinweis: LLMs mit eingebundenem Laufzeitsystem sollten nicht in Bibliotheken abgelegt werden,...
  • Seite 130 Binden mit dem BINDER Binden, Laden, Starten Mit dieser INCLUDE-MODULES-Anweisung wird der Name des Moduls angege- ben, der das Unterprogramm enthält (SUB). Das Modul steht in der PLAM-Biblio- thek PLAM.BSP. Mit der Anweisung RESOLVE-BY-AUTOLINK wird der Name der Laufzeitbibliothek angegeben, aus der Externverweise befriedigt werden sollen. Mit der Anweisung SAVE-LLM wird der erzeugte LLM unter dem Namen TESTPROG als Element vom Typ L in der PLAM-Bibliothek PLAM.BSP abgespei- chert.
  • Seite 131: Dynamisches Binden Und Laden Mit Dem Dbl

    Binden, Laden, Starten Dynamisches Binden und Laden mit dem DBL 6.4 Dynamisches Binden und Laden mit dem DBL Mit dem Dynamischen Bindelader DBL werden in einem Arbeitsgang Module temporär zu einer ladbaren Einheit gebunden, dann in den Speicher geladen und gestartet. Die erzeug- te Ladeeinheit wird am Ende des Programmablaufs automatisch gelöscht.
  • Seite 132 Dynamisches Binden und Laden mit dem DBL Binden, Laden, Starten LIBRARY=*OMF bezeichnet die temporäre EAM-Datei der aktuellen Task, in die der Compiler das übersetzte Objektmodul ausgegeben hat. ELEMENT=modul gibt den Namen des Moduls an, der zuerst geladen werden soll. modul besteht aus den ersten acht Zeichen des entsprechenden ID-Namens in der Übersetzungseinheit.
  • Seite 133: Laden Und Starten Von Ablauffähigen Programmen

    Binden, Laden, Starten Laden und Starten von ablauffähigen Programmen 6.5 Laden und Starten von ablauffähigen Programmen Damit ein statisch gebundenes Programm ablaufen kann, muss es in den Hauptspeicher geladen werden. Für diese Aufgabe steht im BS2000 ein Statischer Lader zur Verfügung. Er wird - wie der Dynamische Bindelader mit den Kommandos START-PROGRAM bzw.
  • Seite 134: Programmbeendigung

    Programmbeendigung Binden, Laden, Starten 6.6 Programmbeendigung Das Beendigungsverhalten eines Programms ist insbesondere dann von Bedeutung, wenn es in einer Prozedur aufgerufen oder von einer Jobvariablen überwacht wird. Treten während des Programmablaufs Fehlermeldungen auf, denen ein interner Return- Code zugeordnet ist (siehe dazu auch Fehlermeldung COB9119 in Kapitel „Meldungen des COBOL2000-Systems“...
  • Seite 135 Binden, Laden, Starten Programmbeendigung Rückkehr- Fortsetzung Auslösen von Code- Fehler- steuerbar Spin-Off in Anzeige nummer Kurzbeschreibung des Fehlers mit Option Dump Prozeduren 0100 keine Vom Laufzeitsystem wurde kein nein nein Fehler erkannt 1120 COB9120 Jobvariablen nicht verfügbar 1121 COB9121 End of File bei ACCEPT 1122 COB9122 1123...
  • Seite 136 Programmbeendigung Binden, Laden, Starten Rückkehr- Fortsetzung Auslösen von Code- Fehler- steuerbar Spin-Off in Anzeige nummer Kurzbeschreibung des Fehlers mit Option Dump Prozeduren 2151 COB9151 Dateien: nein nein/ Nicht abgefangener Ein-/ Ausgabe- fehler (keine USE-Prozedur, kein INVALID KEY, kein AT END) 2152 COB9152 Verbindung zu Datenbank konnte...
  • Seite 137 Binden, Laden, Starten Programmbeendigung Rückkehr- Fortsetzung Auslösen von Code- Fehler- steuerbar Spin-Off in Anzeige nummer Kurzbeschreibung des Fehlers mit Option Dump Prozeduren 2174 COB9174 Fehlerbehandlung im Programm: nein nein/ 2175 COB9175 Anwenderfehler nein 2176 COB9176 REPORT WRITER: nein Anwenderfehler 2178 COB9178 Zu sortierender Satz passt nicht zu nein...
  • Seite 138 Programmbeendigung Binden, Laden, Starten Die 1. Ziffer bezeichnet das Gewicht der Meldung (0: Hinweis, 1: Warnung, 2: Fehler, 3: Abbruchfehler). Die 2. Ziffer (immer 1) kennzeichnet das Programm als COBOL-Objekt. Die beiden letzten Ziffern (fett gedruckt) stellen den internen Return-Code dar. Inhalt und Bedeutung der Meldungen siehe Kapitel „Meldungen des COBOL2000- Systems“...
  • Seite 139: Gemeinsam Benutzbare Cobol-Programme

    Binden, Laden, Starten Gemeinsam benutzbare COBOL-Programme 6.7 Gemeinsam benutzbare COBOL-Programme Bei großen Programmen kann es von Vorteil sein, einzelne Programmteile, auf die mehrere Benutzer (Tasks) zugreifen, gemeinsam benutzbar (shareable) zu machen. Hierfür ist bei der Übersetzung eine der folgenden Steueranweisungen anzugeben: COMOPT GENERATE-SHARED-CODE=YES oder SHAREABLE-CODE=YES...
  • Seite 140 Gemeinsam benutzbare COBOL-Programme Binden, Laden, Starten Das folgende Bild veranschaulicht Programmläufe ohne und mit „Shared Code“: Programmabläufe ohne SHARE-Kommando Task A Task B Task C Modul XY Modul XY Modul XY Modul Modul Modul Klasse-6-Speicher Klasse-6-Speicher Klasse-6-Speicher für Task A für Task B für Task C Modul XY@ wird dreimal geladen...
  • Seite 141: Testhilfen Für Den Programmablauf

    7 Testhilfen für den Programmablauf Auch ein syntaktisch korrektes COBOL-Programm enthält möglicherweise noch logische Fehler und läuft daher nicht in der gewünschten Weise ab. Für das Auffinden und Beseiti- gen solcher Fehler stehen dem COBOL-Programmierer verschiedene Hilfsmittel zur Verfü- gung: –...
  • Seite 142: Dialogtesthilfe Aid

    Dialogtesthilfe AID Testhilfen für den Programmablauf 7.1 Dialogtesthilfe AID In COBOL2000-BC nicht unterstützt ! In diesem Benutzerhandbuch soll AID lediglich kurz vorgestellt werden. Die ausführliche Beschreibung dieser Testhilfe befindet sich in den Handbüchern [8], [20] und [21]. Kennt- nisse aus dem Handbuch „AID“ [8] werden vorausgesetzt. AID zeichnet sich durch folgende Leistungsmerkmale aus: 1.
  • Seite 143: Voraussetzungen Für Das Symbolische Testen

    Testhilfen für den Programmablauf Dialogtesthilfe AID – nach einer Programmunterbrechung ein Kapitel oder einen Paragrafen der PROCEDURE DIVISION zu vereinbaren, mit dem - abweichend von der codierten Programmlogik - der Testablauf fortgesetzt werden soll (%JUMP-Anweisung (siehe Handbuch „AID“ [8])); nur möglich, wenn das Programm mit PREPARE-FOR-JUMPS=YES im AID-Parameter der TEST-SUPPORT-Option bzw.
  • Seite 144 Dialogtesthilfe AID Testhilfen für den Programmablauf Dabei werden ESD-Informationen standardmäßig generiert und weitergegeben, während die LSD-Informationen AID auf zwei Wegen zugänglich gemacht werden können: Nach- dem sie bei der Übersetzung erzeugt worden sind, ist es möglich, – sie zusammen mit dem Gesamtprogramm zu laden oder –...
  • Seite 145: Symbolisches Testen Mit Aid

    Testhilfen für den Programmablauf Dialogtesthilfe AID 7.1.2 Symbolisches Testen mit AID Beim symbolischen Testen mit AID können Datenfelder, Übersetzungseinheiten, Kapitel und Paragrafen mit den Namen angesprochen werden, die im Quelltext definiert wurden. Um dagegen auf eine beliebige Zeile in der PROCEDURE DIVISION Bezug zu nehmen, muss der Benutzer einen Namen der Form –...
  • Seite 146 Dialogtesthilfe AID Testhilfen für den Programmablauf Liste der COBOL-Verben und ihrer Abkürzungen: ACCEPT INITIATE INSP INSPECT ADDC ADD CORRESPONDING INVOKE ALLO ALLOCATE KEEP ALTER MODIFY CALL CALL MOVE CANC CANCEL MOVC MOVE CORRESPONDING CLOSE MERGE COMPUTE MULTIPLY CONNECT OPEN CONT CONTINUE PERFORM oder EXIT PERFORM DELETE...
  • Seite 147: Vordefinierte Informationen

    Testhilfen für den Programmablauf Dialogtesthilfe AID Vordefinierte Informationen Informationen über das Testobjekt Mit dem AID-Kommando _COMPILER _COMPILATION_DATE %D[ISPLAY] _COMPILATION_TIME _PROGRAM_NAME können allgemeine Informationen über das zu testende Objekt angefordert werden: Compiler, von dem das Objekt übersetzt wurde _COMPILER _COMPILATION_DATE Datum der Übersetzung Uhrzeit der Übersetzung _COMPILATION_TIME _PROGRAM_NAME...
  • Seite 148: Hinweise Zum Symbolischen Testen Von Geschachtelten Programmen

    Dialogtesthilfe AID Testhilfen für den Programmablauf Hinweise zum symbolischen Testen von geschachtelten Programmen Setzen von Testpunkten ● – Paragrafen und Kapitel des inneren Programms, in dem die Unterbrechungsstelle liegt, können ohne Qualifikation angesprochen werden. – Auf Kapitel und Paragrafen in einem anderen Programm, das auch in einer anderen Übersetzungseinheit liegen kann, wird mit der S- und PROC-Qualifikation zugegrif- fen: %INSERT [S=program-id.]PROC=program-id-innen.paragraph [IN kapitel]...
  • Seite 149: Hinweise Zum Testen Von Objektorientierten Programmen

    Testhilfen für den Programmablauf Dialogtesthilfe AID – Mit der S- und PROC-Qualifikation kann man gezielt auf ein Datum eines anderen Programms zugreifen: %D PROC=program-id-innen.datenfeld Dies ist auch mit %SD ohne Qualifikation möglich, sofern das Datum in einem ru- fenden Programm liegt. Sowohl beim Zugriff auf Testpunkte als auch auf Daten gilt, dass die PROC-Qualifika- ●...
  • Seite 150 Dialogtesthilfe AID Testhilfen für den Programmablauf – Ablaufverfolgung Bei %TRACE können Klassen und Methoden als Trace-Bereich angegeben wer- den: %TRACE <n> IN S=<class>.[PROC={FACTORY | OBJECT}.PROC=<method>] – Anzeigen von Daten %DISPLAY Daten eines Objektes sind nur sichtbar, wenn sich die Unterbrechungsstelle in einer Methode dieses Objektes befindet.
  • Seite 151: Hinweise Zum Testen Von Programmen Mit Benutzerdefinierten Typen

    Testhilfen für den Programmablauf Dialogtesthilfe AID Hinweise zum Testen von Programmen mit benutzerdefinierten Typen AID V3.1A unterstützt die TYPEDEF-Klausel sowie typbezogene Zeiger in COBOL2000. Ein Dereferenzierungs-Operator und ein Adress-Operator ergänzen nun die bisher gängi- gen AID-Operatoren (siehe Handbuch „AID“ [8]). Der Dereferenzierungs-Operator dient dem Zugriff auf das durch einen Zeiger adressierte Datum.
  • Seite 152 Dialogtesthilfe AID Testhilfen für den Programmablauf Zuweisungen und Vergleiche ● – Zuweisungen und Vergleiche von Variablen mit der gleichen TYPEDEF-Klausel ohne STRONG-Angabe können analog zu Gruppen nur auf Low Level Ebene, d.h. durch explizite Konvertierung der Gruppen in hexadezimalen Strings, durchgeführt werden.
  • Seite 153 Testhilfen für den Programmablauf Dialogtesthilfe AID Beispiel 7-2 01 PT-TYP TYPEDEF USAGE POINTER TO PERSON. 01 PERSON TYPEDEF STRONG. 02 NAME PIC X(30). 02 VORNAME PIC X(30). 01 VERWEIS TYPE PT-TYP. 01 PERS1 TYPE PERSON. 01 PERS2 TYPE PERSON. Mögliche Eingabe in AID: %SET ADDRESS OF PERS1 INTO VERWEIS.
  • Seite 154: Testhilfezeilen

    Testhilfezeilen Testhilfen für den Programmablauf 7.2 Testhilfezeilen Auf Übersetzungseinheit-Ebene bietet COBOL2000 für die Diagnose von logischen Feh- lern Testhilfezeilen an. Dabei handelt es sich um besonders gekennzeichnete Zeilen in der Übersetzungseinheit, die – lediglich COBOL-Anweisungen für Testzwecke enthalten und – bei der Übersetzung nach Bedarf als Anweisungs- oder als Kommentarzeilen behan- delt werden können.
  • Seite 155: Schnittstelle Zwischen Cobol-Programmen Und Bs2000/Osd

    8 Schnittstelle zwischen COBOL-Programmen und BS2000/OSD Die Schnittstelle zwischen COBOL-Programmen und dem POSIX-Subsystem ist in Kapitel „COBOL2000 und POSIX“ auf Seite 303 dargestellt. 8.1 Ein-/Ausgabe über Systemdateien Systemdateien sind normierte Ein-/Ausgabebereiche des Systems, denen bestimmte End- geräte oder Dateien zugeordnet werden können. Sie stehen jeder Task ohne vorherige Ver- einbarung zur Verfügung.
  • Seite 156 Systemdateien Schnittstelle COBOL-Programm – BS2000 – für die Ausgabedateien SYSOUT mit TERMINAL IS merkname SYSLST mit PRINTER IS merkname SYSLSTnn mit PRINTERnn IS merkname (nn = 01...99) SYSOPT mit SYSOPT IS merkname Die Anweisungen ACCEPT, DISPLAY und STOP literal der PROCEDURE DIVISION: ●...
  • Seite 157 Schnittstelle COBOL-Programm – BS2000 Systemdateien – DISPLAY...UPON merkname schreibt in die (im SPECIAL-NAMES-Paragrafen) mit merkname verknüpfte Ausgabedatei. Die Daten werden dabei in der Länge der Sendefelder bzw. Literale der DISPLAY- Anweisung übertragen. Ist die Gesamtzahl der zu übertragenden Zeichen größer als die maximale Satzlän- ge der Ausgabedatei (siehe Tabelle 14), werden solange zusätzliche Datensätze...
  • Seite 158: Systemdateien: Primärzuweisungen, Umweisungen, Satzformate

    Systemdateien Schnittstelle COBOL-Programm – BS2000 8.1.2 Systemdateien: Primärzuweisungen, Umweisungen, Satzformate Primärzuweisungen Bei Taskbeginn sind die Systemdateien im BS2000 jeweils bestimmten Ein-/Ausgabe- geräten zugeordnet. Diese Zuordnung, man bezeichnet sie als Primärzuweisung, hängt von der Art des Auftrags (Dialog- oder Stapelbetrieb) ab; die folgende Tabelle stellt die Mög- lichkeiten zusammen: Primärzuweisung Systemdatei...
  • Seite 159 Schnittstelle COBOL-Programm – BS2000 Systemdateien Umweisungen Mit dem ASSIGN-systemdatei-Kommando kann im Verlauf einer Task die Zuordnung der Systemdateien geändert werden, d.h. sie können anderen Geräten, Systemdateien oder auch katalogisierten Dateien zugeordnet werden. Eine ausführliche Beschreibung des Kommandos findet sich im Handbuch „BS2000/OSD-BC Kommandos“ [3]. Systemdatei Umweisung auf mit dem Kommando...
  • Seite 160 Systemdateien Schnittstelle COBOL-Programm – BS2000 Satzformate Die Systemdateien verarbeiten Sätze fester Länge (Satzformat F) oder Sätze variabler Länge (Satzformat V). Die folgende Tabelle gibt einen Überblick über die jeweils zulässigen Satzformate und Satzlängen. Systemdatei Satzformat Satzlänge SYSDTA Bei Eingabe über Datenstation oder Plattendatei: maximal 32 Kbyte Bei Eingabe über Kartenleser: maximal 80 Byte SYSIPT...
  • Seite 161: Auftrags- Und Benutzerschalter

    Schnittstelle COBOL-Programm – BS2000 Auftrags- und Benutzerschalter 8.2 Auftrags- und Benutzerschalter Das BS2000 stellt jedem Auftrag (Task) 32 Auftragsschalter (nummeriert von 0 bis 31) und jeder Benutzerkennung 32 Benutzerschalter (nummeriert von 0 bis 31) zur Verfügung (sie- he Handbuch [3]); sie können jeweils die Zustände ON und OFF annehmen. Mit ihrer Hilfe lassen sich die Abläufe innerhalb eines Auftrags steuern bzw.
  • Seite 162 Auftrags- und Benutzerschalter Schnittstelle COBOL-Programm – BS2000 Die Abfrage und Veränderung von Schaltern in der PROCEDURE DIVISION: ● – Bedingungen (z.B. in der IF-, PERFORM-, EVALUATE-Anweisung) können die im SPECIAL-NAMES-Paragrafen vereinbarten Bedingungsnamen von Schalterzu- ständen enthalten und sie auf diese Weise für die Steuerung des Programmablaufs auswerten.
  • Seite 163 Schnittstelle COBOL-Programm – BS2000 Auftrags- und Benutzerschalter Beispiel 8-2 Verwendung von Auftragsschaltern Im folgenden Ausschnitt aus einem Dialogauftrag sieht eine Prozedur verschiedene Verar- beitungsvarianten vor, die abhängig vom Zustand der Auftragsschalter 12 und 13 ausge- führt werden. Die Schalter werden sowohl auf Betriebssystem-Ebene als auch auf Pro- gramm-Ebene verändert und ausgewertet: Zunächst kann Auftragsschalter 12 auf Betriebssystem-Ebene gesetzt werden, um die Ver- arbeitung innerhalb der folgenden Prozedur zu steuern.
  • Seite 164 Auftrags- und Benutzerschalter Schnittstelle COBOL-Programm – BS2000 Auftragsschalter 12 erhält den Status ON, 13 den Status OFF auf Betriebssystem- Ebene. Ausschnitt aus einer Prozedur. Das COBOL-Programm PROG-1 wird aufgerufen. Für die Auftragsschalter 12 (TSW-12) bzw. 13 (TSW-13) werden die programmin- ternen Namen SCHALTER-12 bzw.
  • Seite 165 Schnittstelle COBOL-Programm – BS2000 Auftrags- und Benutzerschalter Beispiel 8-3 Verwendung von Benutzerschaltern Im folgenden Ausschnitt erzeugt ein Dialogauftrag A zwei Stapelaufträge B und C. Im Auf- trag B wird eine ISAM-Datei aktualisiert. Erst danach kann Auftrag C ablaufen. Benutzer- schalter 21 wird in drei verschiedenen Aufträgen verwendet. Auf Programm-Ebene wird er gesetzt, auf Betriebssystem-Ebene wird er ausgewertet und rückgesetzt.
  • Seite 166 Auftrags- und Benutzerschalter Schnittstelle COBOL-Programm – BS2000 Der Benutzerschalter 21 wird mit OFF initialisiert. Die ENTER-Prozedur B.STAPEL wird aufgerufen; sie erzeugt den Stapelauftrag B. Stapelauftrag B ruft das COBOL-Programm COB-ISAM auf. COB-ISAM aktualisiert die Datei ISAM-DATEI. Am Ende der Aktualisierung setzt COB-ISAM den Benutzerschalter 21 auf ON. Die ENTER-Prozedur C.STAPEL wird aufgerufen;...
  • Seite 167: Jobvariablen

    Schnittstelle COBOL-Programm – BS2000 Jobvariablen 8.3 Jobvariablen Jobvariablen sind als eigenes Softwareprodukt erhältlich. Ähnlich wie Auftrags- und Benut- zerschalter dienen auch sie dem Informationsaustausch – zwischen Anwenderprogrammen und dem Betriebssystem oder – zwischen verschiedenen Anwenderprogrammen. Jobvariablen bieten jedoch gegenüber den Schaltern zusätzliche Möglichkeiten: –...
  • Seite 168 Jobvariablen Schnittstelle COBOL-Programm – BS2000 Die Anweisungen ACCEPT und DISPLAY der PROCEDURE DIVISION: ● – ACCEPT...FROM merkname liest den Inhalt der (im SPECIAL-NAMES-Paragrafen) mit merkname verknüpften Jobvariable. Die Daten werden dabei linksbündig in der Länge des Empfangsfeldes der ACCEPT-Anweisung übertragen: Ist das Feld länger als 256 Byte, wird es am rechten Ende mit Leerzeichen aufgefüllt;...
  • Seite 169 Schnittstelle COBOL-Programm – BS2000 Jobvariablen Beispiel 8-4 Kommunikation über Jobvariable Im folgenden Auftrag wird die Jobvariable KONTROLLE.ABLAUF sowohl von einem COBOL-Programm als auch auf Kommandoebene verwendet. Abhängig vom Inhalt der Jobvariable kann das Programm unterschiedliche Verarbeitungszweige durchlaufen und ggf. den Inhalt der Jobvariable aktualisieren. Auch ein anderer Auftrag - selbst unter einer anderen Benutzerkennung - kann auf diese Jobvariable zugreifen, falls sie mit dem Kom- mando CREATE-JV ...,USER-ACCESS=ALL-USERS katalogisiert wurde.
  • Seite 170 Jobvariablen Schnittstelle COBOL-Programm – BS2000 Die Jobvariable KONTROLLE.ABLAUF wird dem nachfolgend aufgerufenen COBOL-Programm PROG.ARBEIT-1 über den Linknamen *AKTUELL zugewiesen. Im SPECIAL-NAMES-Paragrafen von PROG.ARBEIT-1 werden für die Jobvariable der Linkname *AKTUELL und der (programminterne) Merkname FELDJV verein- bart. TAGDAT wird als Empfangsfeld für das Tagesdatum reserviert. Das Empfangsfeld für den Inhalt der Jobvariable wird vereinbart.
  • Seite 171: Zugriff Auf Eine Umgebungsvariable

    Schnittstelle COBOL-Programm – BS2000 Umgebungsvariable 8.4 Zugriff auf eine Umgebungsvariable Auf eine Umgebungsvariable kann mit ACCEPT- bzw. DISPLAY-Anweisungen zugegriffen werden. Der Name der Umgebungsvariablen wird mit Format 4 der DISPLAY-Anweisung festgelegt. Um auf den Inhalt der Umgebungsvariablen zuzugreifen, benötigt man Format 5 der ACCEPT-Anweisung.
  • Seite 172: Compiler- Und Betriebssysteminformationen

    Compiler- und Betriebssysteminformationen Schnittstelle COBOL-Programm – BS2000 8.5 Compiler- und Betriebssysteminformationen COBOL-Programme können auf Informationen des Compilers und des Betriebssystems zugreifen. Dazu gehören Informationen über – die Übersetzung der Übersetzungseinheit – die seit dem LOGON verbrauchte CPU-Zeit – die Task, in der das Programm abläuft, und –...
  • Seite 173 Schnittstelle COBOL-Programm – BS2000 Compiler- und Betriebssysteminformationen Inhalt und Struktur der Informationen Die folgende Tabelle gibt Aufschluss über den Aufbau der Informationen, die einem COBOL-Programm über die Herstellernamen COMPILER-INFO, CPU-TIME, PROCESS-INFO, TERMINAL-INFO und DATE-ISO4 zur Verfügung gestellt werden. Zeichenpositionen Informationen für COMPILER-INFO 1-10 Name des Compilers (COBOL2000 Ë,COBOL2000B,COBOL2000R) 11-20...
  • Seite 174 Compiler- und Betriebssysteminformationen Schnittstelle COBOL-Programm – BS2000 Zeichenpositionen Informationen für PROCESS-INFO 41-120 Systemverwalter-Privilegien; die Felder enthalten 8 Leerzeichen, wenn das Privileg nicht vorhanden ist. 41-48 SECADM 49-56 USERADM 57-64 HSMSADM 65-72 SECOLTP 73-80 TAPEADM 81-88 SATFGMMF 89-96 NETADM 97-104 FTADM 105-112 FTACADM 113-120...
  • Seite 175 Schnittstelle COBOL-Programm – BS2000 Compiler- und Betriebssysteminformationen Beispiel 8-6 Datenstrukturen für die Übernahme von Compiler- und Betriebssystem-Informatio- nen durch die ACCEPT-Anweisung COMPILER-INFORMATION. COMPILER-NAME PIC X(10). COMPILER-VERSION PIC X(10). UEBERSETZUNGS-DATUM PIC X(10). UEBERSETZUNGS-ZEIT PIC X(8). PROGRAMM-NAME PIC X(30). CPU-ZEIT-IN-SEKUNDEN PIC 9(6)V9(4). PROZESS-INFORMATION.
  • Seite 176 Compiler- und Betriebssysteminformationen Schnittstelle COBOL-Programm – BS2000 U41113-J-Z125-6...
  • Seite 177: Verarbeitung Katalogisierter Dateien

    9 Verarbeitung katalogisierter Dateien Die Verarbeitung von POSIX-Dateien ist in Kapitel „COBOL2000 und POSIX“ auf Seite 303 beschrieben. 9.1 Grundsätzliches zum Aufbau und zur Verarbeitung katalogisierter Dateien 9.1.1 Grundbegriffe zum Aufbau von Dateien Aus der Sicht eines COBOL-Anwenderprogramms ist eine Datei eine benannte und mit ei- ner logischen Struktur (Dateiorganisation) versehene Menge von Datensätzen bestimm- ter Satzformate auf einem oder mehreren Datenträgern.
  • Seite 178 Grundlagen Dateiverarbeitung Organisationsform der Datei Zugriffsmethode des DVS sequenziell relativ ISAM/UPAM indiziert ISAM Tabelle 16: Dateiorganisation und DVS-Zugriffsmethode Datensätze und Satzformate Ein (logischer) Datensatz ist die Einheit einer Datei, auf die das COBOL-Programm mit einer Ein-/Ausgabeanweisung zugreifen kann: Jede Leseoperation stellt dem Programm einen Datensatz zur Verfügung, jede Schreibanweisung erzeugt einen Datensatz in der Datei.
  • Seite 179 Dateiverarbeitung Grundlagen Enthält ein logischer Block mehrere Datensätze, so heißen diese Sätze geblockt. Es kön- nen nur Datensätze fester oder variabler Länge geblockt werden; für Sätze undefinierter Länge ist dies nicht möglich. Hinsichtlich seiner Größe kann ein logischer Block und damit ein Puffer –...
  • Seite 180: Zuweisen Von Katalogisierten Dateien

    Grundlagen Dateiverarbeitung 9.1.2 Zuweisen von katalogisierten Dateien Für jede Datei, die ein COBOL-Programm bearbeiten soll, wird in der SELECT-Klausel (sie- he Handbuch „COBOL2000-Sprachbeschreibung“ [1]) ein (programminterner) Name fest- gelegt, auf den sich die COBOL-Anweisungen für diese Datei beziehen. Bei Programmab- lauf muss jedem dieser Dateinamen eine aktuelle Datei zugewiesen sein.
  • Seite 181 Dateiverarbeitung Grundlagen Beispiel 9-1 Zuweisung einer katalogisierten Datei über das ADD-FILE-LINK-Kommando Eintrag im FILE-CONTROL-Paragrafen des COBOL-Programms LINKLIT: SELECT STAMM-DATEI ASSIGN TO "STAMMLNK". Bei der Übersetzung erzeugter Linkname: STAMMLNK Zuweisung der Datei LAGER.BESTAND /ADD-FILE-LINK LINK-NAME=STAMMLNK, - und Programmaufruf: FILE-NAME=LAGER.BESTAND /START-PROGRAM LINKLIT Bei COBOL-Programmen mit SORT (siehe Kapitel „Sortieren und Mischen“...
  • Seite 182 Grundlagen Dateiverarbeitung Beispiel 9-2 Änderung von Dateizuweisungen /ADD-FILE-LINK INOUTFIL,FILE.UPDATE.1 —————————————————————————————————— (1) /START-PROGRAM AKTUELL /ADD-FILE-LINK INOUTFIL,FILE.UPDATE.2 —————————————————————————————————— (2) /START-PROGRAM AKTUELL /REMOVE-FILE-LINK INOUTFIL ————————————————————————————————————————————— (3) Das COBOL-Programm AKTUELL vereinbart für eine Ein-/Ausgabedatei den Linknamen INOUTFIL. Es soll nacheinander die katalogisierten Dateien FILE.UPDATE.1 und FILE.UPDATE.2 aktualisieren.
  • Seite 183 Dateiverarbeitung Grundlagen Implizite Zuweisung über Voreinstellungen Ist einem internen Dateinamen mit dem Linknamen „linkname“ zum Programmablauf expli- zit keine katalogisierte Datei zugeordnet, werden die folgenden Voreinstellungen wirksam: – Bei einer Ausgabedatei und ENABLE-UFS-ACCESS = NO versucht das Programm auf eine katalogisierte Datei mit dem Namen aus der SELECT-Klausel zuzugreifen. Findet sich unter diesem Namen kein Katalogeintrag, schreibt das Programm in eine Datei mit dem Namen FILE.COBOL.linkname, die es vorher angelegt hat.
  • Seite 184 Grundlagen Dateiverarbeitung Beispiel 9-3 Zuweisung einer katalogisierten Datei über das ASSIGN-systemdatei-Kommando Eintrag im FILE-CONTROL-Paragrafen des COBOL-Programms LISTPROG: SELECT DRUCK-DATEI ASSIGN TO PRINTER. Zuweisung der Datei LIST.DATEI /ASSIGN-SYSLST LIST.DATEI und Programmaufruf: /START-PROGRAM LISTPROG Wird zum Programmablauf explizit keine Datei zugewiesen, führt das Programm seine Ein-/Ausgabeoperationen auf der angegebenen Systemdatei aus.
  • Seite 185: Festlegen Von Dateimerkmalen

    Dateiverarbeitung Grundlagen 9.1.3 Festlegen von Dateimerkmalen Für das Einrichten von Dateien steht im BS2000 das CREATE-FILE Kommando zur Verfü- gung. Ein Task File Table-Eintrag mit weiteren Dateimerkmalen wird später mit dem ADD-FILE-LINK-Kommando erzeugt. Die vollständigen Formate und eine ausführliche Be- schreibung können in den Handbüchern [3] oder [4] nachgelesen werden.
  • Seite 186 Grundlagen Dateiverarbeitung Versucht ein COBOL-Programm, eine Datei zu eröffnen, so prüft das DVS, ob in der TFT der Linkname eingetragen ist, der für die Datei bei der Übersetzung festgelegt wurde (siehe Abschnitt „Zuweisen von katalogisierten Dateien“). Wird ein solcher Eintrag gefunden, übernimmt das Programm die Dateimerkmale aus: –...
  • Seite 187 Dateiverarbeitung Grundlagen – Widersprüchliche Angaben zur Satzlänge COBOL-Programm ADD-FILE-LINK-Kommando RECORD-Klausel RECORD-SIZE-Operand Datensatzerklärung – Widersprüchliche Angaben zum Satzschlüssel COBOL-Programm ADD-FILE-LINK-Kommando RECORD KEY-Klausel KEY-POSITION-Operand Datensatzerklärung KEY-LENGTH-Operand – Widersprüchliche Angaben zum Plattenformat oder Dateiformat Katalogeintrag ADD-FILE-LINK-Kommando BLK-CONTR = BLOCK-CONTROL-INFO-Operand BUF-LEN = BUFFER-LENGTH-Operand U41113-J-Z125-6...
  • Seite 188 Grundlagen Dateiverarbeitung Beispiel 9-4 Erzeugen und Abbilden eines TFT-Eintrags (Abbildung in BS2000/OSD V5.0) URLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLU ⎫ /ADD-FILE-LINK INOUTFIL,ISAM.UPDATE, - ⎬ LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (1) BUFFER-LENGTH=*BY-CATALOG, SUPPORT=*DISK(SHARED-UPDATE=*YES) ⎭ /SHOW-FILE-LINK INOUTFIL,INFORMATION=*ALL LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (2) ORLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLROL URLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLU LINK-NAME LRLRLRLRLRLRLRLRLR FILE-NAME LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR OU INOUTFIL :N:$F2190202.ISAM.UPDATE LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR STATUS LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR OU STATE = INACTIVE ORIGIN...
  • Seite 189 Dateiverarbeitung Grundlagen Das ADD-FILE-LINK-Kommando weist der Datei ISAM.UPDATE den Linknamen INOUTFIL zu und vereinbart – für BUFFER-LENGTH, dass dem Operanden bei der Dateieröffnung der Wert aus dem Katalogeintrag für ISAM.UPDATE zugewiesen wird, und – SHARED-UPDATE=YES; d.h. ISAM.UPDATE soll von mehreren Benutzern si- multan aktualisiert werden können (siehe Abschnitt „Simultanverarbeitung von Dateien (SHARED-UPDATE)“...
  • Seite 190: Platten- Und Dateiformate

    Grundlagen Dateiverarbeitung 9.1.4 Platten- und Dateiformate Plattenformate Das BS2000 unterstützt Datenträger, die unterschiedlich formatiert sind: – Key-Datenträger für das Abspeichern von Dateien, in denen die Blockkontrollinforma- tion in einem separaten Feld („Pamkey“) pro 2Kbyte-Datenblock steht. Diese Dateien besitzen das Blockformat PAMKEY. –...
  • Seite 191: K-Isam- Und Nk-Isam-Dateien

    Dateiverarbeitung Grundlagen K-ISAM- und NK-ISAM-Dateien ISAM-Dateien im K-Format, die die maximale Satzlänge ausnützen, werden im NK-Format länger als der nutzbare Bereich des Datenblocks. Sie können im NK-Format behandelt wer- den, da das DVS Verlängerungen von Datenblöcken, sog. Überlaufblöcke, bildet. Die Bildung von Überlaufblöcken bringt folgende Probleme mit sich: –...
  • Seite 192: K-Sam- Und Nk-Sam-Dateien

    Grundlagen Dateiverarbeitung Beispiel 9-5 maximale Satzlänge einer NK-ISAM-Datei (feste Satzlänge) Dateivereinbarung: /ADD-FILE-LINK ...,RECORD-FORMAT=FIXED,BUFFER-LENGTH=STD(SIZE=2), - BLOCK-CONTROL-INFO=WITHIN-DATA-BLOCK maximale Satzlänge (nach Formel in Tabelle 17): 4096 - (2*16) - 12 - 1*2 - 1*4 = 4046, abgerundet auf die nächste durch vier teilbare Zahl: 4044 (Byte). K-SAM- und NK-SAM-Dateien Bei SAM-Dateien gibt es keine Überlaufblöcke.
  • Seite 193: Sequenzielle Dateiorganisation

    Dateiverarbeitung Sequenzielle Dateien 9.2 Sequenzielle Dateiorganisation Es gibt zwei Arten sequenziell organisierter Dateien: satzsequenzielle und zeilensequen- zielle Dateien. Die folgende allgemeine Beschreibung bezieht sich auf satzsequenziell or- ganisierte Dateien. Die Abweichungen und Einschränkungen der zeilensequenziellen Organisation gegenüber der satzsequenziellen Organisation sind in Abschnitt „Zeilensequenzielle Dateien“...
  • Seite 194: Cobol-Sprachmittel Für Die Verarbeitung Sequenzieller Dateien

    Sequenzielle Dateien Dateiverarbeitung 9.2.2 COBOL-Sprachmittel für die Verarbeitung sequenzieller Dateien Das folgende Programmskelett gibt einen Überblick über die wichtigsten Klauseln und An- weisungen, die COBOL2000 für die Verarbeitung sequenzieller Dateien zur Verfügung stellt. Die wesentlichen Angaben werden im Anschluss daran kurz erläutert: IDENTIFICATION DIVISON.
  • Seite 195 Dateiverarbeitung Sequenzielle Dateien SELECT interner-dateiname legt den Namen fest, unter dem die Datei in der Übersetzungseinheit angesprochen wird. interner-dateiname muss ein gültiges Programmiererwort sein. Das Format der SELECT-Klausel erlaubt auch die Angabe OPTIONAL für Eingabedateien, die beim Programmablauf nicht unbedingt vorhanden sein müssen. Ist einem mit SELECT OPTIONAL vereinbarten Dateinamen beim Programmablauf keine Datei zugewiesen, so wird –...
  • Seite 196 Sequenzielle Dateien Dateiverarbeitung FILE STATUS IS statusfelder gibt die Datenfelder an, in denen das Laufzeitsystem nach jedem Zugriff auf die Datei In- formationen darüber hinterlegt, – ob die Ein-/Ausgabeoperation erfolgreich war und – welcher Art ggf. die dabei aufgetretenen Fehler sind. Die statusfelder müssen in der WORKING-STORAGE SECTION oder der LINKAGE SECTION vereinbart werden.
  • Seite 197: Recording Mode

    Dateiverarbeitung Sequenzielle Dateien Die BLOCK CONTAINS-Klausel ist optional. Wird sie nicht angegeben, nimmt der Compiler BLOCK CONTAINS 1 RECORD an, d.h. ungeblockte Datensätze. RECORD satzlängenangabe – legt fest, ob Sätze fester oder variabler Länge verarbeitet werden sollen und – bestimmt bei Sätzen variabler Länge einen Bereich für die zulässigen Satzgrößen so- wie, falls im Format angegeben, ein Datenfeld zur Aufnahme der jeweils aktuellen Satz- längeninformation.
  • Seite 198 Sequenzielle Dateien Dateiverarbeitung OPEN open-modus interner-dateiname eröffnet die Datei in der angegebenen Eröffnungsart open-modus für die Verarbeitung. Für open-modus sind folgende Angaben möglich: INPUT eröffnet die Datei als Eingabedatei; sie kann nur gelesen werden OUTPUT eröffnet die Datei als Ausgabedatei; sie kann nur geschrieben werden. EXTEND eröffnet die Datei als Ausgabedatei;...
  • Seite 199: Zulässige Satzformate Und Zugriffsarten

    Dateiverarbeitung Sequenzielle Dateien 9.2.3 Zulässige Satzformate und Zugriffsarten Satzformate Sequenzielle Dateien können Sätze fester Länge (RECFORM=F), variabler Länge (RECFORM=V) und undefinierter Länge (RECFORM=U) enthalten. Eine Blockung ist da- bei nur für Sätze fester oder variabler Länge möglich. In der COBOL-Übersetzungseinheit wird das Format der zu verarbeitenden Sätze in der RECORD- oder der RECORDING MODE-Klausel festgelegt (siehe Handbuch „COBOL2000-Sprachbeschreibung“...
  • Seite 200: Eröffnungsarten Und Verarbeitungsformen (Sequenzielle Dateien)

    Sequenzielle Dateien Dateiverarbeitung 9.2.4 Eröffnungsarten und Verarbeitungsformen (sequenzielle Dateien) Mit den Sprachmitteln eines COBOL-Programms lassen sich sequenzielle Dateien – erstellen, – lesen, – durch Anfügen neuer Datensätze am Dateiende erweitern und – durch Abändern vorhandener Datensätze aktualisieren. Welche Ein-/Ausgabeanweisungen im Programm im einzelnen für eine Datei zulässig sind, wird dabei durch ihren Eröffnungsmodus bestimmt, der in der OPEN-Anweisung angege- ben wird: OPEN OUTPUT...
  • Seite 201 Dateiverarbeitung Sequenzielle Dateien OPEN EXTEND Als Ein-/Ausgabeanweisung ist WRITE mit folgendem Format erlaubt: BEFORE WRITE...[FROM...] [ ...] AFTER [AT END-OF-PAGE...] [NOT AT END-OF-PAGE...] [END-WRITE] In diesem Modus können am Ende einer sequenziellen Datei neue Sätze hinzugefügt wer- den. Bereits vorhandene Datensätze werden dabei nicht überschrieben. OPEN I-O Als Ein-/Ausgabeanweisungen sind READ und REWRITE mit folgenden Formaten erlaubt: READ...
  • Seite 202: Zeilensequenzielle Dateien

    Sequenzielle Dateien Dateiverarbeitung 9.2.5 Zeilensequenzielle Dateien Die zeilensequenzielle Organisation von COBOL-Dateien ist ein Sprachmittel des X/Open- Standards. Das entsprechende Sprachformat lautet: FILE-CONTROL. [ORGANIZATION IS] LINE SEQUENTIAL Eine zeilensequenzielle Datei kann im BS2000 gespeichert werden – als katalogisierte SAM-Datei oder – als Element einer PLAM-Bibliothek.
  • Seite 203 Dateiverarbeitung Sequenzielle Dateien /[SET-VAR] SYSIOL-name=’*LIBRARY-ELEMENT(bibliothek,element[version],typ)’ SYSIOL-name S-Variable. name muss der externe Name der Datei in der ASSIGN- Klausel sein. bibliothek Name der PLAM-Bibliothek element Name des Elements version Versionsbezeichnung. Zulässige Angaben sind: <alphanum-name 1..24> / *UPPER[-LIMIT] / *HIGH[EST-EXISTING] / *INCR[EMENT] (nur möglich beim Schreiben) Wird keine Version angegeben, wird beim Schreiben die höchste mögli- che Versionsangabe generiert, beim Lesen auf die höchste vorhandene Version zugegriffen.
  • Seite 204 Sequenzielle Dateien Dateiverarbeitung Beispiel 9-6 Erzeugen einer zeilensequenziellen Datei in einem Bibliothekselement Einträge in der COBOL-Übersetzungseinheit: FILE-CONTROL. SELECT AFILE ASSIGN TO "LIBELEM" ORGANIZATION IS LINE SEQUENTIAL PROCEDURE DIVISION. OPEN OUTPUT AFILE. Zuweisung von Bibliothek und Element vor Aufruf des Programms: /SET-VAR SYSIOL-LIBELEM=’*LIBRARY-ELEMENT(CUST.LIB,MEYER,S)’...
  • Seite 205: Erzeugen Von Druckdateien

    Dateiverarbeitung Sequenzielle Dateien 9.2.6 Erzeugen von Druckdateien COBOL-Sprachmittel für Druckdateien Die Erstellung von Dateien, die auf einem Drucker ausgegeben werden sollen, wird von COBOL2000 durch folgende Sprachmittel unterstützt: – die Angabe von symbolischen Gerätenamen in der ASSIGN-Klausel – die LINAGE-Klausel in der Dateierklärung –...
  • Seite 206 Sequenzielle Dateien Dateiverarbeitung Vorschubsteuerzeichen für Druckdateien Bei allen Druckdateien, deren ASSIGN-Klauseln nicht die Angabe literal enthalten, wird das Steuerbyte bei der Ausführung einer WRITE-Anweisung automatisch mit einem Drucker- vorschubzeichen versorgt, das den in der ADVANCING-Angabe gewünschten Vorschub bewirkt (siehe die beiden folgenden Tabellen). Bei fehlender ADVANCING-Angabe wird in diesen Fällen einzeiliger Vorschub angenommen.
  • Seite 207: In Den Folgenden Tabellen Sind Druckervorschubzeichen Zusammengestellt

    Dateiverarbeitung Sequenzielle Dateien In den folgenden Tabellen sind Druckervorschubzeichen zusammengestellt: Steuerzeichen für Vorschub nach dem vor dem Drucken Vorschub um Drucken sedezimal abgedruckt Anzahl Zeilen (Leerzeichen) nicht abdruckbar nicht abdruckbar (CENT) (Punkt) < (kleiner) (Klammer) (Plus) Tabelle 21: Druckervorschubzeichen Die Werte des zweiten Halbbytes sind wegen Hardwareeigenschaften um 1 kleiner als die gewünschte Zei- lenzahl.
  • Seite 208 Sequenzielle Dateien Dateiverarbeitung Damit beliebige sedezimale Werte (und damit auch nicht abdruckbare Vorschubsteuerzei- chen) in der COBOL-Übersetzungseinheit angesprochen werden können, gestattet es der SPECIAL-NAMES-Paragraf der ENVIRONMENT DIVISION, ihnen symbolische Namen zuzuordnen (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]). Das folgende Bei- spiel veranschaulicht, wie auf diese Weise Vorschubsteuerzeichen definiert werden kön- nen.
  • Seite 209 Dateiverarbeitung Sequenzielle Dateien Verwendung von ASA-Vorschubsteuerzeichen ASA-Vorschubsteuerzeichen können nur in Dateien verwendet werden, deren Zuweisung mit ASSIGN TO literal oder ASSIGN TO datenname erfolgt. Ferner ist für die zu verarbeitende Datei folgendes ADD-FILE-LINK-Kommando erforder- lich: ADD-FILE-LINK dateiname, REC-FORM=*VAR(*ASA) Die unter diesen Bedingungen verwendbaren ASA-Steuerzeichen und die korrespondie- renden WRITE-Anweisungen sind folgender Tabelle zu entnehmen: ASA-Vorschubsteuerzeichen Format der WRITE-Anweisung...
  • Seite 210: Verarbeiten Von Dateien Im Ascii- Oder Iso-7-Bit-Code

    Sequenzielle Dateien Dateiverarbeitung 9.2.7 Verarbeiten von Dateien im ASCII- oder ISO-7-Bit-Code Die Verarbeitung einer sequenziellen Datei im ASCII- bzw. ISO-7-Bit-Code unterstützt COBOL2000 durch die Klauseln (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]): – ALPHABET alphabetname-1 IS STANDARD-1 für den ASCII-Code bzw. ALPHABET alphabetname-1 IS STANDARD-2 für den ISO-7-Bit-Code im SPECIAL-NAMES-Paragrafen der CONFIGURATION SECTION und –...
  • Seite 211: Verarbeiten Von Magnetbanddateien

    Dateiverarbeitung Sequenzielle Dateien 9.2.8 Verarbeiten von Magnetbanddateien Die Verarbeitung von Magnetbanddateien unterstützt COBOL2000 durch folgende Sprach- mittel (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]): – Die Angaben INPUT...REVERSED und WITH NO REWIND in der OPEN-Anweisung: Beide Angaben bewirken, dass beim Eröffnen der Datei nicht auf den Dateianfang positioniert wird.
  • Seite 212 Sequenzielle Dateien Dateiverarbeitung Zuweisen von Magnetbanddateien Wie Plattendateien können auch Magnetbanddateien über das ADD-FILE-LINK-Komman- do zugewiesen und mit Attributen versehen werden (vgl. Abschnitt „Zuweisen von katalogi- sierten Dateien“ auf Seite 180 Abschnitt „Festlegen von Dateimerkmalen“ auf Seite 185). Eine ausführliche Beschreibung des Kommandoformates für Banddateien fin- det sich in den Handbüchern [3] und [4].
  • Seite 213: Ein-/Ausgabezustände

    Dateiverarbeitung Sequenzielle Dateien 9.2.9 Ein-/Ausgabezustände Jeder Datei im Programm können mit der FILE STATUS-Klausel Datenfelder zugeordnet werden, in denen das Laufzeitsystem nach jedem Zugriff auf die Datei Informationen darü- ber hinterlegt, – ob die Ein-/Ausgabeoperation erfolgreich war und – welcher Art ggf. die dabei aufgetretenen Fehler sind. Diese Informationen können z.B.
  • Seite 214 Sequenzielle Dateien Dateiverarbeitung datenname-2 – muss als sechs Byte langes Gruppenfeld der folgenden Struktur erklärt werden: 01 datenname-2. 02 datenname-2-1 PIC 9(2) COMP. 02 datenname-2-2 PIC X(4). – dient der Aufnahme des DVS-Fehlerschlüssels (DVS-Codes) zum jeweiligen Ein-/ Ausgabezustand und enthält nach jedem Zugriff auf die zugeordnete Datei einen Wert, der vom Inhalt des Feldes datenname-1 abhängt und sich aus folgender Zusammen- stellung ergibt: Inhalt von...
  • Seite 215 Dateiverarbeitung Sequenzielle Dateien Ein-/Ausgabe- Bedeutung Zustand Erfolgreiche Ausführung Die Ein-/Ausgabe-Anweisung wurde erfolgreich ausgeführt. Es ist keine weitere Information bezüglich der Ein-/Ausgabe-Operation verfügbar. Satzlängenkonflikt: Eine READ-Anweisung wurde erfolgreich ausgeführt. Die Länge des gelesenen Datensatzes liegt jedoch nicht in den Grenzen, die durch die Satzbeschreibungen der Datei festgelegt wurden.
  • Seite 216 Sequenzielle Dateien Dateiverarbeitung Ein-/Ausgabe- Bedeutung Zustand Die OPEN-Anweisung war aus einem der folgenden Gründe erfolglos: Im ADD-FILE-LINK-Kommando wurden einer oder mehrere der Operanden ACCESS-METHOD, RECORD-FORMAT bzw. RECORD-SIZE mit Werten angegeben, die von den entsprechenden expliziten oder impliziten Program- mangaben abweichen. Bei Eingabedateien traten Satzlängenfehler auf (Katalogüberprüfung, falls RECFORM=F).
  • Seite 217 Dateiverarbeitung Sequenzielle Dateien Ein-/Ausgabe- Bedeutung Zustand Es wurde versucht, eine READ-Anweisung für eine Datei auszuführen, die sich nicht im Eröffnungsmodus INPUT oder I-O befindet. Es wurde versucht, eine WRITE-Anweisung für eine Datei auszuführen, die sich nicht im Eröffnungsmodus OUTPUT oder EXTEND befindet. Es wurde versucht, eine REWRITE-Anweisung für eine Datei auszuführen, die sich nicht im Eröffnungsmodus I-O befindet.
  • Seite 218: Relative Dateiorganisation

    Relative Dateien Dateiverarbeitung 9.3 Relative Dateiorganisation 9.3.1 Merkmale relativer Dateiorganisation In einer relativ organisierten Datei ist jedem Datensatz eine Nummer zugeordnet, die seine Position in der Datei angibt: Der erste Satz hat die Nummer 1, der zweite die Nummer 2 usw.
  • Seite 219 Dateiverarbeitung Relative Dateien Dateistruktur Die Beschreibung der Dateistruktur einer ISAM-Datei findet sich in Abschnitt „Merkmale in- dizierter Dateiorganisation“ auf Seite 240. Für PAM-Dateien gilt: In ihrer logischen Struktur kann eine PAM-Datei als eine Folge von Bereichen gleicher Län- ge aufgefasst werden, die jeweils einen Datensatz aufnehmen können (in PAM-Dateien sind nur Sätze fester Länge erlaubt).
  • Seite 220: Cobol-Sprachmittel Für Die Verarbeitung Relativer Dateien

    Relative Dateien Dateiverarbeitung 9.3.2 COBOL-Sprachmittel für die Verarbeitung relativer Dateien Das folgende Programmskelett gibt einen Überblick über die wichtigsten Klauseln und An- weisungen, die COBOL2000 für die Verarbeitung relativer Dateien zur Verfügung stellt. Die wesentlichsten Angaben werden im Anschluss daran kurz erläutert: IDENTIFICATION DIVISION.
  • Seite 221 Dateiverarbeitung Relative Dateien SELECT interner-dateiname legt den Namen fest, unter dem die Datei in der Übersetzungseinheit angesprochen wird. interner-dateiname muss ein gültiges Programmiererwort sein. Das Format der SELECT-Klausel erlaubt auch die Angabe OPTIONAL für Eingabedateien, die beim Programmablauf nicht unbedingt vorhanden sein müssen. Ist einem mit SELECT OPTIONAL vereinbarten Dateinamen beim Programmablauf keine Datei zugewiesen, so wird –...
  • Seite 222 Relative Dateien Dateiverarbeitung RELATIVE KEY IS schlüssel gibt das Schlüsseldatenfeld zur Aufnahme der relativen Satznummern bei wahlfreiem Zu- griff auf die Datensätze an. schlüssel muss als ganzzahliges Datenfeld ohne Vorzeichen vereinbart werden. Es darf nicht Bestandteil der zugehörigen Datensatzerklärung sein. Bei wahlfreiem Zugriff muss schlüssel vor jeder Ein-/Ausgabeanweisung mit der relativen Nummer des Satzes versorgt werden, der bearbeitet werden soll.
  • Seite 223 Dateiverarbeitung Relative Dateien Der Compiler errechnet bei der Übersetzung aus den Angaben in der Übersetzungseinheit über Block- und Satzlänge einen Wert für die Puffergröße, der vom Laufzeitsystem für das DVS auf das nächstgrößere Vielfache eines PAM-Blocks (2048 Byte) aufgerundet wird. Diese Voreinstellung kann bei der Dateizuweisung durch die Angabe des BUFFER- LENGTH-Operanden im ADD-FILE-LINK-Kommando verändert werden, wobei darauf zu achten ist, dass der Puffer mindestens so groß...
  • Seite 224 Relative Dateien Dateiverarbeitung nn schlüssel typ&länge vereinbart das in der RELATIVE KEY-Angabe angegebene Schlüsseldatenfeld. Bei der Festlegung von typ&länge ist zu beachten, dass schlüssel ein ganzzahliges Daten- feld ohne Vorzeichen sein muss. Bei wahlfreiem Zugriff muss schlüssel vor jeder Ein-/Ausgabeanweisung mit der relativen Satznummer des zu bearbeitenden Satzes versorgt werden.
  • Seite 225: Zulässige Satzformate Und Zugriffsarten

    Dateiverarbeitung Relative Dateien 9.3.3 Zulässige Satzformate und Zugriffsarten Satzformate Relative Dateien können Sätze fester Länge (RECFORM=F) oder variabler Länge (RECFORM=V) enthalten. In beiden Fällen können die Sätze geblockt oder ungeblockt vor- liegen. In der COBOL-Übersetzungseinheit kann das Format der zu verarbeitenden Sätze in der RECORD-Klausel vereinbart werden.
  • Seite 226 Relative Dateien Dateiverarbeitung Zugriffsarten Auf Sätze einer relativen Datei kann sequenziell, wahlfrei oder dynamisch zugegriffen wer- den. In der COBOL- Übersetzungseinheit wird die Zugriffsart durch die ACCESS MODE-Klausel festgelegt. Die folgende Übersicht stellt die möglichen Angaben und ihre Auswirkungen auf die Zugriffsart zusammen: Angabe in der ACCESS MODE-...
  • Seite 227: Eröffnungsarten Und Verarbeitungsformen (Relative Dateien)

    Dateiverarbeitung Relative Dateien 9.3.4 Eröffnungsarten und Verarbeitungsformen (relative Dateien) Mit den Sprachmitteln eines COBOL-Programms lassen sich relative Dateien – erstellen, – lesen, – durch Hinzufügen neuer Datensätze erweitern und – durch Abändern oder Löschen vorhandener Datensätze aktualisieren. Welche Ein-/Ausgabeanweisungen im Programm jeweils für eine Datei zulässig sind, wird dabei durch ihren Eröffnungsmodus bestimmt, der in der OPEN-Anweisung angegeben wird: OPEN OUTPUT...
  • Seite 228 Relative Dateien Dateiverarbeitung OPEN EXTEND Mit OPEN EXTEND kann eine vorhandene Datei erweitert werden. Der Zugriff kann nur se- quenziell erfolgen. – ACCESS MODE IS SEQUENTIAL erlaubt, eine relative Datei sequenziell zu erweitern. WRITE schreibt dabei - beginnend mit dem höchsten Schlüssel+1 - die Sätze mit lückenlos aufsteigenden relativen Satz- nummern in die Datei.
  • Seite 229 Dateiverarbeitung Relative Dateien In diesem Modus können relative Dateien gelesen werden. Abhängig von der vereinbarten Zugriffsart hat die READ-Anweisung dabei folgende Wirkung: – ACCESS MODE IS SEQUENTIAL erlaubt es ausschließlich, die Datei sequenziell zu lesen. READ stellt dabei die Daten- sätze in der Reihenfolge aufsteigender (NEXT) und absteigender (PREVIOUS) relati- ver Satznummern zur Verfügung.
  • Seite 230 Relative Dateien Dateiverarbeitung OPEN I-O Welche Ein-/Ausgabeanweisungen bzw. Anweisungsformate erlaubt sind, hängt von der Angabe in der ACCESS MODE-Klausel ab. Die folgende Tabelle stellt die Möglichkeiten für OPEN I-O zusammen: Eintrag in der ACCESS MODE-Klausel Anweisung SEQUENTIAL RANDOM DYNAMIC START START...
  • Seite 231 Dateiverarbeitung Relative Dateien OPEN I-O setzt voraus, dass die zu verarbeitende Datei bereits existiert. Es ist daher nicht möglich, in diesem Modus eine relative Datei neu zu erstellen. Welche dieser Verarbeitungsformen durchgeführt werden können, und wie die Ein-/Ausgabeanweisungen dabei wirken, hängt von der vereinbarten Zugriffsart ab: –...
  • Seite 232: Erstellen Einer Relativen Datei Mit Wahlfreiem Zugriff

    Relative Dateien Dateiverarbeitung 9.3.5 Erstellen einer relativen Datei mit wahlfreiem Zugriff Das folgende Beispiel gibt ein einfaches COBOL-Programm wieder, mit dem eine relative Datei mit wahlfreiem Zugriff erstellt werden kann. Die Datensätze können dabei in beliebi- ger Reihenfolge in die Datei geschrieben werden. Beispiel 9-9 Programm zum wahlfreien Erstellen einer relativen Datei URLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLU...
  • Seite 233 Dateiverarbeitung Relative Dateien DISPLAY "DVS-CODE: " DVS-CODE-2 UPON T END-IF IF DATEI-OFFEN CLOSE RELATIV-DATEI END-IF DISPLAY "PROGRAMM ABNORMAL BEENDET" UPON T STOP RUN END-IF. AUSGABE-FEHLER-ENDE. EXIT. END DECLARATIVES. VORLAUF. OPEN OUTPUT RELATIV-DATEI SET DATEI-OFFEN TO TRUE. DATEI-LADEN. PERFORM SATZNUMMER-EINLESEN WITH TEST AFTER UNTIL REL-KEY IS NUMERIC PERFORM WITH TEST BEFORE UNTIL EINGABE-ENDE WRITE RELATIV-SATZ FROM RELATIV-TEXT...
  • Seite 234 Relative Dateien Dateiverarbeitung Die ACCESS MODE-Klausel vereinbart wahlfreien Zugriff auf die Sätze der Datei RELATIV-DATEI. Sie können also bei der Erstellung in beliebiger Reihenfolge in die Datei geschrieben werden. Die RELATIVE KEY-Angabe legt REL-KEY als Schlüsselfeld für die relativen Satz- nummern fest.
  • Seite 235: Ein-/Ausgabezustände

    Dateiverarbeitung Relative Dateien 9.3.6 Ein-/Ausgabezustände Jeder Datei im Programm können mit der FILE STATUS-Klausel Datenfelder zugeordnet werden, in denen das Laufzeitsystem nach jedem Zugriff auf die Datei Informationen darü- ber hinterlegt, – ob die Ein-/Ausgabeoperation erfolgreich war und – welcher Art ggf. die dabei aufgetretenen Fehler sind. Diese Informationen können z.B.
  • Seite 236 Relative Dateien Dateiverarbeitung datenname-2 – muss als sechs Byte langes Gruppenfeld der folgenden Struktur erklärt werden: 01 datenname-2. 02 datenname-2-1 PIC 9(2) COMP. 02 datenname-2-2 PIC X(4). – dient der Aufnahme des DVS-Fehlerschlüssels (DVS-Codes) zum jeweiligen Ein-/Aus- gabezustand und enthält nach jedem Zugriff auf die zugeordnete Datei einen Wert, der vom Inhalt des Feldes datenname-1 abhängt und sich aus folgender Zusammenstel- lung ergibt: Inhalt von...
  • Seite 237 Dateiverarbeitung Relative Dateien Ein-/Ausgabe- Bedeutung Zustand Erfolgreiche Ausführung Die Ein-/Ausgabe-Anweisung wurde erfolgreich ausgeführt. Es ist keine weitere Information bezüglich der Ein-/Ausgabe-Operation verfügbar. Satzlängenkonflikt: Eine READ-Anweisung wurde erfolgreich ausgeführt. Die Län- ge des gelesenen Datensatzesliegt jedoch nicht in den Grenzen, die durch die Satzbeschreibungen der Datei festgelegt wurden.
  • Seite 238 Relative Dateien Dateiverarbeitung Ein-/Ausgabe- Bedeutung Zustand Erfolglose Ausführung: Permanenter Fehler Es ist keine weitere Information bezüglich der Ein-/Ausgabe-Operation verfügbar. Es wurde versucht, eine OPEN INPUT/I-O-Anweisung für eine Datei auszuführen, die nicht vorhanden ist. OPEN-Anweisung auf eine Datei, die auf Grund folgender Bedingungen nicht er- öffnet werden kann: OPEN OUTPUT/I-O/EXTEND auf eine schreibgeschützte Datei (Passwort, RETENTION-PERIOD, ACCESS=READ)
  • Seite 239 Dateiverarbeitung Relative Dateien Ein-/Ausgabe- Bedeutung Zustand Es wurde versucht, eine sequenzielle READ-Anweisung für eine Datei auszufüh- ren, die sich im Eröffnungsmodus INPUT oder I-O befindet; ein nächster gültiger Datensatz steht aber nicht zur Verfügung. Grund: Die vorhergehende START-Anweisung war erfolglos, oder die vorhergehende READ-Anweisung war erfolglos, ohne eine Endebedin- gung zu verursachen, oder die vorhergehende READ-Anweisung hat eine Ende-Bedingung verursacht.
  • Seite 240: Indizierte Dateiorganisation

    Indizierte Dateien Dateiverarbeitung 9.4 Indizierte Dateiorganisation 9.4.1 Merkmale indizierter Dateiorganisation In einer indiziert organisierten Datei enthält jeder Datensatz einen Schlüssel, d.h. eine Fol- ge beliebiger (auch nichtabdruckbarer) Zeichen, die ihn (innerhalb der Datei) eindeutig identifizieren. Die Anfangspositionen (KEYPOS) und Längen (KEYLEN) der Schlüssel stimmen dabei für alle Sätze einer Datei überein.
  • Seite 241 Dateiverarbeitung Indizierte Dateien Datenblöcke können eine Länge von einem PAM-Block (2048 Byte) oder einem ganz- zahligen Vielfachen davon (bis zu 16 PAM-Blöcken) haben. – Die Indexblöcke dienen dem Auffinden der Datensätze über die Satzschlüssel. Sie las- sen sich verschiedenen Indexstufen zuordnen: Indexblöcke der niedrigsten Stufe enthalten Zeiger auf Datenblöcke, die Indexblöcke höherer Stufe Zeiger auf die Indexblöcke der nächstniedrigeren Stufe.
  • Seite 242: Cobol-Sprachmittel Für Die Verarbeitung Indizierter Dateien

    Indizierte Dateien Dateiverarbeitung 9.4.2 COBOL-Sprachmittel für die Verarbeitung indizierter Dateien Das folgende Programmskelett gibt einen Überblick über die wichtigsten Klauseln und An- weisungen, die COBOL2000 für die Verarbeitung indizierter Dateien zur Verfügung stellt. Die wesentlichen Angaben werden im Anschluss daran kurz erläutert: IDENTIFICATION DIVISION.
  • Seite 243 Dateiverarbeitung Indizierte Dateien SELECT interner-dateiname legt den Namen fest, unter dem die Datei in der Übersetzungseinheit angesprochen wird. interner-dateiname muss ein gültiges Programmiererwort sein. Das Format der SELECT-Klausel erlaubt auch die Angabe OPTIONAL für Eingabedateien, die beim Programmablauf nicht unbedingt vorhanden sein müssen. Ist einem mit SELECT OPTIONAL vereinbarten Dateinamen beim Programmablauf keine Datei zugewiesen, so wird –...
  • Seite 244 Indizierte Dateien Dateiverarbeitung RECORD KEY IS primärschlüssel gibt das Feld innerhalb des Datensatzes an, das den primären Satzschlüssel enthält. primärschlüssel muss als Datenfeld innerhalb der zugehörigen Datensatzerklärung verein- bart werden (siehe unten). Außer beim sequenziellen Lesen muss primärschlüssel vor jeder Ein-/Ausgabeanweisung mit dem Primärschlüssel des Satzes versorgt werden, der bearbeitet werden soll.
  • Seite 245 Dateiverarbeitung Indizierte Dateien Die Blockung von Datensätzen verringert – die Zahl der Zugriffe auf periphere Speicher und damit die Laufzeit des Programms und – die Zahl der Blockzwischenräume auf dem Speichermedium und damit den physischen Platzbedarf der Datei. Andererseits wird bei Zugriffen mit Sperrmechanismus im Verlauf einer Simultanverarbei- tung (siehe Abschnitt „Simultanverarbeitung von Dateien (SHARED-UPDATE)“...
  • Seite 246 Indizierte Dateien Dateiverarbeitung 01 datensatz. nn feld-1 typ&länge nn primärschlüssel typ&länge nn sekundärschlüssel typ&länge stellt eine Datensatzerklärung für die zugehörige Datei dar. Sie beschreibt den logischen Aufbau von Datensätzen. Für jede Datei ist mindestens eine Datensatzerklärung erforderlich. Werden für eine Datei mehrere Datensatzerklärungen angegeben, ist das vereinbarte Satzformat zu beachten: –...
  • Seite 247: Zulässige Satzformate Und Zugriffsarten

    Dateiverarbeitung Indizierte Dateien START interner-dateiname READ interner-dateiname REWRITE datensatz WRITE datensatz DELETE interner-dateiname sind Ein-/Ausgabeanweisungen für die Datei, die jeweils – in der Datei auf einen Satz positionieren bzw. – einen Satz lesen bzw. – einen Satz zurückschreiben bzw. – einen Satz schreiben bzw.
  • Seite 248 Indizierte Dateien Dateiverarbeitung Zugriffsarten Auf Sätze einer indizierten Datei kann sequenziell, wahlfrei oder dynamisch zugegriffen werden. In der COBOL-Übersetzungseinheit wird die Zugriffsart durch die ACCESS MODE-Klausel festgelegt. Die folgende Übersicht stellt die möglichen Angaben und ihre Auswirkungen auf die Zugriffsart zusammen: ACCESS MODE- Klausel Zugriffsart...
  • Seite 249: Eröffnungsarten Und Verarbeitungsformen (Indizierte Dateien)

    Dateiverarbeitung Indizierte Dateien 9.4.4 Eröffnungsarten und Verarbeitungsformen (indizierte Dateien) Mit den Sprachmitteln eines COBOL-Programms lassen sich indizierte Dateien – erstellen, – lesen, – durch Hinzufügen neuer Datensätze erweitern und – durch Abändern oder Löschen vorhandener Datensätze aktualisieren. Welche Ein-/Ausgabeanweisungen im Programm jeweils für eine Datei zulässig sind wird dabei durch ihren Eröffnungsmodus bestimmt, der in der OPEN-Anweisung angegeben wird: OPEN OUTPUT...
  • Seite 250 Indizierte Dateien Dateiverarbeitung OPEN INPUT Welche Ein-/Ausgabeanweisungen bzw. Anweisungsformate erlaubt sind, hängt von der Angabe in der ACCESS MODE-Klausel ab. Die folgende Tabelle stellt die Möglichkeiten für OPEN INPUT zusammen: Eintrag in der ACCESS MODE-Klausel Anweisung SEQUENTIAL RANDOM DYNAMIC START START...
  • Seite 251 Dateiverarbeitung Indizierte Dateien – ACCESS MODE IS RANDOM ermöglicht es, die Sätze der Datei wahlfrei zu lesen. READ stellt dabei die Datensätze in beliebiger Reihenfolge zur Verfügung; der Zugriff auf jeden Satz erfolgt über seinen Satzschlüssel Das (ALTERNATE) KEY-Feld muss dazu vor jeder READ-Anweisung mit dem Schlüssel des Satzes versorgt werden, der gelesen werden soll.
  • Seite 252 Indizierte Dateien Dateiverarbeitung Die folgende Tabelle stellt die Möglichkeiten für OPEN I-O zusammen: Eintrag in der ACCESS MODE-Klausel Anweisung SEQUENTIAL RANDOM DYNAMIC START START... Anweisung nicht zulässig START... [KEY IS...] [KEY IS...] [INVALID KEY...] [INVALID KEY...] [NOT INVALID KEY...] [NOT INVALID KEY] [END-START] [END-START] READ...
  • Seite 253 Dateiverarbeitung Indizierte Dateien Welche der oben erwähnten Verarbeitungsformen durchgeführt werden können und wie die Ein-/Ausgabeanweisungen dabei wirken, hängt von der vereinbarten Zugriffsart ab: – ACCESS MODE IS SEQUENTIAL erlaubt es, wie bei OPEN INPUT die Datei mit READ sequenziell zu lesen und dabei durch einen vorhergehenden START auf einen beliebigen Satz der Datei als Anfangs- punkt zu positionieren.
  • Seite 254: Positionieren Mit Start

    Indizierte Dateien Dateiverarbeitung 9.4.5 Positionieren mit START In indizierten (wie auch in relativen) Dateien kann mit START auf jeden beliebigen Daten- satz als Ausgangspunkt für nachfolgende sequenzielle Leseoperationen positioniert wer- den. Den Schlüssel (Primär- oder Sekundärschlüssel) des zuerst zu lesenden Satzes legt START dabei über eine Vergleichsbedingung fest.
  • Seite 255 Dateiverarbeitung Indizierte Dateien NOT AT END DISPLAY "HOECHSTER SATZSCHLUESSEL: " REC-KEY UPON T PERFORM SATZ-VERARBEITEN END-READ END-START PERFORM WITH TEST BEFORE UNTIL VERARBEITUNGS-ENDE READ IND-DATEI PREVIOUS LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (4) OU AT END SET VERARBEITUNGS-ENDE TO TRUE NOT AT END DISPLAY "NAECHSTER SATZSCHLUESSEL: " REC-KEY UPON T PERFORM SATZ-VERARBEITEN END-READ...
  • Seite 256: Ein-/Ausgabezustände

    Indizierte Dateien Dateiverarbeitung 9.4.6 Ein-/Ausgabezustände Jeder Datei im Programm können mit der FILE STATUS-Klausel Datenfelder zugeordnet werden, in denen das Laufzeitsystem nach jedem Zugriff auf die Datei Informationen darü- ber hinterlegt, – ob die Ein-/Ausgabeoperation erfolgreich war und – welcher Art ggf. die dabei aufgetretenen Fehler sind. Diese Informationen können z.B.
  • Seite 257 Dateiverarbeitung Indizierte Dateien datenname-2 – muss als sechs Byte langes Gruppenfeld der folgenden Struktur erklärt werden: 01 datenname-2. 02 datenname-2-1 PIC 9(2) COMP. 02 datenname-2-2 PIC X(4). – dient der Aufnahme des DVS-Fehlerschlüssels (DVS-Codes) zum jeweiligen Ein-/ Aus- gabezustand und enthält nach jedem Zugriff auf die zugeordnete Datei einen Wert, der vom Inhalt des Feldes datenname-1 abhängt und sich aus folgender Zusammenstel- lung ergibt: Inhalt von...
  • Seite 258 Indizierte Dateien Dateiverarbeitung Ein-/Ausgabe- Bedeutung Zustand Erfolglose Ausführung: Endebedingung Es wurde versucht, ein sequenzielles READ auszuführen. Es war jedoch kein nächster logischer Datensatz vorhanden, da das Dateiende erreicht war. Erfolglose Ausführung: Schlüsselfehlerbedingung Reihenfolgefehler für eine Datei bei ACCESS MODE IS SEQUENTIAL: Der Wert des Satzschlüssels wurde zwischen der erfolgreichen Ausführung einer READ-Anweisung und der Ausführung der nachfolgenden REWRITE- Anweisung geändert...
  • Seite 259 Dateiverarbeitung Indizierte Dateien Ein-/Ausgabe- Bedeutung Zustand Die OPEN-Anweisung war aus einem der folgenden Gründe erfolglos: Im ADD-FILE-LINK-Kommando wurden einer oder mehrere der Operanden ACCESS-METHOD, RECORD-FORMAT, RECORD-SIZE oder KEY-LENGTH mit Werten angegeben, die von den entsprechenden expliziten oder impliziten Programmangaben abweichen. Bei einer Eingabedatei trat ein Satzlängenfehler auf (Katalogüberprüfung, falls RECFORM=F).
  • Seite 260 Indizierte Dateien Dateiverarbeitung Ein-/Ausgabe- Bedeutung Zustand Es wurde versucht, eine WRITE-Anweisung für eine Datei auszuführen, die sich – bei sequenziellem Zugriff nicht im Eröffnungsmodus OUTPUT oder EXTEND, – bei wahlfreiem oder dynamischem Zugriff nicht im Eröffnungsmodus OUTPUT oder I-O befindet. Es wurde versucht, eine DELETE- oder REWRITE-Anweisung für eine Datei aus- zuführen, die sich nicht im Eröffnungsmodus I-O befindet.
  • Seite 261: Simultanverarbeitung Von Dateien (Shared-Update)

    Dateiverarbeitung Simultanverarbeitung (SHARED-UPDATE) 9.5 Simultanverarbeitung von Dateien (SHARED-UPDATE) 9.5.1 ISAM-Dateien ISAM-Dateien mit indizierter oder relativer Dateiorganisation können für mehrere Benutzer gleichzeitig zugänglich gemacht werden. Dies geschieht mit dem Operanden SHARED-UPDATE im SUPPORT-Parameter des ADD-FILE-LINK-Kommandos: /ADD-FILE-LINK linkname,dateiname,SUPPORT=DISK(SHARED-UPDATE=YES) Die folgende Tabelle zeigt, welche OPEN-Anweisungen für einen Benutzer B möglich sind, nachdem die Datei von Benutzer A bereits eröffnet wurde.
  • Seite 262 Simultanverarbeitung (SHARED-UPDATE) Dateiverarbeitung Aktualisierungen im Stapelbetrieb sollten nacheinander ablaufen, um sowohl Logikfehler als auch Laufzeitverlängerungen zu vermeiden (unnötige Angabe von SHARED-UPDATE=YES kostet Laufzeit und CPU-Zeit). Bei Angabe von SHARED-UPDATE=YES wird automatisch auch WRITE-CHECK=YES gesetzt, d.h. die ISAM-Puffer werden nach jeder Änderung sofort zurückgeschrieben. Dies ist aus Datensicherheits- und Eindeutigkeitsgründen erforderlich, erhöht aber wesentlich die Anzahl der Ein-/Ausgaben.
  • Seite 263 Dateiverarbeitung Simultanverarbeitung (SHARED-UPDATE) Regeln für die Simultanaktualisierung 1. READ- oder START-Anweisung mit WITH NO LOCK-Zusatz: Gibt Benutzer A WITH NO LOCK an und ist der entsprechende Datensatz vorhanden, wird dieser gelesen bzw. wird auf diesen positioniert, ungeachtet einer etwa durch ei- nen anderen Benutzer bereits gesetzten Sperre.
  • Seite 264 Simultanverarbeitung (SHARED-UPDATE) Dateiverarbeitung 4. Wartezeiten bei einer Sperre: Hat Benutzer A auf Grund einer erfolgreich ausgeführten READ- oder START-Anwei- sung einen Datensatz gesperrt und versucht Benutzer B auf denselben Datensatz oder irgendeinen anderen aus demselben Datenblock eine READ- oder START-Anweisung ohne WITH NO LOCK-Zusatz auszuführen, so führt dies für letzteren nicht sofort zum Mißerfolg.
  • Seite 265 Dateiverarbeitung Simultanverarbeitung (SHARED-UPDATE) Hinweise 1. Soll in einem Programm eine ISAM-Datei (SHARED-UPDATE=YES und OPEN I-O) be- arbeitet werden, sollte für diese Datei eine USE AFTER STANDARD ERROR-Prozedur vorgesehen werden. In dieser Prozedur können die simultanverarbeitungsspezifischen FILE STATUS-Werte 93 (Datensatz von einem simultanen Benutzer gerade gesperrt) und 94 (REWRITE- oder DELETE-Anweisung ohne vorherige READ-Anweisung) ab- gefragt und angemessen verarbeitet werden.
  • Seite 266 Simultanverarbeitung (SHARED-UPDATE) Dateiverarbeitung Beispiel 9-12 Lesen und Zurückschreiben in Datei ISAM1, wenn vor dem Zurückschreiben Daten aus einer Datei ISAM2 benötigt werden Ohne WITH NO LOCK-Zusatz: zweimalige READ-Anweisung auf dieselbe Datei erforderlich, dafür Sperrzeiten kürzer: READ ISAM1 INTO WORK1 ————————————————————————————————————————————————— (1) INVALID KEY...
  • Seite 267 Dateiverarbeitung Simultanverarbeitung (SHARED-UPDATE) Mit WITH NO LOCK-Zusatz: nur eine READ-Anweisung auf dieselbe Datei erfor- derlich, dafür Sperrzeiten länger: READ ISAM1 ——————————————————————————————————————————————————————————— (1) INVALID KEY... READ ISAM2 WITH NO LOCK ——————————————————————————————————————————————— (2) INVALID KEY... Verarbeitung von ISAM1SATZ unter Berücksichtigung von ISAM2SATZ REWRITE ISAM1SATZ FROM WORK1 ——————————————————————————————————————————...
  • Seite 268 Simultanverarbeitung (SHARED-UPDATE) Dateiverarbeitung Beispiel 9-13 Verzweigen zu einer USE AFTER STANDARD ERROR-Prozedur FILE-CONTROL. SELECT ISAM1 FILE STATUS IS FILESTAT1. WORKING-STORAGE SECTION. FILESTAT1 PIC 99. PROCEDURE DIVISION. DECLARATIVES. ISAM1ERR SECTION. USE AFTER STANDARD ERROR PROCEDURE ON ISAM1. SPERRE. IF FILESTAT1 = 93 THEN DISPLAY "SATZ ZUR ZEIT GESPERRT"...
  • Seite 269: Pam-Dateien

    Dateiverarbeitung Simultanverarbeitung (SHARED-UPDATE) 9.5.2 PAM-Dateien Eine Datei mit relativer Organisation und FCBTYPE=PAM kann - ebenso wie eine ISAM- Datei - von mehreren Benutzern simultan aktualisiert werden, wenn das ADD-FILE-LINK- Kommando SHARED-UPDATE=YES enthält und die Datei mit OPEN I-O eröffnet ist. Um Datenkonsistenz bei simultaner Aktualisierung zu ermöglichen, benutzt das COBOL2000-Laufzeitsystem den Sperr- und Entsperrmechanismus der DVS-Zugriffsme- thode UPAM.
  • Seite 270 Simultanverarbeitung (SHARED-UPDATE) Dateiverarbeitung Im Unterschied zu ISAM-Dateien bewirkt also eine Anweisung für eine PAM-Datei kei- ne Entsperrung von Datenblöcken einer anderen PAM-Datei. Hinweise 1. Soll in einem Programm eine PAM-Datei (mit SHARED-UPDATE=YES, OPEN I-O) ver- arbeitet werden, sollte für diese Datei eine USE AFTER STANDARD ERROR-Prozedur vereinbart werden (siehe „Indizierte Dateien“).
  • Seite 271: Verarbeiten Von Xml-Dokumenten

    10 Verarbeiten von XML-Dokumenten 10.1 Bereitstellen von XML-Dokumenten Abhängig von der Art der Verarbeitung kann ein COBOL-Programm ein XML-Dokument verarbeiten, das im Arbeitsspeicher oder in einer Datei bereitgestellt ist: Verarbeitungsart XML-Dokument im Speicher in Datei strukturorientiert ereignisorientiert – Wenn das XML-Dokument in einer Datei bereitgestellt wird, spielt deren BS2000/OSD-Zu- griffsmethode keine Rolle.
  • Seite 272: Binden, Laden, Starten Von Programmen Mit Xml-Sprachmitteln

    Binden, Laden, Starten XML-Dokumente verarbeiten Als Open Source-Software unterliegt die Nutzung dieses Programmpakets eigenen Lizenzbedingungen und Auflagen, die Sie beim Herunterladen aus dem Internet akzeptieren müssen. Zum Ablaufzeitpunkt muss dieses Programmpaket als Modulbibliothek im BS2000/OSD zur Verfügung stehen. Wie Sie diese Modulbibliothek beschaffen, sofern sie noch nicht im BS2000/OSD bereitgestellt ist, wird in Abschnitt „Bereitstellen des Parsers“...
  • Seite 273 XML-Dokumente verarbeiten Binden, Laden, Starten Beim dynamischen Binden und Laden mit dem DBL, siehe Abschnitt „Dynamisches Binden und Laden mit dem DBL“ auf Seite 131, ist dazu vor dem START PROGRAM- bzw. LOAD- PROGRAM-Kommando das folgende, zusätzliche Kommando nötig: /ADD-FILE-LINK BLSLIB02,$.SYSOML.XHCS-SYS.020 ————————————————————————— (1) XHCS-Anschlussmodul: Es wird angenommen, dass die Bibliothek, die das Modul enthält, im System mit dem Namen SYSOML.XHCS-SYS.020 zur Verfügung steht.
  • Seite 274: Zeichensatzerkennung

    Zeichensatzerkennung XML-Dokumente verarbeiten 10.4 Zeichensatzerkennung Für die korrekte Verarbeitung eines XML-Dokuments ist es entscheidend, den Zeichensatz zu kennen, der zur Darstellung des Dokuments verwendet wird. XML erlaubt die Angabe dieses Zeichensatzes in einer Zeichensatz-Deklaration innerhalb des Dokuments. Bei Da- tenübertragungen zwischen verschiedenen Datenverarbeitungssystemen erfolgen i.A. auch Konvertierungen der verwendeten Zeichensätze, jedoch keine inhaltlichen Änderun- gen.
  • Seite 275 XML-Dokumente verarbeiten Zeichensatzerkennung Die Entscheidung für den letztlich zur Verarbeitung angenommenen Zeichensatz bzw. die Entscheidung für einen Ein-/Ausgabezustand bei nicht auflösbaren Widersprüchen erfolgt entsprechend der folgenden Tabelle. Ein Gedankenstrich (–) bedeutet, dass die Existenz bzw. Verträglichkeit für die Entscheidung keine Bedeutung hat. Vorgefundene Situation Getroffene Entscheidung Z1 erkannt * Z2 existiert...
  • Seite 276: Bereitstellen Des Parsers

    COBOL-Programme, die sie nutzen wollen, unter openUTM ab- laufen müssen. 1. Gehen Sie auf die Internetseite http://de.ts.fujitsu.com/openUTM. 2. Folgen Sie den Anweisungen zum Download, akzeptieren Sie ggf. die Lizenzbedingun- gen und laden Sie die neueste Version der BS2000-Bibliothek auf Ihren PC.
  • Seite 277: Erweiterter Ein-/Ausgabe-Zustand Für Xml-Anweisungen (Cbx-Code)

    XML-Dokumente verarbeiten Erweiterter Ein-/Ausgabe-Zustand für XML-Anweisungen 10.6 Erweiterter Ein-/Ausgabe-Zustand für XML-Anweisungen (CBX-Code) Die einfachen Ein-/Ausgabe-Zustände für XML-Dateien sind im Handbuch „COBOL 2000 Sprachbeschreibung“ [1] beschrieben. Die kursiv dargestellten Fehler in der folgenden Tabelle treten nur bei der Zerlegung von DTDs auf. Ein-/Ausgabe- Bedeutung Zustand...
  • Seite 278: Erweiterter Ein-/Ausgabe-Zustand Für Xml-Anweisungen

    Erweiterter Ein-/Ausgabe-Zustand für XML-Anweisungen XML-Dokumente verarbeiten Ein-/Ausgabe- Bedeutung Zustand 0315 Zeichensatz 'UTF-16LE' wird nicht unterstützt 0317 Zeichensatz nicht feststellbar 0320 EBCDIC-Zeichen in einem nationalen Datenfeld 0321 ASCII-/UTF-8-Zeichen in einem nationalen Datenfeld 1001 Parameter Entitätenreferenz am Dokumentende 1002 Parameter Entitätenreferenz im Prolog 1003 Parameter Entitätenreferenz im Epilog 1004...
  • Seite 279 XML-Dokumente verarbeiten Erweiterter Ein-/Ausgabe-Zustand für XML-Anweisungen Ein-/Ausgabe- Bedeutung Zustand 2001 Zeichenfolge nicht korrekt abgeschlossen 2003 Literal nicht korrekt abgeschlossen 2004 Kommentar nicht korrekt abgeschlossen 2005 Name in Notations-Deklaration fehlt 2006 Notations-Deklaration nicht korrekt abgeschlossen 2007 Fehler in Attributliste 2008 Attributliste nicht korrekt abgeschlossen 2009 Fehler in Element-Deklaration für gemischten Inhalt 2010...
  • Seite 280 Erweiterter Ein-/Ausgabe-Zustand für XML-Anweisungen XML-Dokumente verarbeiten Ein-/Ausgabe- Bedeutung Zustand 2099 Zeichensatz aus der Zeichensatz-Deklaration wird nicht unterstützt 2994 ILCS-Fehler 2995 unerwartetes EOF 2996 Fehler beim Lesen 2997 Vorausschau Puffer zu klein 2998 Speicher-Fehler 2999 interner Fehler / System-Fehler 3000 nicht verwendete Parser-Codes - bitte Systemverwalter verständigen Tabelle 36: Erweiterte Ein-/Ausgabe-Zustände für XML-Anweisungen U41113-J-Z125-6...
  • Seite 281: Sortieren Und Mischen

    11 Sortieren und Mischen 11.1 COBOL-Sprachmittel zum Sortieren und Mischen Das Sortieren und Mischen unterstützt COBOL2000 durch folgende Sprachmittel (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]): – Die Angabe des Literals „SORTWK“ in der ASSIGN-Klausel Sie vereinbart explizit den Linknamen SORTWK für die Sortierdatei. Das Format der ASSIGN-Klausel für Sortierdateien lässt auch andere Angaben zu, die jedoch vom Compiler als Kommentar betrachtet werden.
  • Seite 282 COBOL-Sprachmittel Sortieren und Mischen – Die Vereinbarung von Eingabe- und Ausgabeprozeduren Eine Eingabeprozedur (INPUT PROCEDURE) kann für jede SORT-Anweisung verein- bart werden. Sie erlaubt es, die zu sortierenden Datensätze zu erzeugen oder zu bear- beiten, bevor sie über eine RELEASE-Anweisung an die Sortierdatei übergeben wer- den.
  • Seite 283: Dateien Für Das Sortierprogramm

    Sortieren und Mischen Dateien für das Sortierprogramm 11.2 Dateien für das Sortierprogramm Für einen Sortiervorgang werden folgende Dateien benötigt: Sortierdatei In dieser Datei (Arbeitsbereich) werden Datensätze sortiert. Ihr Name wird z.B. vereinbart über die Klausel SELECT sortierdatei ASSIGN TO "SORTWK" Außerdem muss diese Datei in der Sortierdateierklärung (SD) der DATA DIVISION be- schrieben sein.
  • Seite 284 Dateien für das Sortierprogramm Sortieren und Mischen – SORT-CORE-SIZE: mit der gewünschten Größe der internen Arbeitsbereiche in Byte. Durch diese Angaben kann der Programmablauf beeinflusst werden. Bei fehlender Angabe werden standardmäßig 24 x 4096 Byte, d.h. 24 Seiten zu je 4 Kbyte angenommen.
  • Seite 285: Fixpunktausgabe Für Sortierprogramme Und Wiederanlauf

    Sortieren und Mischen Fixpunktausgabe und Wiederanlauf 11.3 Fixpunktausgabe für Sortierprogramme und Wiederanlauf Die Angabe der RERUN-Klausel (Format 2) veranlasst die Ausgabe spezieller Fixpunkte für Sortierdateien. Fixpunkte enthalten Informationen über den Zustand des Sortiervor- gangs. Sie sind notwendig, um ein vom Benutzer oder wegen Anlagenstörung abgebroche- nes Programm wieder starten zu können, ohne den gesamten bisherigen Programmablauf wiederholen zu müssen.
  • Seite 286: Sortieren Von Tabellen

    Sortieren von Tabellen Sortieren und Mischen 11.4 Sortieren von Tabellen Die BS2000-Sortierfunktion SORT lässt sich auch für das Sortieren von Tabellen verwen- den. Als COBOL-Sprachmittel steht die SORT-Anweisung zur Verfügung (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]). 11.5 Sortieren mit erweiterten Zeichensätzen Beim Sortieren mit erweiterten Zeichensätzen wird das Format TRANSLATE-CHARACTER des SORT (siehe [6]) im BS2000/OSD genutzt.
  • Seite 287 Sortieren und Mischen Sortieren mit erweiterten Zeichensätzen Beispiel 11-1 Erzeugen von Dateien mit erweitertem Zeichensatz EDF041 Um mit einem Editor im BS2000 eine Datei im erweiterten Zeichensatz erstellen zu können, sind folgende Schritte nötig: Einstellungen der Emulation: Konfiguration … Datensichtstation ●...
  • Seite 288 Sortieren mit erweiterten Zeichensätzen Sortieren und Mischen U41113-J-Z125-6...
  • Seite 289: Fixpunktausgabe Und Wiederanlauf

    12 Fixpunktausgabe und Wiederanlauf Fixpunkte werden von COBOL2000-Objekten in eine externe Fixpunktdatei ausgegeben (ggf. zwei Fixpunktdateien, siehe unten). Ein Fixpunkt umfasst Kennungsinformationen, Programmzustand, dazu bezogenen Systemzustand und virtuelle Speicherinhalte. Dies wird für einen möglichen späteren Wiederanlauf benötigt. Durch Ausgabe solcher Fixpunkte kann ein absichtlich oder wegen Anlagenstörung abge- brochenes Programm zu beliebiger Zeit an der Stelle fortgesetzt werden, an der ein Fix- punkt ausgegeben wurde.
  • Seite 290: Fixpunktausgabe

    Fixpunktausgabe Fixpunktausgabe und Wiederanlauf 12.1 Fixpunktausgabe Die Ausgabe von Fixpunkten veranlasst der Benutzer mit der RERUN-Klausel. Dabei kann er den Zeitpunkt der Fixpunktausgabe bestimmen; eine Ausgabe bei jedem Spulenwechsel für eine bestimmte Datei ist möglich sowie auch die Ausgabe nach Verarbeitung einer be- stimmten Anzahl von Sätzen einer Datei.
  • Seite 291: Wiederanlauf

    Fixpunktausgabe und Wiederanlauf Wiederanlauf Format der Meldung: E301 CHECKPOINT#aa, HALF PAGE#=bb, DATE=cc, TIME=dd:ee Fixpunkt-Nummer PAM-Seiten-Nummer mm/tt/jj:Monat/Tag/Jahr Stunde Minute 12.2 Wiederanlauf Mit dem RESTART-PROGRAM-Kommando startet der Benutzer ein ablauffähiges Pro- gramm bei einem durch einen Fixpunkt festgehaltenen Zustand. Format des RESTART-PROGRAM-Kommandos (siehe Handbuch „Kommandos Band 1 - 6“...
  • Seite 292 Wiederanlauf Fixpunktausgabe und Wiederanlauf U41113-J-Z125-6...
  • Seite 293: Programmverknüpfungen

    13 Programmverknüpfungen Ein Programmsystem besteht aus einem Hauptprogramm (das Programm, das auf Sys- temebene aufgerufen wird) und einem oder mehreren externen Unterprogrammen, die so- wohl in der Sprache des Hauptprogramms als auch in anderen Programmiersprachen ge- schrieben sein können. Den hierzu erforderlichen Programmverknüpfungen dienen die Inter-Language Communi- cation Services (ILCS).
  • Seite 294: Binden Und Laden Von Unterprogrammen

    Binden und Laden von Unterprogrammen Programmverknüpfungen 13.1 Binden und Laden von Unterprogrammen Den Namen eines Unterprogramms kann man in der CALL-Anweisung entweder als Literal angeben oder als Bezeichner eines Datenfeldes, das den Unterprogrammnamen bzw. die Unterprogrammadresse enthält. Abhängig von der Art des Unterprogrammaufrufs wird ein Programmsystem unterschiedlich gebunden und geladen.
  • Seite 295 Programmverknüpfungen Binden und Laden von Unterprogrammen für das Common RunTime Environment (CRTE), das das COBOL-Laufzeitsystem enthält (hierfür darf die Bibliothek SYSLNK.CRTE.PARTIAL-BIND nicht verwendet werden, siehe CRTE-Benutzerhandbuch [2]). Außerdem muss folgende Zuweisung vorgenommen werden: /ADD-FILE-LINK COBOBJCT,bibliothek für eine Bibliothek, die die nachzuladenden Unterprogramme enthält. Dabei ist zu beachten, dass die Verwendung des Linknamens BLSLIBnn nur wirkt, wenn im Aufrufkommando für den DBL RUN-MODE=ADVANCED(ALTERNATE-LIBRARIES=YES)
  • Seite 296 Binden und Laden von Unterprogrammen Programmverknüpfungen Beispiel 13-1 Binde- und Ladetechniken für Programmsysteme mit dynamisch nachzuladenden Unterprogrammen Programmkonstellation und Art der Aufrufe MAINPROG UPROG2 UPROG1 UPROG3 MAINPROG: CALL "UPROG1" USING ... MOVE "UPROG2" TO bezeichner-1 MOVE "UPROG3" TO bezeichner-2 CALL bezeichner-1 USING bezeichner-2 UPROG2: PROCEDURE DIVISION USING bezeichner-2 CALL bezeichner-2...
  • Seite 297 Programmverknüpfungen Binden und Laden von Unterprogrammen Die einzelnen Programme sind als Objektmodule unter den Elementnamen MAINPROG, UPROG1, UPROG2 und UPROG3 in der Bibliothek BENUTZER-PROGRAMME abgelegt. 1. Verwendung des DBL (dynamisches Binden) /ADD-FILE-LINK BLSLIB00,$.SYSLNK.CRTE ———————————————————————————————— (1) /ADD-FILE-LINK COBOBJCT,BENUTZER-PROGRAMME ——————————————————————————— (2) /START-PROGRAM *MODULE(LIB=BENUTZER-PROGRAMME,ELEM=MAINPROG,- ———————...
  • Seite 298: Benutzer-Programme

    Binden und Laden von Unterprogrammen Programmverknüpfungen Zuweisung der Bibliothek, aus der das Unterprogramm UPROG2 dynamisch nach- geladen wird Aufruf des Großmoduls GROSSMOD. 3. Verwendung des BINDER (LLM-Binden) Im Unterschied zum TSOSLNK lässt der BINDER standardmäßig alle Externverweise und Einsprungpunkte sichtbar; dies ist für den anschließenden Bindelader-Lauf unbedingt er- forderlich.
  • Seite 299 Programmverknüpfungen Binden und Laden von Unterprogrammen b) Umwandeln der Objektmodule in einzelne Bindelademodule /START-PROGRAM $BINDER //START-LLM-CREATION INTERNAL-NAME=MAINPROG —————— //INCLUDE-MODULES LIB=BENUTZER-PROGRAMME,ELEM=MAINPROG //SAVE-LLM LIB=MODULE.LLM //START-LLM-CREATION INTERNAL-NAME=UPROG1 ——————— //INCLUDE-MODULES LIB=BENUTZER-PROGRAMME,ELEM=UPROG1 //SAVE-LLM LIB=MODULE.LLM,ENTRY-POINT=UPROG1 //START-LLM-CREATION INTERNAL-NAME=UNTER2 ——————— //INCLUDE-MODULES LIB=BENUTZER-PROGRAMME,ELEM=UPROG2 //SAVE-LLM LIB=MODULE.LLM,ENTRY-POINT=UPROG2 //START-LLM-CREATION INTERNAL-NAME=UPROG3 ——————— //INCLUDE-MODULES LIB=BENUTZER-PROGRAMME,ELEM=UPROG3 //SAVE-LLM LIB=MODULE.LLM //END /ADD-FILE-LINK BLSLIB00,$.SYSLNK.CRTE ——————————————————————————————————...
  • Seite 300: Cobol-Sonderregister Return-Code

    RETURN-CODE-Sonderregister Programmverknüpfungen Zuweisen der Bibliothek, in der die LLMs stehen, mit dem Linknamen COBOBJCT, damit die offenen Externverweise der zuvor erzeugten LLMs befriedigt werden kön- nen. Aufruf des LLM mit dem Hauptprogramm MAINPROG. 13.2 COBOL-Sonderregister RETURN-CODE Das COBOL-Sonderregister RETURN-CODE kann zur Verständigung zwischen getrennt übersetzten COBOL-Programmen einer Ablaufeinheit dienen.
  • Seite 301: Parameterübergabe An Fremdsprachige Programme

    Programmverknüpfungen Parameterübergabe an fremdsprachige Programme 13.3 Parameterübergabe an fremdsprachige Programme Mit COBOL-Prototypes können auch fremdsprachige Programme beschrieben werden. In diesem Fall stehen auch bei Aufruf fremdsprachiger Programme alle Möglichkeiten des er- weiterten CALL Format 3 zur Verfügung (siehe Handbuch „COBOL2000-Sprachbeschrei- bung“...
  • Seite 302 Parameterübergabe an C-Programme Programmverknüpfungen U41113-J-Z125-6...
  • Seite 303: Cobol2000 Und Posix

    14 COBOL2000 und POSIX In COBOL2000-BC nicht unterstützt ! Der COBOL Compiler kann in der POSIX-Umgebung (POSIX-Shell) aufgerufen und mit Optionen gesteuert werden. Ferner können COBOL-Programme, die in POSIX oder BS2000 übersetzt wurden, in der POSIX-Umgebung zum Ablauf gebracht werden. Schließlich kann, falls das POSIX-Subsystem vorhanden ist, auch bei Compiler- bzw.
  • Seite 304: Überblick

    Überblick COBOL2000 und POSIX 14.1 Überblick Die folgenden drei Abschnitte bieten einen Überblick über den Einsatz des Compilers im POSIX-Subsystem. 14.1.1 Übersetzen Für das Übersetzen von COBOL-Übersetzungseinheiten steht das POSIX-Kommando cobol zur Verfügung. Dieses Kommando ist in Abschnitt „Steuerung des Compilers“ auf Seite 311 ausführlich beschrieben.
  • Seite 305: Binden

    COBOL2000 und POSIX Überblick Ausgabeziele und Ausgabe-Code Der Compiler legt die Ausgabedateien im aktuellen Dateiverzeichnis ab, d.h. in dem Datei- verzeichnis, aus dem der Compilerlauf gestartet wird. Zeichen- und Zeichenketten-Konstanten im Programm (Objektdatei) werden immer im EBCDIC-Code abgelegt Sofern von der Möglichkeit Gebrauch gemacht wird, das POSIX Dateisystem auf einem ge- mounteten UNIX-Dateisystem abzulegen bzw.
  • Seite 306 Überblick COBOL2000 und POSIX Binden von Benutzermodulen Benutzereigene Module können statisch und dynamisch (d.h. zum Ablaufzeitpunkt) einge- bunden werden. Programme, die „unresolved externals“ auf Benutzermodule enthalten, können in der POSIX-Shell nicht gestartet werden. Eingabequellen für den Binder können sein: – vom Compiler erzeugte Objektdateien („.o“-Dateien) –...
  • Seite 307 COBOL2000 und POSIX Überblick Binde-Reihenfolge 1. Alle vom Compiler bei der Übersetzung generierten Objektdateien mit INCLUDE-MODULES-Anweisungen. 2. Alle explizit angegebenen Objektdateien („.o“-Dateien) mit INCLUDE-MODULES- Anweisungen und ggf. alle explizit angegebenen ar-Bibliotheken („.a“-Dateien). Für jede ar-Bibliothek wird eine eigene RESOLVE-BY-AUTOLINK-Anweisung abgesetzt. 3.
  • Seite 308: Testen

    Überblick COBOL2000 und POSIX 14.1.3 Testen Fertig gebundene Programme können mit der Dialogtesthilfe AID getestet werden. Voraussetzung hierfür sind Testhilfeinformationen (LSD), die der Compiler bei Angabe der Option -g (siehe Seite 318) erzeugt. Die Testhilfe AID wird von einem BS2000-Terminal aus mit dem POSIX-Kommando debug programmname [argumente] aktiviert.
  • Seite 309: Bereitstellen Der Übersetzungseinheit

    COBOL2000 und POSIX Bereitstellen der Übersetzungseinheit 14.2 Bereitstellen der Übersetzungseinheit Der COBOL2000-Compiler erkennt COBOL-Quelldateien an einem der folgenden Stan- dard-Suffixe: .cob oder .cbl COBOL-Quelldateien, deren Dateinamen nicht mit einem Standard-Suf- fix enden, können ebenfalls übersetzt werden, wenn die Dateinamen mit der Option -k an- gegeben werden (siehe Seite 312).
  • Seite 310 Bereitstellen der Übersetzungseinheit COBOL2000 und POSIX Beispiel 14-2 COPY-Anweisungen in der Übersetzungseinheit: COPY TEXT1 IN COPYLNK COPY TEXT2 IN COPYLNK Definieren und Exportieren der Umgebungsvariablen in der POSIX-Shell: export COPYLNK=/USERIDXY/copy1:/USERIDXY/copy2 Dadurch wird die Umgebungsvariable COPYLNK mit den durch Doppelpunkt getrennten Namen von zwei Dateiverzeichnissen initialisiert, die nach den POSIX-Dateien mit den COPY-Texten (TEXT1, TEXT2) durchsucht werden sollen.
  • Seite 311: Steuerung Des Compilers

    COBOL2000 und POSIX Steuerung des Compilers 14.3 Steuerung des Compilers Der COBOL2000-Compiler kann in der POSIX-Shell mit dem Kommando cobol aufgerufen und mit Optionen gesteuert werden. Aufruf-Syntax cobolËoptionË ... eingabedateiË ... Eingaberegeln 1. Optionen und Eingabedateien können in der Kommandozeile gemischt angegeben werden.
  • Seite 312: Allgemeine Optionen

    Steuerung des Compilers COBOL2000 und POSIX 14.3.1 Allgemeine Optionen –c Der Compilerlauf wird beendet, nachdem für jede übersetzte Quelldatei ein LLM erzeugt und in eine Objektdatei basisname.o abgelegt wurde. basisname ist der Name der Quelldatei ohne die Dateiverzeichnisbestandteile und ohne das Suffix .cbl oder .cob. Die Objektda- tei wird in das aktuelle Dateiverzeichnis geschrieben.
  • Seite 313 COBOL2000 und POSIX Steuerung des Compilers –W err-level Diese Option wird intern auf COMOPT MINIMAL-SEVERITY = err-level abgebildet. Die COMOPT MINIMAL-SEVERITY sollte deshalb nicht mit -C übergeben werden. In der Fehlerliste stehen keine Meldungen, deren Fehlergewicht kleiner ist als der angege- bene Wert.
  • Seite 314: Option Für Compiler-Anweisungen

    Steuerung des Compilers COBOL2000 und POSIX 14.3.2 Option für Compiler-Anweisungen –C comopt Für comopt können alle in der folgenden Übersicht aufgeführten COMOPT-Anweisungen in Voll- oder Abkürzungsschreibweise angegeben werden. Die Wirkungsweise der einzelnen COMOPTs ist in Kapitel „Steuerung des Compilers mit COMOPT-Anweisungen“...
  • Seite 315 COBOL2000 und POSIX Steuerung des Compilers COMOPT mögliche Abkürzungen FLAG-OBSOLETE={YES/NO} FLAG-REPORT-WRITER={YES/NO} FLAG-SEGMENTATION-ABOVE1={YES/NO} GENERATE-INITIAL-STATE={YES/NO} GEN-INIT-STA GENERATE-LINE-NUMBER={YES/NO} GEN-L-NUM GENERATE-SHARED-CODE={YES/NO} GEN-SHARE IGNORE-COPY-SUPPRESS={YES/NO} IGN-C-SUP IGNORE-OPTION-DIRECTIVES={YES/NO} IGN-O-DIR INHIBIT-BAD-SIGN-PROPAGATION={YES/NO} LINE-LENGTH=132 / 119..172 LINE-L LINES-PER-PAGE=64 / 20..128 LINES MARK-NEW-KEYWORDS={YES/NO} M-N-K MAXIMUM-ERROR-NUMBER=1..100 MAX-ERR MERGE-DIAGNOSTICS={YES/NO} M-DIAG MERGE-REFERENCES={YES/NO} M-REF PERMIT-STANDARD-DEVIATION={YES/NO} P-S-D RESET-PERFORM-EXITS={YES/NO} RES-PERF...
  • Seite 316: Option Zur Ausgabe Von Übersetzungsprotokollen

    Steuerung des Compilers COBOL2000 und POSIX 14.3.3 Option zur Ausgabe von Übersetzungsprotokollen –P „(listenangabe, ...)“ Mit dieser Option wird gesteuert, welche Übersetzungsprotokolle vom Compiler erzeugt werden. Diese Option wird intern auf COMOPT SYSLIST=(listenangabe,...) abgebildet. Die COMOPT SYSLIST sollte deshalb nicht mit -C übergeben werden. Mit listenangabe können (analog zu COMOPT SYSLIST im BS2000) folgende Werte in einer Liste angegeben werden: OPTIONS...
  • Seite 317: Optionen Für Den Bindelauf

    COBOL2000 und POSIX Steuerung des Compilers 14.3.4 Optionen für den Bindelauf Die folgenden Optionen für den Binder bleiben ohne Wirkung, wenn durch Angabe der Op- tion -c der Compilerlauf nach der Übersetzung beendet wird. Für jede solche ungenutzte Option gibt das cobol-Kommando eine Warnungsmeldung aus. Hinweise zum Binden allgemein und zur Binde-Reihenfolge finden Sie im Abschnitt „Binden“...
  • Seite 318: Testhilfe-Option

    Steuerung des Compilers COBOL2000 und POSIX Die Sortierbibliothek libsort.a (z.B.) ist nicht in den Standard-Dateiverzeichnissen, sondern als PLAM-Bibliothek im BS2000 installiert. Gleiches gilt für die Laufzeitsystembibliothek libc.a. Die Bibliotheken werden vom Binder in der Reihenfolge durchsucht, in der sie in der Kom- mandozeile angegeben werden.
  • Seite 319: Eingabedateien

    COBOL2000 und POSIX Steuerung des Compilers 14.3.6 Eingabedateien Der Compiler schließt aus der Endung des Dateinamens auf den Inhalt und führt die jeweils erforderlichen Übersetzungsschritte aus. Der Dateiname muss daher das Suffix enthalten, das gemäß den POSIX-Konventionen zum Datei-Inhalt passt. Folgende Konventionen gibt es: suffix Bedeutung...
  • Seite 320: Einführungsbeispiele

    Einführungsbeispiele COBOL2000 und POSIX 14.4 Einführungsbeispiele Übersetzen und Binden mit dem cobol-Kommando cobol -M BSPPROG hugo.cob übersetzt hugo.cob und erzeugt eine ausführbare Datei a.out. Das Programm mit dem PROGRAM-ID-Namen BSPPROG wird zum Hauptprogramm. cobol -o hugo -M BSPPROG hugo.cob übersetzt hugo.cob und erzeugt eine ausführbare Datei hugo. Das Programm mit dem PROGRAM-ID-Namen BSPPROG wird zum Hauptprogramm.
  • Seite 321: Unterschiede Zu Cobol2000 Im Bs2000

    COBOL2000 und POSIX Unterschiede zu COBOL2000 im BS2000 14.5 Unterschiede zu COBOL2000 im BS2000 Wegen der systemspezifischen Unterschiede zwischen POSIX und BS2000 sind bei der Entwicklung von COBOL-Programmen, die in POSIX ablaufen sollen, einige Besonderhei- ten hinsichtlich Sprachumfang und Ablaufverhalten zu beachten, die im Folgenden aufge- führt sind.
  • Seite 322 Unterschiede zu COBOL2000 im BS2000 COBOL2000 und POSIX – In der ALPHABET-Klausel spezifizierter Zeichensatz STANDARD-2 (International Reference Version of the ISO 7-Bit Code) wird in der CODE-SET Klausel nicht unterstützt. Ein derartiger OPEN wird zur Laufzeit mit FILE STATUS 30 abgewie- sen.
  • Seite 323: Sprachfunktionale Erweiterungen

    COBOL2000 und POSIX Unterschiede zu COBOL2000 im BS2000 14.5.2 Sprachfunktionale Erweiterungen Zugriff auf Kommandozeile Bei Ablauf in POSIX kann vom Programm aus mittels ACCEPT-/DISPLAY-Anweisungen in Verbindung mit den Sondernamen ARGUMENT-NUMBER und ARGUMENT-VALUE auf die Kommandozeile zugegriffen werden (siehe Handbuch „COBOL2000-Sprachbeschrei- bung“...
  • Seite 324: Unterschiede Bezüglich Der Programm-Betriebssystem-Schnittstellen

    Unterschiede zu COBOL2000 im BS2000 COBOL2000 und POSIX 14.5.3 Unterschiede bezüglich der Programm-Betriebssystem-Schnittstellen Für COBOL-Programme, die in POSIX ablaufen, ist in einigen Bereichen ein gegenüber dem Ablauf im BS2000 abweichendes Verhalten zu beachten: Ein-/Ausgabe geringer Datenmengen Den COBOL2000-Herstellernamen in ACCEPT-/DISPLAY-Anweisungen zur Ein-/Ausgabe kleiner Datenmengen sind in POSIX folgende Standard-Ein-/Ausgabeströme zugeordnet: COBOL2000 BS2000...
  • Seite 325 COBOL2000 und POSIX Unterschiede zu COBOL2000 im BS2000 – Nach einem erfolglosen OPEN INPUT auf eine Datei, für die nicht OPTIONAL angege- ben wurde, wird der Programmablauf nicht unterbrochen. – Einige Werte des Ein-/Ausgabezustands verändern sich in POSIX: BS2000 POSIX 93, 94, 95 –...
  • Seite 326: Verarbeiten Von Posix-Dateien

    Verarbeiten von POSIX-Dateien COBOL2000 und POSIX 14.6 Verarbeiten von POSIX-Dateien 14.6.1 Programmablauf in BS2000-Umgebung Ein COBOL-Programm, das im BS2000 entwickelt und zum Ablauf gebracht wird, kann unter bestimmten Voraussetzungen außer katalogisierten BS2000-Dateien auch Dateien aus dem POSIX-Dateisystem verarbeiten. Voraussetzungen – Beim Übersetzen muss die Compileroption ENABLE-UFS-ACCESS=YES bzw.
  • Seite 327 COBOL2000 und POSIX Verarbeiten von POSIX-Dateien – In der ALPHABET-Klausel spezifizierter Zeichensatz STANDARD-2 (International Reference Version of the ISO 7-Bit Code) wird in der CODE-SET Klausel nicht unterstützt. Ein derartiger OPEN wird zur Laufzeit mit FILE STATUS 30 abgewie- sen. –...
  • Seite 328 Verarbeiten von POSIX-Dateien COBOL2000 und POSIX Beispiel 14-7 für gemischte Dateiverarbeitung COBOL-Übersetzungseinheit: FILE-CONTROL. SELECT POSFILE ASSIGN TO "CUST1" SELECT BS2FILE ASSIGN TO "CUST2" Zuweisung der POSIX-Datei vor Aufruf des Programms: /SET-VAR SYSIOL-CUST1=‘*POSIX(/USERIDXY/customers/cust1)’ Zuweisung der BS2000-Datei vor Aufruf des Programms: /ADD-FILE-LINK CUST2,CUST.FILE U41113-J-Z125-6...
  • Seite 329: Programmablauf In Der Posix-Shell

    COBOL2000 und POSIX Verarbeiten von POSIX-Dateien 14.6.2 Programmablauf in der POSIX-Shell Ein COBOL-Programm, das in der POSIX-Shell oder im BS2000 entwickelt und zum Ablauf gebracht wird, kann POSIX-Dateien ohne besondere Maßnahmen beim Übersetzen und Binden (vgl. Programmablauf im BS2000) verarbeiten. Die Verarbeitung von BS2000-Dateien aus der POSIX-Shell ist nicht möglich.
  • Seite 330: Ein-/Ausgabezustände

    Verarbeiten von POSIX-Dateien COBOL2000 und POSIX 14.6.3 Ein-/Ausgabezustände Jeder Datei im Programm können mit der FILE STATUS-Klausel Datenfelder zugeordnet werden, in denen das Laufzeitsystem nach jedem Zugriff auf die Datei Informationen darü- ber hinterlegt, – ob die Ein-/Ausgabeoperation erfolgreich war und –...
  • Seite 331 COBOL2000 und POSIX Verarbeiten von POSIX-Dateien Einfacher Ein-/Ausgabezustand Wert Bedeutung erfolgreiche Ausführung keine weitere Information erfolgreicher READ, erlaubter doppelter Schlüssel erfolgreicher READ, aber Satzlängenfehler erfolgreicher OPEN auf nicht vorhandene OPTIONAL-Datei - erfolgreicher OPEN mit NO REWIND - erfolgreicher CLOSE mit NO REWIND, REEL/UNIT oder FOR REMOVAL erfolglose Ausführung: AT END-Bedingung erfolgloser READ, da Dateiende erreicht erfolgloser READ, da Schlüsselfeldlängenfehler...
  • Seite 332: Cobol2000 Und Posix

    Verarbeiten von POSIX-Dateien COBOL2000 und POSIX Erweiterter Ein-/Ausgabezustand (SIS-Code) Ein-/Ausgabezustand Bedeutung 0601 Dateiende ist erreicht 0602 Spezifizierter Satz existiert nicht 0603 Spezifizierter Satz existiert bereits 0604 Dateianfang ist erreicht 0605 Spezifizierter Link existiert nicht 0606 Dateiname ist länger als P_MAXFILENAME 0607 Pfad ist länger als P_MAXPATHSTRG 0608...
  • Seite 333 COBOL2000 und POSIX Verarbeiten von POSIX-Dateien Ein-/Ausgabezustand Bedeutung 0634 Aktueller Schlüssel in fehlerhafter Reihenfolge 0635 Spezifizierter Pfad ist undefiniert 0636 Es ist ein systemspezifischer Fehler aufgetreten 0637 Zeilenende ist erreicht 0638 Satz wurde abgeschnitten 0640 Kein Speicherplatz zur Dateierweiterung verfügbar 0643 Spezifizierter Öffnungsmodus ist unzulässig 0644...
  • Seite 334 Verarbeiten von POSIX-Dateien COBOL2000 und POSIX Ein-/Ausgabezustand Bedeutung 0671 Unbekanntes Kontrollzeichen gefunden 0672 Es konnte kein eindeutiger Dateiname erzeugt werden 0673 Letzter Teilsatz wurde nicht abgeschlossen 0674 Spezifizierter Wert für Positionierung ist unzulässig 0675 Satzformat ist nicht bestimmbar 0676 MAXSIZE ist nicht bestimmbar 0677 Interner PROSOS-D Fehler aufgetreten 0678...
  • Seite 335: Nutzbare Software Für Cobol-Anwender

    15 Nutzbare Software für COBOL-Anwender 15.1 Advanced Interactive Debugger AID Charakterisierung des Produktes AID ist ein leistungsstarkes Testsystem zur Fehler-Diagnose, zum Test und für die vorläu- fige Korrektur von Programm-Fehlern im BS2000. AID unterstützt das symbolische Testen von COBOL-, C-, C++, Assembler-, FORTRAN- und PL/1-Programmen und das nicht-symbolische Testen auf Maschinencode-Ebene aller Programmiersprachen des BS2000.
  • Seite 336 Advanced Interactive Debugger AID Nutzbare Software für COBOL-Anwender Der Anwender kann festlegen, dass AID den Programmablauf an definierten Adressen oder bei Ausführung ausgewählter Anweisungstypen oder beim Eintreten definierter Ereig- nisse unterbricht und dann Subkommandos ausführt. Ein Subkommando ist ein einzelnes Kommando oder eine Folge von AID- und BS2000-Kommandos.
  • Seite 337 Nutzbare Software für COBOL-Anwender Advanced Interactive Debugger AID – Ablaufverfolgung auf Statementebene Dynamische Ablaufverfolgung steuerbar über Statementklassifikation (z.B. Procedure trace, Controlflow trace, Assignment trace...) wird unterstützt. Ausgegeben werden bei AID die Sourcereferenz der durchlaufenen Statements, die der Statementklassifikation entsprechen. Dokumentation AID Basis-Handbuch [20] AID Testen von COBOL-Programmen [8] AID Testen auf Maschinencodeebene [21].
  • Seite 338: Library Maintenance System Lms

    Library Maintenance System LMS Nutzbare Software für COBOL-Anwender 15.2 Library Maintenance System LMS Charakterisierung des Produktes Das Bibliotheksverwaltungssystem LMS erstellt und verwaltet Programmbibliotheken und bearbeitet die darin enthaltenen Elemente. Programmbibliotheken sind PAM-Dateien des BS2000, die mit der Bibliotheks-Zugriffsme- thode PLAM (Program Library Access Method) bearbeitet werden. Daher werden sie auch als PLAM-Bibliotheken bezeichnet.
  • Seite 339 Nutzbare Software für COBOL-Anwender Library Maintenance System LMS Das Speichern mehrerer Dateien in einer Bibliothek entlastet den Systemkatalog, da dort nur die Bibliothek eingetragen ist und nicht jedes Element. Außerdem spart es Speicher- platz, da die Elemente in der Bibliothek in komprimierter Form abgespeichert werden. Unterstützung mehrerer Versionen Bei Verwendung der Delta-Technik werden von mehreren Versionen eines Elements nur die Unterschiede (Deltas) zur Vorgängerversion abgespeichert, was zusätzlich Speicher-...
  • Seite 340: Jobvariablen

    Jobvariablen Nutzbare Software für COBOL-Anwender 15.3 Jobvariablen Charakterisierung des Produktes Jobvariablen sind Datenobjekte zum Austausch von Informationen zwischen Benutzern ei- nerseits und Betriebssystem und Benutzern andererseits. Der Benutzer kann Jobvariablen einrichten und verändern. Er kann das Betriebssystem an- weisen, beim Eintreten gewisser Ereignisse bestimmte Jobvariablen auf vereinbarte Werte zu setzen.
  • Seite 341 Nutzbare Software für COBOL-Anwender Jobvariablen Überwachende Jobvariablen ● Die überwachende Jobvariable ist eine Spezialform der Benutzer-Jobvariablen. Sie wird einem Auftrag oder Programm zugeordnet. Name, Lebensdauer und Schutzattri- bute bestimmt der Benutzer. Im Gegensatz zur Benutzer-Jobvariable wird sie aber vom Betriebssystem mit fest vorgegebenen Werten versorgt, die den Status des zugeordne- ten Auftrags oder Programms widerspiegeln.
  • Seite 342: Datenbankschnittstelle Esql-Cobol

    Datenbankschnittstelle ESQL-COBOL Nutzbare Software für COBOL-Anwender 15.4 Datenbankschnittstelle ESQL-COBOL Charakterisierung des Produktes ESQL-COBOL (BS2000/OSD) V3.0 realisiert für COBOL-Anwendungen im BS2000/OSD die Anwender-Programmschnittstelle „embedded SQL“ zum Datenbanksystem SESAM/SQL-Server V5.0. Der SQL-Funktionsumfang von SESAM/SQL-Server V5.0 kann mit ESQL-COBOL (BS2000/OSD) V3.0 uneingeschränkt genutzt werden. ESQL-COBOL (BS2000/OSD) V3.0 ist als SQL-Precompiler lediglich zur Programment- wicklung erforderlich.
  • Seite 343: Universeller Transaktionsmonitor Openutm

    Nutzbare Software für COBOL-Anwender Universeller Transaktionsmonitor openUTM 15.5 Universeller Transaktionsmonitor openUTM openUTM erlaubt die einfache Erstellung und den Betrieb von Transaktionsanwendungen. Zur Programmerstellung steht eine genormte Programmschnittstelle (KDCS, DIN 66265) zur Verfügung, die von den meisten Programmiersprachen unterstützt wird. Zusammen mit dem Formatierungssystem FHS wird die Ein-/Ausgabe über Formate für Datenstationen unterstützt.
  • Seite 344: Entwicklungsumgebung Net Express® Mit Bs2000/Osd- Option

    Entwicklungsumgebung mit BS2000/OSD-Option Nutzbare Software für COBOL-Anwender ® 15.6 Entwicklungsumgebung Net Express mit BS2000/OSD- Option Der langjährige Partner Micro Focus bietet mit Net Express und der BS2000/OSD-Option eine auf Windows-Systemen ablaufende Entwicklungsumgebung für die Entwicklung von BS2000-COBOL-Anwendungen an. Die Entwicklungsumgebung von Net Express bietet mit der BS2000/OSD-Option alle Funk- tionen für eine schnelle und effiziente Entwicklung von BS2000-Anwendungen.
  • Seite 345 Nutzbare Software für COBOL-Anwender Entwicklungsumgebung mit BS2000/OSD-Option Moderner COBOL-Compiler Net Express enthält einen modernen Compiler, der auf den bewährten Stärken von COBOL basiert und für die Entwicklung von BS2000-Anwendungen die folgenden Highlights bietet: Kompatibilität zum COBOL2000-Compiler des BS2000 kann über eine Direktive einge- ●...
  • Seite 346 Entwicklungsumgebung mit BS2000/OSD-Option Nutzbare Software für COBOL-Anwender Mit dem Dialog-Test-Recorder können die Tastatureingaben und Bildschirmausgaben for- matierter openUTM-Dialoge protokolliert werden. Diese Aufzeichnungen lassen sich zur automatischen Wiederholung eines einmal protokollierten Testlaufs verwenden. Ein spezi- eller Viewer (DTRVIEW) ermöglicht das Vergleichen der protokollierten Testergebnisse und erlaubt bei Unterschieden eine schnelle Fehleranalyse.
  • Seite 347 Nutzbare Software für COBOL-Anwender Entwicklungsumgebung mit BS2000/OSD-Option TRACE-Funktion für Datenbankzugriffe Alle Datenbanksimulationen sind mit einer komfortablen TRACE-Funktion mit grafischer Oberfläche ausgestattet. An der Schnittstelle zwischen COBOL-Programm und Datenbank können alle übergebenen Parameter angezeigt und interaktiv verändert werden. Die Anzei- ge ist sowohl vor als auch nach dem Aufruf möglich, sodass die Auswirkungen der jeweili- gen Aktion sofort analysiert werden können.
  • Seite 348 Entwicklungsumgebung mit BS2000/OSD-Option Nutzbare Software für COBOL-Anwender U41113-J-Z125-6...
  • Seite 349: Meldungen Des Cobol2000-Systems

    16 Meldungen des COBOL2000-Systems Der COBOL2000-Compiler und das COBOL2000-Laufzeitsystem protokollieren umfas- send alle Fehler, die während der Übersetzung und beim Ablauf eines COBOL-Program- mes auftreten. Die dabei ausgegebenen Meldungen lassen sich in zwei Gruppen einteilen: 1. Meldungen, die sich auf Fehler in einer COBOL-Übersetzungseinheit beziehen: Sie werden vom Compiler am Ende der Übersetzung in einer Fehlerliste und/oder Fehler- datei ausgegeben und haben folgenden Aufbau: Msg-Index...
  • Seite 350 Meldungen des COBOL2000-Systems Achtung Werden Fehler gemeldet, deren Text mit SE-1 oder S.E. beginnt, ist in jedem Fall der Systemverwalter/-berater zu verständigen. Fehlerklasse Bedeutung Hinweismeldung Der Compiler hat in der Übersetzungseinheit Sprachmittel erkannt, die – Spracherweiterungen gegenüber der COBOL-Norm ANS85 darstellen, –...
  • Seite 351 Meldungen des COBOL2000-Systems 2. Meldungen – die der Compiler über den Ablauf und die Beendigung des Übersetzungslaufes ge- neriert (CBL90nn), – die das COBOL2000-Laufzeitsystem über den Ablauf und die Beendigung des An- wenderprogramms erzeugt (COB91nn). – des POSIX-Treibers für COBOL (CBL92nn) –...
  • Seite 352 Meldungen des COBOL2000-Systems Die Angabe COMOPT GENERATE-LINE-NUMBER=YES bzw. ERR-MSG-WITH-LINE-NR=YES in der SDF-Option RUNTIME-OPTIONS bewirkt, dass statt der Meldung COB9101 zu jeder Meldung des Programms die Meldung 9102 ausgegeben wird, die auch die Nummer der Übersetzungseinheitzeile enthält, bei de- ren Ausführung die Meldung ausgegeben wird. Die (im Verlauf der Übersetzung ausgegebenen) Meldungen CBL9004, CBL9017, CBL9095, CBL9097 und CBL9099 werden unterdrückt, wenn vor dem Aufruf des Com- pilers der Auftragsschalter 4 gesetzt wird.
  • Seite 353: Anhang

    17 Anhang 17.1 Aufbau des COBOL2000-Systems Das COBOL2000-System besteht aus den Modulen des Compilers und den Laufzeitmodu- len. Auf die Struktur des Compilers und die Namen der Module wird im Folgenden näher eingegangen. Die Laufzeitmodule für COBOL2000 sind im Common RunTime Environment (CRTE) enthalten (siehe CRTE-Benutzerhandbuch [2]).
  • Seite 354 Aufbau des COBOL2000-Systems Anhang Aufbau des Compilers BS2000 Initialisierung COMOPTS Quellprogramm von SYSDTA Quelldateneingabe Directive- Variablen komplettes Quellprogramm lexikalische Analyse verschlüss. Quellprogramm Quellprogramm Copy-Elemente syntaktisch in Biblioth. syntaktische Analyse korrektes Quellprogramm Datenstrukturanalyse SUBSCHEMA Referenzverarbeitung hohe Zwischensprache externes Repository semantische Analyse und niedrige Statementzerlegung Zwischenspr.
  • Seite 355: Das Cobol2000-Laufzeitsystem

    Anhang Aufbau des COBOL2000-Systems Das COBOL2000-Laufzeitsystem Das COBOL2000-Laufzeitsystem ist Bestandteil des Common RunTime Environment (CRTE), der gemeinsamen Laufzeitumgebung für COBOL2000- und C/C++-Programme. Das CRTE ist in einem eigenen CRTE-Benutzerhandbuch [2] beschrieben. Die COBOL2000-Laufzeitroutinen stellen dem COBOL2000-Compiler bekannte Unterpro- gramme dar. Sie können im wesentlichen in zwei Gruppen unterteilt werden: Unterprogramme für komplexe COBOL-Anweisungen Beispiele für komplexe COBOL-Anweisungen sind dem Handbuch „COBOL2000-Sprach- beschreibung“...
  • Seite 356: Close Für Initial / Cancel

    Aufbau des COBOL2000-Systems Anhang Name Funktion ITCMADPT Adaptermodul bei Partial-Bind-Technik ITCMAID1 AID-Anschlussmodul (Datenteil) ITCMECE1 ENTRY, CANCEL, EXIT Arbeitsbereich ITCMECE2 Tabelle für COMOPT OPTIMIZE-CALL-IDENTIFIER bzw. SDF CALL-IDENTIFIER =OPTIMIZE ITCMERF1 Fehleranalyseroutine für Ein-/Ausgabe ITCMINIT ILCS-Initialisierung ITCMMAT1 Daten für mathematische (IML...-) Funktionen ITCMMDP0 OCCURS DEPENDING (rekursiv) ITCMMEM1 ALLOCATE- und FREE-Arbeitsbereich...
  • Seite 357 Anhang Aufbau des COBOL2000-Systems Name Funktion ITCRCLA0 Vergleich ALL literal ITCRCLI0 CLOSE-Anweisung für indizierte Dateien ITCRCLL0 CLOSE-Anweisung für zeilensequenzielle Dateien ITCRCLR0 CLOSE-Anweisung für relative Dateien ITCRCLS0 CLOSE-Anweisung für sequenzielle Dateien ITCRCLX0 CLOSE-Anweiung für XML-Dateien ITCRCMD0 Ausführen eines BS2000-Kommandos ITCRCNA0 Vergleich nationale figurative Konstante ITCRCVB0 Umwandlung gepackt dezimal nach binär (10 bis 18 Ziffern) ITCRCVD0...
  • Seite 358 Aufbau des COBOL2000-Systems Anhang Name Funktion ITCRFMX0 Funktionen MAX, MIN, ORD-MAX, ORD-MIN, RANGE, MIDRANGE ITCRFNM0 Funktionen NUMVAL, NUMVAL-C ITCRFPV0 Funktion PRESENT-VALUE ITCRFRN0 Funktion RANDOM ITCRFST0 Funktionen REVERSE, UPPER-CASE, LOWER-CASE, DISPLAY-OF, NATIONAL-OF ITCRFVR0 Funktion VARIANCE ITCRHSW0 Setzen und Prüfen von Auftrags-/Benutzerschaltern ITCRIFA0 FCB-Initialisierung;...
  • Seite 359 Anhang Aufbau des COBOL2000-Systems Name Funktion ITCROIF1 OO: Initialisierungsroutine für Dateien in Objekten ITCROIS0 OO: Initialisierungsroutine für Klassen / Interfaces ITCROMD0 OO: Prüfroutine für Objektsicht (object- view) ITCROMS1 OO: Ausgabe von OO-Fehlermeldungen ITCRONW1 OO: Neues Objekt erzeugen und initialisieren ITCROOI0 Steuerroutine für Objektorientierte Initialisierung und Beendigung ITCROPI0 OPEN-Anweisung für indizierte Dateien...
  • Seite 360 Aufbau des COBOL2000-Systems Anhang Name Funktion ITCRSTP0 STOP literal-Anweisung ITCRTCA1 Klassentest-Tabelle für Test auf ALPHABETIC ITCRTCD1 Klassentest-Tabelle für Test auf NUMERIC (COMP-3 mit Vorz.) ITCRTCE1 Klassentest-Tabelle für Test auf NUMERIC (COMP-3 ohne Vorz.) ITCRTCL1 Klassentest-Tabelle für Test auf ALPHABETIC-LOWER ITCRTCN0 Klassentest für nationale Operanden ITCRTCP1 Klassentest-Tabelle für Test auf ALPHABETIC-UPPER...
  • Seite 361 Anhang Aufbau des COBOL2000-Systems Name Funktion ITCRXHC1 XHCS Konvertierungen ITCRXIT0 FILE STATUS und Fehlerbehandlungsroutine ITCRXLC0 Ausnahmebehandlung ITCRXPA0 XML PARSE-Anweisung ITCRXPC1 XML: Dokument-Datei-Verarbeitung ITCRXPF0 Potenzierung (Gleitpunkt) ITCRXPI0 Potenzierung (Ganzzahl) U41113-J-Z125-6...
  • Seite 362: Datenbankbedienung (Uds/Sql)

    Datenbankbedienung (UDS/SQL) Anhang 17.2 Datenbankbedienung (UDS/SQL) In COBOL2000-BC nicht unterstützt ! Eine Beschreibung des universellen Datenbanksystems UDS/SQL findet sich in den Hand- büchern „Entwerfen und Definieren“ [13], „Aufbauen und Umstrukturieren“ [14], „Anwen- dungen programmieren“ [15]. UDS/SQL-Datenbanken werden von Anwenderprogrammen bedient über –...
  • Seite 363 Anhang Datenbankbedienung (UDS/SQL) Übersetzen eines COBOL-DML-Programms Der COBOL2000-Compiler erzeugt aus einem COBOL-DML-Programm ein Programm- Modul und ein Subschema-Modul. Bei der Kompilierung des Anwenderprogramms muss der COBOL-Compiler die COSSD-Datei der betroffenen Datenbank lesen. Dazu gibt es folgende Möglichkeiten: 1. Die COSSD-Datei wird dem COBOL-Compiler explizit zugewiesen mit dem Kommando /ADD-FILE-LINK LINK-NAME=UDSCOSSD, - FILE-NAME=[:catid:][$userid.]dbname.COSSD...
  • Seite 364 Datenbankbedienung (UDS/SQL) Anhang Falls ADD-FILE-LINK oder SET-FILE-LINK-Kommandos sowohl für LINK=DATABASE als auch für LINK=UDSCOSSD vorliegen, wird nur das Verfahren für LINK=UDSCOSSD an- gewandt. Binden eines COBOL-DML-Programms Das Binden von COBOL-Programmen ist im Kapitel „Erzeugung und Aufruf ablauffähiger Programme“ ausführlich beschrieben. Bei COBOL-DML-Programmen ist jedoch zusätzlich zu beachten, dass je nach Wahl der DBH-Variante (=Database Handler) ein entsprechendes UDS/SQL-Connection-Modul mit einzubinden ist (siehe hierzu [15]).
  • Seite 365: Beschreibung Der Listen

    Anhang Beschreibung der Listen 17.3 Beschreibung der Listen In diesem Abschnitt werden anhand eines Programmbeispiels die Formate folgender Lis- ten kurz erläutert, die COBOL2000 im Verlauf einer Übersetzung ausgibt: – Steueranweisungsliste – Übersetzungseinheitliste – Adress-/Querverweisliste – Fehlermeldungsliste In den einzelnen Datensätzen einer Liste sind aus Gründen der Platzersparnis die Leerzei- chen nach dem letzten gedruckten Zeichen entfernt.
  • Seite 366: Steueranweisungsliste

    : 7.500- S170-30 OPERATING SYSTEM : BS2000 V16.0 COMPILER : COBOL2000 V01.5A00 TASK-SEQUENCE NUMBER : 1k59 USER-ID : CAC21 Copyright (C) Fujitsu Technology Solutions 2009 All Rights Reserved OPTIONS IN EFFECT ----------------- MODULE = COB SYSLIST = (OPTIONS,DIAG,MAP,SOURCE,XREF) GENERATE-LLM = YES SOURCE-ELEMENT = KOPIEREN.COB...
  • Seite 367: Übersetzungseinheitliste

    Anhang Übersetzungseinheitliste Übersetzungseinheitliste Jede Zeile einer Übersetzungseinheitliste ist in die folgenden Bereiche unterteilt: Anzeigenfeld Spalte 1 informiert über Fehler innerhalb der vom Benutzer vergebenen Nummerie- rung der Eingabesätze (Anzeige S) und über Verstöße gegen die maximale Zeilen- länge von 80 Zeichen beim Fixed-Format bzw. 248 Zeichen beim Free-Format (An- zeige T).
  • Seite 368 Übersetzungseinheitliste Anhang REL LOC enthält die Position einer Datendefinition bzw. eines Kapitel oder Paragrafen- namens relativ zum Modulanfang. LENGTH enthält die (dezimale) Länge des Bereichs im Modul, der einer Datendefinition zu- geordnet wurde. REF/DEF enthält die Folgenummern der Zeilen, die auf eine Definition Bezug nehmen, zu- sammen mit der Art dieser Referenz (Erläuterung der Referenzart siehe Abschnitt „Adressliste“...
  • Seite 369 Anhang Übersetzungseinheitliste U41113-J-Z125-6...
  • Seite 370 Übersetzungseinheitliste Anhang Als zweiter Teil der Übersetzungseinheitliste wird eine Bibliotheksliste ausgegeben. Ihr sind die Quellen zu entnehmen, aus denen das in dieser Übersetzung bearbeitete COBOL-Pro- gramm entstand. Für jede COPY-Anweisung wird eine Zeile angelegt, die folgende Infor- mationen enthält: (10) Folgenummer der Programmzeile, in der die COPY-Anweisung auftritt (11) Linkname aus der COPY-Anweisung...
  • Seite 371: Besonderheiten Der Übersetzungseinheitliste Für Free-Format

    Anhang Übersetzungseinheitliste Besonderheiten der Übersetzungseinheitliste für Free-Format Wesentliche, für den Benutzer sichtbare Unterschiede zwischen Fixed- und Free-Format betreffen das Listing. Im Listing erfolgt ein Umbruch der Free-Format-Zeile zu Teilzeilen von bis je 80 Zeichen Länge. Diese Teilzeilenlänge ergibt sich aus der alten Zeilenlänge (Sequence-Area + Indi- kator-Area + Programmtext-Area + Comment-Area).
  • Seite 372 Übersetzungseinheitliste Anhang Wird das verdichtete Listing (siehe Abschnitt „LISTING-Option“ auf Seite 70) eingeschaltet, sieht derselbe Listingausschnitt folgendermaßen aus: 00079 *> 00080 00081 add 1 to a. add 1 to b. add 1 to c. add 1 to d. add 1 to e. add 1 to f. 00014 00015 00016...
  • Seite 373: Die Formatsteueranweisungen Title, Eject, Skip

    Anhang Formatsteueranweisungen TITLE, EJECT, SKIP Die Formatsteueranweisungen TITLE, EJECT, SKIP Der COBOL2000-Compiler unterstützt die Formatsteueranweisungen TITLE, EJECT und SKIP. Mit diesen Anweisungen in der Übersetzungseinheit kann das Aussehen der Über- setzungseinheitliste beeinflusst werden. Für alle Formatsteueranweisungen gilt: – Sie dürfen nicht mit einem Punkt abgeschlossen werden. –...
  • Seite 374: Eject-Anweisung

    Formatsteueranweisungen TITLE, EJECT, SKIP Anhang EJECT-Anweisung Funktion Die Anweisung bewirkt, dass der nachfolgende Text der Übersetzungseinheitliste auf der nächsten Seite beginnt. Die Anweisung wirkt nicht, wenn ohnehin eine neue Seite beginnt. Format EJECT SKIP-Anweisung Funktion Die SKIP-Anweisung dient dazu, den nachfolgenden Text der Übersetzungseinheitliste um bis zu drei Zeilen vorzuschieben.
  • Seite 375 Anhang Formatsteueranweisungen TITLE, EJECT, SKIP Beispiel 17-1 Formatsteueranweisungen URLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLU IDENTIFICATION DIVISION. PROGRAM-ID. BSP. DATA DIVISION. LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (1) OU TITLE "WORKING-STORAGE SECTION" WORKING-STORAGE SECTION. 01 ALPHA1 PIC 99 VALUE 1. 01 BETA1 PIC 99 VALUE 2. 01 GAMMA1 PIC 99. LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR (2) OU TITLE "PROCEDURE DIVISION"...
  • Seite 376: Fehlermeldungsliste

    Fehlermeldungsliste Anhang Fehlermeldungsliste Die von COBOL2000 erzeugte Fehlermeldungsliste gibt Aufschluss über alle während der Übersetzung erkannten Syntax- und Semantikfehler. Nach der Überschriftszeile unterteilt eine Teilüberschriftszeile die nachfolgenden Fehler- meldungszeilen in folgende Bereiche: SOURCE SEQ NO gibt die Folgenummer der Übersetzungseinheitzeile an, in der der Fehler auftrat.
  • Seite 377: Adressliste

    Anhang Adressliste Adressliste Angabe des Programmteils, des Kapitels und des Programmnamens Dateiname, Dateifolgenummer und Adresse des Dateisteuerblocks aller im Pro- gramm verwendeten Dateien SOURCE SEQ-NO Folgenummer der Übersetzungseinheitzeile, in der die Definition auftritt MODULE REL ADDR Relative Anfangsposition einer Datendefinition innerhalb des Moduls GROUP REL ADDR Relative Anfangsadresse einer Datendefinition innerhalb einer 01-Stufe (sedezi- mal).
  • Seite 378 Adressliste Anhang (12) Schachtelungstiefe des Programms, beginnend bei 000 für das äußerste Pro- gramm. (13) ÜBERSETZUNGSEINHEITNAME / SECTION NAME / PARAGRAPH NAME Angabe des Übersetzungseinheitnamens und der darin vorhandenen Kapitel- und Paragrafennamen. COBOL2000 V01.5A00 KOPIEREN LOCATOR MAP LISTING 09:58:34 2009-02-12 PAGE 0004 DATA DIVISION KOPIEREN...
  • Seite 379: Literatur

    Literatur Die Handbücher sind online unter http://manuals.ts.fujitsu.com zu finden oder in gedruckter Form gegen gesondertes Entgelt unter zu bestellen. http://manualshop.ts.fujitsu.com COBOL2000 (BS2000/OSD)) COBOL-Compiler Sprachbeschreibung CRTE (BS2000/OSD) Common Runtime Environment Benutzerhandbuch BS2000/OSD-BC Kommandos Benutzerhandbuch BS2000/OSD-BC Einführung in das DVS Benutzerhandbuch SDF (BS2000/OSD)
  • Seite 380: Esql-Cobol Für Sesam/Sql-Server

    Literatur BS2000 TSOSLNK Benutzerhandbuch [10] BLSSERV Bindelader-Starter in BS2000/OSD Benutzerhandbuch [11] LMS (BS2000/OSD) SDF-Format Benutzerhandbuch [12] BS2000/OSD-BC Systeminstallation Benutzerhandbuch [13] UDS/SQL (BS2000/OSD) Entwerfen und Definieren Benutzerhandbuch [14] UDS/SQL (BS2000/OSD) Aufbauen und Umstrukturieren Benutzerhandbuch [15] UDS/SQL (BS2000/OSD) Anwendungen programmieren Benutzerhandbuch [16] ESQL-COBOL (BS2000/OSD) ESQL-COBOL für SESAM/SQL-Server Benutzerhandbuch...
  • Seite 381 Literatur [20] AID (BS2000) Advanced Interactive Debugger Basishandbuch Benutzerhandbuch [21] AID (BS2000/OSD) Testen auf Maschinencode-Ebene Benutzerhandbuch [22] BINDER Binder in BS2000/OSD Benutzerhandbuch [23] openUTM (TRANSDATA, BS2000) Planen und entwerfen Benutzerhandbuch [24] openUTM (BS2000/OSD, UNIX, Windows) Anwendungen programmieren mit KDCS für COBOL, C und C++ Benutzerhandbuch [25] openUTM (BS2000/OSD)
  • Seite 382 Literatur [31] C/C++ (BS2000/OSD) POSIX-Kommandos des C/C++-Compilers Benutzerhandbuch [32] BS2000/OSD Softbooks Deutsch CD-ROM [33] XHCS (BS2000/OSD) 8-bit-Code- und Unicode-Unterstüzung im BS2000/OSD Benutzerhandbuch [34] IMON (BS2000/OSD) Installationsmonitor Benutzerhandbuch U41113-J-Z125-6...
  • Seite 383: Stichwörter

    Stichwörter Ablauffähiges Programm Abkürzungen von COBOL-Verben Begriffserklärung Dereferenzierungsoperator Binden mit TSOSLNK Dialogtesthilfe 142, Erzeugung Funktionsbeschreibung Laden Grundfunktionen permanentes LSD-Namen temporäres SDF-Operanden Ablaufverfolgung Testen von geschachtelten Programmen ACCEPT-Anweisung Testen von objektorientierten Lesen aus Systemdateien Programmen Lesen von Compiler- und Testen von Programmen mit Typen Betriebssysteminformationen Voraussetzungen für das Testen Lesen von Jobvariablen...
  • Seite 384 Stichwörter Aufruf (Forts.) Bindemodul eines permanenten Programms Begriffserklärung eines temporären Programms Verarbeitung durch den Binder Aufrufhierarchie prüfen 82, Binden Auftrag, Begriffserklärung eines COBOL-DML-Programms Auftragsschalter eines Großmoduls Abfrage in COBOL-Programmen eines permanenten Programms Bedingungsnamen für Schalterzustände eines Programms mit Segmentierung Beispiel eines temporären Programms COBOL-Sprachmittel für den Zugriff mit BINDER 129,...
  • Seite 385 Stichwörter CLOSE-Anweisung COMOPT-Anweisungen (Forts.) indizierte Dateien CHECK-CALLING-HIERARCHY relative Dateien CHECK-DATE sequenzielle Dateien CHECK-FUNCTION-ARGUMENTS COBLIB,COBLIB1 bis COBLIB9, Linknamen CHECK-PARAMETER-COUNT COBOBJCT, Linkname CHECK-REFERENCE-MODIFICATION cobol, Kommando (POSIX) CHECK-SCOPE-TERMINATORS COBOL-Anweisungen CHECK-SOURCE-SEQUENCE Ausgabe in Systemdateien CHECK-TABLE-ACCESS Eingabe aus Systemdateien CONCATENATE-XML-LINES Lesen von Compiler- und DEFAULT-CALL-CONVENTION Betriebssysteminformationen ELABORATE-SEGMENTATION Zugriff auf Jobvariablen...
  • Seite 386 Stichwörter COMOPT-Anweisungen (Forts.) Compilervariablen ROUND-FLOAT-RESULTS-DECIMAL Verwendung in BS2000/OSD SET-FUNCTION-DEFAULT Verwendung in POSIX SHORTEN-OBJECT composed-name (Datentyp) SHORTEN-XREF CONCATENATE-XML-LINES, Comopt SORT-EBCDIC-DIN CONTINUE-AFTER-MESSAGE, Comopt SORT-MAP COPY-Elemente SOURCE-ELEMENT Eingabe SOURCE-VERSION in POSIX-Dateisystem SUPPRESS-LISTINGS Linknamen für Bibliotheken SUPPRESS-MODULE COPY-EXPANSION, SDF-Operand TERMINATE-AFTER-SEMANTIC COSSD-Datei TERMINATE-AFTER-SYNTAX CPU-TIME, CPU-Zeit-Information TEST-WITH-COLUMN1 CROSS-REFERENCE, SDF-Operand 72, UPDATE-REPOSITORY...
  • Seite 387 Stichwörter Dateien (Forts.) Direktiven Zuweisung ändern, Beispiel DEFINE Zuweisungen katalogisierter Dateien IMP 113, 114, Dateikettungsname (Linkname) DISPLAY-Anweisung Dateimerkmale Ausgabe in Systemdateien indizierte Dateien Schreiben in Jobvariablen relative Dateien Druckdateien sequenzielle Dateien COBOL-Sprachmittel für die Erstellung Dateiorganisation SYMBOLIC CHARACTERS-Klausel indizierte DVS (Dateiverwaltungssystem) relative DVS-Code sequenzielle...
  • Seite 388 Stichwörter Elementnamenbildung bei Modulausgabe Fixed-Format ENABLE-COBOL85-KEYWORDS-ONLY, Fixpunktausgabe Comopt für Sortierprogramme ENABLE-INITIAL-STATE, SDF-Operand Fixpunktdatei ENABLE-KEYWORDS, SDF-Operand für Sortierprogramme ENABLE-UFS-ACCESS, Comopt FLAG-NONSTANDARD, Comopt ENABLE-UFS-ACCESS, SDF-Operand FLAG-OBSOLETE, Comopt ENABLE-XML-PROCESSING, Comopt FOR REMOVAL-Angabe END-Anweisung, Quelldateneingabe Formatsteueranweisungen ENTRY, TSOSLNK-Operand Free-Format Eröffnungsarten FUNCTION-ARGUMENTS, SDF-Operand indizierte Dateien FUNCTION-ERR-RETURN, SDF-Operand relative Dateien Funktionsargumente prüfen 82, 96,...
  • Seite 389 Stichwörter IMP Direktive Interface (parametrisiert) IMP LISTING-OPTIONS INVOKE IMP PRINT-Direktiven ISAM-Datei IMP RUNTIME-ERRORS indizierte Dateiorganisation IMPLICIT-SCOPE-END, SDF-Operand nutzbarer Bereich Indexblöcke, indizierte Dateien READ...WITH NO LOCK Indizierte Dateien relative Dateiorganisation ACCESS MODE-Klausel 243, Simultanverarbeitung ALTERNATE RECORD START...WITH NO LOCK ASSIGN-Klausel ISO-7-Bit-Code, Dateien im BLOCK CONTAINS-Klausel Blockteilung Job, Begriffserklärung...
  • Seite 390 Stichwörter Laufzeitmeldungen Listing Laufzeitsystem 119, LISTING-Option Moduln Laufzeitumgebung, CRTE Bindelademodul LAYOUT, SDF-Operand Erzeugen mit dem BINDER 129, LIBFILES, Comopt LLM-Format LIBLINK, Linkname 75, Objektdatei LIBRARY, SDF-Operand LMS, Leistungsbeschreibung LINE-LENGTH, Comopt LOAD-PROGRAM-Kommando LINE-SIZE, SDF-Operand LOCLINK, Linkname LINES-PER-PAGE, Comopt Logischer Block LINES-PER-PAGE, SDF-Operand lp-Kommando Linkname, LIBLINK LSD (List for Symbolic Debugging)
  • Seite 391 Stichwörter Methode (objektorientiert) Objektorientierte COBOL-Programme MINIMAL-SEVERITY, Comopt testen MINIMAL-WEIGHT, SDF-Operand Objektprogramm, Begriffserklärung Mischen von Datensätzen OM-Format MODIFY-SDF-OPTIONS, SDF-Kommando OPEN EXTEND Modul indizierte Dateien Begriffserklärung relative Dateien Objektmodul 16, 37, sequenzielle Dateien Modulausgabe OPEN I-O bei COMOPT-Steuerung indizierte Dateien bei SDF-Steuerung relative Dateien Elementnamenbildung sequenzielle Dateien...
  • Seite 392 Stichwörter P-S-D, Comopt Qualifikation PADDING-FACTOR-Operand Quelldateneingabe 26, PAM-Block bei COMOPT-Steuerung 91, PAM-Datei, Struktur bei SDF-Steuerung Pamkey mit ASSIGN-SYSDTA-Kommando Parametrisierte Interfaces mit dem ADD-FILE-LINK-Kommando Parametrisierte Klassen mit der END-Anweisung PERMIT-STANDARD-DEVIATION Steuern mit ASSIGN-SYSDTA- Physischer (Daten)block Kommando PLAM-Bibliothek Quelleinheit Eigenschaften Querverweisliste Eingabe der Übersetzungseinheit Anforderung 73, 74, 102, Plattenformate Beschreibung...
  • Seite 393 Stichwörter Relative Dateien (Forts.) Eröffnungsarten S-Variable 33, 171, FILE STATUS-Klausel 222, SAM-Datei, sequenzielle Dateiorganisation FILE STATUS-Werte Satzformate Merkmale indizierte Dateien OPEN-Anweisung relative Dateien OPTIONAL-Angabe sequenzielle Dateien ORGANIZATION-Klausel Satzlängenfeld Programmskelett Schlüssel vereinbaren READ-Anweisung indizierte Dateien RECORD-Klausel relative Dateien RELATIVE KEY-Klausel Schlüsseldatenfeld Satzformate Schlüsselwort-Operanden (SDF) Schlüsselvereinbarung...
  • Seite 394 Stichwörter SDF-Operanden (Forts.) Semantikprüfung der Übersetzungseinheit NAME-INFORMATION SEPARATE-TESTPOINTS, Comopt OPTION-DIRECTIVES Sequenzielle Dateien OPTIONS ACCESS MODE-Klausel OUTPUT ASSIGN-Klausel PREPARE-FOR-JUMPS BLOCK CONTAINS-Klausel PROC-ARGUMENT-NR CLOSE-Anweisung RECURSIVES-CALLS COBOL-Sprachmittel REF-MODIFICATION Datensatzerklärung REPORT-2-DIGIT-YEAR Druckdateien erstellen RETURN-CODE Ein-/Ausgabeanweisungen Schlüsselwort-Operanden Ein-/Ausgabezustände SEGMENTATION Eröffnungsarten SHAREABLE-CODE FILE STATUS-Klausel 196, SORTING-ORDER FILE STATUS-Werte SOURCE im ASCII-Code...
  • Seite 395: Start-Program

    Stichwörter SHORTEN-OBJECT, Comopt Sortieren und Mischen (Forts.) SHORTEN-XREF, Comopt Sortierdatei Simultanverarbeitung Sortierdateierklärung Aktualisierung von Datensätzen 263, Wiederanlauf Beispiele (ISAM) Sortierprogramm Datensatz entsperren 264, Sortierung nach DIN 85, Datensatzsperre 263, SORTIN, Linkname Datensatzsperre (ISAM) SORTING-ORDER, SDF-Operand 73, Deadlock (PAM) SORTINnn, Linkname ISAM-Dateien SORTOUT, Linkname PAM-Dateien...
  • Seite 396 Stichwörter Steueranweisung Task-Information TITLE TERMINAL, Herstellername Steueranweisungsliste TERMINAL-INFO Anforderung 71, 102, TERMINATE-AFTER-SEMANTIC, Comopt Beschreibung TERMINATE-AFTER-SYNTAX, Comopt Steuerung der Quelltextmanipulation TEST-SUPPORT-Option Steuerung des Compilers TEST-WITH-COLUMN1, Comopt mit COMOPT-Anweisungen 40, Testen mit Compiler-Direktiven 40, Ablaufverfolgung mit SDF 40, mit benutzerdefinierten Typen Möglichkeiten mit Testhilfezeilen STMT-ADDRESS, SDF-Operand objektorientierte Programme...
  • Seite 397 Stichwörter Typbezogene Zeiger USE-APOSTROPHE, Comopt Testen mit AID USW-0,...,USW-31 Typedef-Klausel Testen mit AID Verarbeitung Typen XML-Dokumente Testhilfen Verarbeitung, katalogisierter Dateien Verarbeitungsformen Überlagerungsstruktur indizierte Dateien Überlaufblock relative Dateien Überschriftszeile in Übersetzungslisten sequenzielle Dateien Übersetzen Vergleiche einer Übersetzungseinheit Typedef-Klausel einer Übersetzungsgruppe VERSION, SDF-Operand 60, eines COBOL-DML-Programms VERSION-Option Meldungen...
  • Seite 398 Stichwörter Zeichensatzerkennung XML-Dokument Zeiger, typbezogen Testen mit AID Zeilensequenzielle Dateien Zugriffsarten indizierte Dateien relative Dateien sequenzielle Dateien Zugriffsmethoden des DVS Zusätze zu Datentypen (SDF) Zuweisung an Compilervariablen Zuweisung eines Repository Zuweisungen Typedef-Klausel U41113-J-Z125-6...

Inhaltsverzeichnis