Verarbeitungsprogramm

 

2. 1. Aufruf der Verarbeitung

Die DORADO Verarbeitung bietet die Möglichkeit, auf variable Weise Listen von Datenbankobjekten zu erzeugen. Aufbau und Inhalt dieser Listen können dabei mit Hilfe der DORADO Verarbeitungssprache frei gestaltet werden.

Die Verarbeitung wird aus der DORADO-Grundauswahl über die Anwahl F. ausgewählt. Es erscheint daraufhin eine Bildschirmmaske mit folgenden Eingabefeldern:

 

Zieldatei

Zunächst wird der Name der Zieldatei angefragt, d.h. der Name des Textbausteins, unter dem die erzeugte Liste abgespeichert werden soll.

Hier kann ein beliebiger Textbausteinname eingegeben werden. Dieser wird vom DORADO ergänzt durch die Vorkennung für Ausgabelisten. Diese ist im allgemeinen identisch mit der Objektvorkennung, also Datenbankkennung gefolgt von einem Minuszeichen. Innerhalb DORADOs wird diese Vorkennung nie mit angegeben, wird eine erzeugte Liste jedoch mal außerhalb vom DORADO z.B. über die Ablageverwaltung aufgerufen, so muß der vollständige Name einschließlich Vorkennung angegeben werden.

Wenn bereits ein Textbaustein mit diesem Namen existiert, so wird dieser durch den Verarbeitungslauf ohne weitere Warnung überschrieben.

 

DS-Datei

Unter "DS-Datei:" wird der Name einer DS-Datei angegeben, die beispielsweise zuvor im Abfragen erzeugt worden ist.

In dieser DS-Datei müssen alle Datenbankobjekte vermerkt sein, die in die Liste aufgenommen werden sollen, und zwar in der gewünschten Reihenfolge.

Diese Reihenfolge kann über das Sortieren festgelegt werden.

Auch hier kann man wieder durch Eingabe von

F7

auf die Standard-DS-Datei zugreifen.

 

Soll nur genau ein einzelnes Objekt verarbeitet werden, so wird hier dessen Objektnummer eingegeben, und die Eingabe mit

F7

abgeschlossen.

 

Steuerdatei

Als letztes wird nach der Steuerdatei gefragt. Hier gibt man den Namen eines Textbausteins ein, der den Aufbau der zu erzeugenden Liste beschreibt, der also das sogenannte Verarbeitungsprogramm bzw. die Verarbeitungsvorschrift enthält.

Steuerbausteine werden in der Regel im Textsystem erzeugt, wobei bei Zugriff außerhalb vom DORADO auch hier die in der Datenbankbeschreibung festgelegte Textbausteinkennung (i.a. Datenbankkennung gefolgt von einem Minuszeichen) vorangestellt werden muß. Bei der Eingabe des Textbausteinnamens im Verarbeitungsprogramm wird diese Vorkennung nicht mit angegeben.

Die Anfragen nach der Zieldatei und nach der DS-Datei können mit einer leeren Eingabe beantwortet werden. Dann wird mit Mitteln der Verarbeitungs-Sprache eine Zieldatei bzw. eine zu verarbeitende DS-Datei spezifiziert. In jedem Fall muß aber immer der Name einer Steuerdatei eingegeben werden. Sie ist die zentrale Komponente der Verarbeitung.

 

2. 2. Ablauf der Verarbeitung

 

Ein Verarbeitungsprogramm besteht normalerweise aus drei Teilen:

 

Kopf

derKopf wird genau einmal vor dem ersten Datenbankobjekt in die Ziel-Datei ausgegeben wird.
Er enthält im Normalfall ein Lineal sowie einen Überschriftstext.

Rumpf

der Rumpf wird für jedes Datenbankobjekt, das in der DS-Datei vermerkt ist, einmal abgearbeitet .
Er wird durch

Vc (

eingeleitet und geht bis zum

Vc )

Alles, was zwischen diesen beiden Zeichenfolgen steht, wird vom Verarbeitungsprogramm für jedes Datenbankobjekt einmal durchlaufen.

Fuß

Der Fuss folgt anschließend an den Rumpf. Er wird wie der Kopf nur einmal in die Zieldatei ausgegeben, und zwar nach der Verarbeitung des letzten in der DS-Datei vermerkten Datenbankobjekts.

Er kann beispielsweise dazu benutzt werden, einen abschließenden Fußtext unter eine erzeugte Liste zu schreiben.

 

 

Kopf, Rumpf und Fuß dürfen beliebig lang sein. Sowohl Kopf als auch Fuß können aber auch in der Steuerdatei fehlen. Vc( und Vc) dürfen fehlen, wenn weder ein Kopf noch ein Fuß gefordert wird. Der gesamte Inhalt des Steuerbausteins wird dann für alle Objekte der DS-Datei jeweils einmal durchlaufen.

I

nnerhalb der drei Bestandteile Kopf, Rumpf und Fuß können Texte und Befehle in beliebiger Reihenfolge und Mischung auftreten.

Beispiel:  

Das folgende zeigt eine Verarbeitungsvorschrift zum Erzeugen von Adressaufklebern

Vc A1
Vc A2
Vc A3
Vc A4
Vc A5
Vc A6

Hierbei wird Bezug genommen auf eine Adress-Datenbank, in der die Anschriftenfelder mit A1 bis A6 bezeichnet sind.

Das Ergebnis könnte wie folgt aussehen:

Herrn
Emil Mustermann

Kleine Dorfstr. 124

12345 Hintertupfingen

 

 

Beispiel:  

Für die Telefondatenbank mit der Kennung T existiert folgende Steuerdatei unter dem Namen T-STEUER:

 

TELEFONVERZEICHNIS

Name, Vorname Telefon

Vc(
VcName, VcVorname Vc Telefon
Vc)

Ende der Liste

 

Es wird eine DS-Datei unter dem Namen EINIGE im Abfragen erzeugt und nach Namen sortiert. Aufruf der Verarbeitung in der Form

 

Zieldatei: LISTE
DS-Datei: EINIGE
Steuerdatei: STEUER

 

erstellt einen Textbaustein mit dem Namen T-LISTE und beispielhaft folgendem Inhalt:

TELEFONVERZEICHNIS

Name, Vorname Telefon

Blocksberg, Bibi 0123 / 454545
Mustermann, Erika 089 / 999999
Wacker, Willi 02761 / 111178

Ende der Liste

 

 

 

2. 3. Zusammenspiel Sortieren und Verarbeitung

 

2. 3. 1. Arbeitsweise des Sortierers

Der DORADO-Sortierer erhält als Eingabe eine DS-Datei, sortiert die darin vermerkten Objekte nach unterschiedlichen Kriterien und Modi, und erstellt unter dem gleichen Namen eine neue DS-Datei, in der die Objekte in der sortierten Reihenfolge vermerkt sind. Eventuell wird dabei neben der Objektnummer noch Zusatzinformation abgespeichert.

Es existieren zwei grundsätzlich verschiedene Sortiermodi

Zur Indexsortierung existieren die Varianten:

Bei Sortieren mit Objektzugriff unterscheidet man nach:

Diese Sortiermodi existieren sowohl auf- als auch absteigend.

Nachfolgend sind stichpunktartig einige Unterschiede zwischen den grundsätzlichen Sortierarten aufgezählt.

Indexsortierung
nur nach selektierbaren Feldern möglich
nur einstufig
nur aufsteigend
nur nach ASCII-Code
Sortierung von Mehrfachfeldern möglich
kein Zugriff auf die Einzelobjekte sondern nur auf Indexdateien

 

Sortieren mit Objektzugriff
nach allen Feldern möglich
mehrstufig möglich
auf- oder absteigend
nicht nur nach ASCII, sondern auch lexikographisch bzw. gemäß beliebiger Soriertabelle
Mehrfachfelder sind nicht gleichwertig sortierbar
jedes Objekt wird eingelesen

 

2. 3. 2. Mehrfachsortieren


Beim normalen Sortieren ist die erzeugte DS-Datei genauso lang wie die Eingabe-DS-Datei. Lediglich die Reihenfolge der Einträge hat sich verändert. Beim Mehrfachsortieren ist dagegen die erzeugte Datei im allgemeinen (wesentlich) länger.


Beim Mehrfachsortieren nach einem Feld werden alle Elemente, die zu diesem Feld gehören, gleichwertig behandelt. Jedes Datenbankobjekt wird für jedes Element des Mehrfachfeldes, bei dem in diesem Objekt Information eingetragen ist, einmal einsortiert, und zwar jeweils an den Stellen, wo die einzelnen Feldinhalte sich einordnen.


Mehrfachsortieren ist nur möglich im Rahmen der Indexsortierung, also nur bei selektierbaren Feldern. Ferner ist sie nur sinnvoll, wenn es sich dabei um ein Feld handelt, das mehrfach auftritt.

 

Beispiel:   Die Felder Stichwort oder Verfasser in einer Literaturdatenbank

 

 

2. 3. 3. Sortier-Zusatzinformation

Üblicherweise besitzen DS-Dateien folgenden Aufbau:
erst kommt ein mehrzeiliger Kopf, danach folgt für jedes Objekt eine Zeile, in der die Objektnummer (mit vorangestellter Datenbankkennung) steht.

Wird im Sortierprogramm die Frage:

Sortierschlüssel speichern (J/N):

im Sortierprogramm bejaht, so wird in der erzeugten DS-Datei hinter der Objektnummer zusätzlich der Sortierschlüssel, d.h. der Inhalt der Felder, nach denen sortiert wurde, vermerkt. Der Sortierschlüssel wird von der Objektnummer durch ein Tabulatorzeichen abgetrennt. Innerhalb des Sortierschlüssels stehen bei mehrstufiger Sortierung Tabulatoren als Trennzeichen zwischen den Inhalten der verschiedenen Sortierfelder.

Beim Mehrfachsortieren wird diese Sortier-Zusatzinformation immer in die DS-Datei übernommen.

Bereits in der DS-Datei vorhandene Sortier-Zusatzinformation wird bei Indexsortierung grundsätzlich entfernt. Bei Sortierung mit Objektzugriff kann sie mit in der Sortierreihenfolge berücksichtigt werden, indem als Feldname ein * eingegeben wird.

Bei Sortierung mit Objektzugriff kann die Objektnummer berücksichtigt werden, wenn als Feldname Nr eingegeben wird. Dies ist natürlich nur dann sinnvoll, wenn mehrstufig sortiert wird.

In diesem Zusammenhang sei erwähnt, daß das komplexe Sortieren nicht stabil ist. Das bedeutet, wenn mehrere Objekte den gleichen Sortierschlüssel liefern, so ist die Reihenfolge, in der sie einsortiert werden, rein zufällig. Insbesondere werden sie nicht unbedingt in ihrer Eingabereihenfolge einsortiert.

In DS-Dateien, die durch das Abfrageprogramm erzeugt worden sind, sind die Objekte in der Reihenfolge ihrer Nummern eingetragen. In diesem Fall, oder wenn bereits eine Sortierung mit Speichern von Zusatzinformation vorangegangen ist, kann man zufällige Instabilitäten in der Sortierreihenfolge verhindern, indem man beim komplexen Sortieren mehrstufig arbeitet und als letztes Sortierfeld in einem Fall die Objektnummer (Nr) oder im anderen Fall die Zusatzinformation (*) angibt.

 

2. 3. 4. Sortier-Zusatzinformation in der Verarbeitung

Enthält eine DS-Datei Sortier-Zusatzinformation, so wird diese automatisch bei der Verarbeitung eines Objektes auf Stringvariable zugewiesen. Die Zusatzinformation wird an den Tabulator-Stellen aufgesplittet. Die daraus entstehenden Zeichenfolgen werden von links nach rechts auf die Variablen a$, b$ und folgende zugewiesen.

 

2. 4. Schutzmechanismen in der Verarbeitung

 

2. 4. 1. Listenschutz

Existiert bei einem Verarbeitungslauf der angegebene Ausgabebaustein bereits und ist zusätzlich geschützt, so wird er zu Beginn der Verarbeitung gelöscht und normalerweise anschließend ohne Schutzmechanismen neu erzeugt.

Bei Bedarf können Ausgabedateien der Verarbeitung jedoch auch geschützt werden, ebenso wie die automatisch beim Abfragen erstellten Protokolldateien.

Dieser Schutzmechanismus kann durch den Befehl

*Listenschutz

in der Datenbank-Konfiguration aktiviert werden. Die Ausgabedateien der Verarbeitung werden dann ebenso wie die automatisch erstellten Protokollbausteine mit Benutzer-Leseschutz versehen.

Dabei ist jedoch folgendes zu beachten: Um eine neue geschützte Ausgabedatei erstellen zu können, muß eine bereits existierende Originaldatei zuvor gelöscht werden. Dazu muß der Benutzer die Berechtigung haben. Dies führt bei 'normalen' Benutzern zu Problemen, wenn die bereits existierende Datei nicht durch den Benutzer selbst sondern durch jemand anderen erstellt worden ist.

Aus diesem Grund wird (falls Listenschutz konfiguriert ist) bei den vom Abfragen erzeugten Ausgabedateien zusätzlich die Benutzernummer angehängt. Die Protokolldateien heißen dann also

Vorkennung p p e - b

Dabei bedeutet:

Vorkennung Vorkennung für Textdateien, meist k-, falls k die Datenbankkennung
p Platzkennung
e Ebenennummer
b Benutzernummer

 

Die Namen der Ausgabedateien einer Verarbeitung werden jedoch nicht automatisch vom DORADO erzeugt. Im Hinblick auf die Konstruktion der Abläufe kann hier auch keine automatische Namensergänzung durch das DORADO erfolgen. Es liegt in der Verantwortung des Anwenders bzw. Datenbank-Einrichters, bei Listenschutz für geeignete Namensgebung zu sorgen.

Da die Ausgabedateien normalerweise platzspezifisch sind, kann es jedoch nur dann zu Problemen kommen, wenn an einem Arbeitsplatz mehrere Mitarbeiter unter verschiedenen Benutzernummern arbeiten.

 

2. 4. 2. Schutz vor beliebigen Verarbeitungen

Für den Namen der Verarbeitungsteuerdatei kann eine Vorgabeliste definiert werden, die als Balkenauswahl vorgelegt wird, wenn unter Steuerdatei eine leere Eingabe gemacht wird. Die Vorgabe erfolgt in der Datei

VER+anwahl

bzw.

VER+anwahl+Benkürzel

vom Typ 30.

Existiert für einen Benutzer mit Status B die benutzerspezifische Datei, so darf dieser nur noch Steuerdateien ausführen, die in der Vorgabedatei aufgeführt sind.