Kapitelübersicht
13 Join-Techniken im ASS
13.1 Arbeitsgebietsuebergreifende Auswertung
13.1.1 AG-Uebergreifende Auswertung ohne Join
13.1.2 AG-Uebergreifende Auswertung mit Join
13.1.3 AG-Uebergreifende Auswertung mit NODUPJOIN
13.1.4 JOIN_NURNN und NDJOIN_NURNN
13.2 Zusammenfuehrung mehrerer Anforderungsergebnisse mit Hilfe des Anforderungsjoins
13.2.1 Einfuehrung
13.2.2 Erstellung einer Join-Anforderung
13.2.3 Interne Verarbeitung einer Join-Anforderung
13.2.4 Praesentation des Ergebnisses einer Join-Anforderung
13.2.5 Auswertung von DB2-Tabellen und sequentiellen Dateien
13.2.6 Auswertung von Oracle-Tabellen
13.2.7 Auswertung von SQL Server-Tabellen (Windows)
13.2.8 Auswertung von ISAM- bzw. VSAM-Dateien
13.2.9 Behandlung von Parametern
13.2.10 Join-Anforderung in Join-Anforderung
Kap. 13
Join-Techniken im ASS
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Kap. 13.1
Arbeitsgebietsuebergreifende Auswertung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Bei der Anforderung mehrerer Arbeitsgebiete innerhalb einer
Anforderung haengt das Ergebnis der Auswertung stark vom Setzen
der Option JOIN ab. Diese Option steuert das Zusammentragen
der Schluessel- und Werteinformationen aus den verschiedenen
Arbeitsgebieten.
Kap. 13.1.1
Arbeitsgebietsuebergreifende Auswertung ohne Join
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Werden die in der Anforderung angesprochenen Schluessel in allen
angeforderten Arbeitsgebieten verwendet, so ist die Zuordnung der
angeforderten Werte der verschiedenen Arbeitsgebiete zu den
jeweiligen Auspraegungen der angeforderten Schluessel eindeutig.
Anders verhaelt es sich, wenn bestimmte Schluessel nicht in
allen angeforderten Arbeitsgebieten vorkommen. Es ist dann nicht
moeglich, fuer die Auspraegungen eines solchen Schluessels die
genauen Wertanteile im betreffenden, dem Schluessel fremden
Arbeitsgebiet aufzulisten. In diesem Fall gilt als Vereinbarung,
dass der gesamte, aufgrund der angeforderten Schluessel nicht
weiter zuordenbare Restwert der ersten Auspraegung des ersten nicht
im Arbeitsgebiet verwendeten Schluessels zugeordnet wird. Fuer alle
anderen, im Arbeitsgebiet nicht vorhandenen Schluesselauspraegungen
werden Leerzeichen ausgegeben. Das folgende Beispiel soll dies
verdeutlichen.
Beispiel:
Es wird eine Auswertung angestrebt, bei der als WERTE der Wert
WERT1 fuer das Arbeitsgebiet 1 und der Wert WERT2 fuer das
Arbeitsgebiet 2 angefordert werden. Als Zeitraum soll der Januar
1996 angegeben werden. ZEITRAUM fungiert als Kopfschluessel,
WERTE als Spaltenschluessel. Als Zeilenschluessel werden die
Schluessel SCHL1 und SCHL2 angefordert. SCHL1 habe die
Auspraegung A, SCHL2 die Auspraegungen B und C. SCHL1 kommt in
beiden angeforderten Arbeitsgebieten vor, waehrend SCHL2 nur
im Arbeitsgebiet 2 vorkommt.
In der ASS-BATCH-Sprache lautet diese Anforderung
folgendermassen:
ASS;
AG: 1,2;
KS: ZEITRAUM = (0196);
ZS: SCHL1 = (A), SCHL2 = (B,C);
SS: WERTE = (WERT1(,AGNR=1),WERT2(,AGNR=2));
OPT: NULLDRUCK;
END;
Bei der Auswertung entsteht folgendes Listbild:
+--------------------------------------------------------------+
I I
I ASS SEITE 1 I
I ZEITRAUM: 0196 I
I I
I I WERTE I
I I WERT1 I WERT2 I
I I AGNR 1 I AGNR 2 I
I SCHL1 SCHL2 I STCK I STCK I
+---------------------+---------------+------------------------+
I A B I 1.2452,63 I 1.719,38 I
I C I I 1.652,31 I
+---------------------+---------------+------------------------+
Erklaerung:
Der gesamte, zur Auspraegung A des Schluessels SCHL1 vorhandene
Wertebetrag kann fuer das Arbeitsgebiet 1 nicht auf die
Auspraegungen des Schluessels SCHL2 aufgeteilt werden, da dieser
Schluessel nicht in diesem Arbeitsgebiet verwendet wird. Der
Gesamtbetrag wird daher der ersten Auspraegung B zugeordnet,
bei C werden Leerzeichen ausgegeben.
Kap. 13.1.2
Arbeitsgebietsuebergreifende Auswertung mit Join
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
In bestimmten Anwendungsfaellen ist es wuenschenswert, bei der
Auswertung eines Arbeitsgebietes, Schluessel mit deren Inhalten
aus anderen Arbeitsgebieten zu ergaenzen.
Beispiel:
In einem Arbeitsgebiet bilden die Schluessel eine Vertrags-
struktur ab. Typische Schluessel waeren hierbei z. B. VERTRETER,
VERTRAGSNUMMER, TARIF, usw. Die Organisationsstruktur zu den
einzelnen Vertretern sei in einem anderen Arbeitsgebiet abgelegt.
Typische Schluessel in diesem Arbeitsgebiet waeren dann z. B.
VERTRETER, ORGANISATIONSDIREKTION, GESELLSCHAFT, FILIALE, ...
Ziel ist es nun, bei einer Auswertung ueber das Vertreter-Arbeits-
gebiet zu jedem Vertreter die zugehoerige Organisationsdirektion
anzuzeigen.
Das Zusammenfuehren der Arbeitsgebiete erfolgt im ASS zum Zeit-
punkt der Auswertung ueber die gemeinsamen Schluessel der ange-
forderten Arbeitsgebiete, im obigen Beispiel also der Schluessel
VERTRETER. Der Algorithmus des Zusammenfuehrens wird aktiviert,
wenn die Option JOIN angegeben wurde (vergleiche im Gegensatz
hierzu das Verhalten ohne JOIN in Kap. 13.1.1).
Betrachten wir erneut die Situation des Vertrags-Arbeitsgebietes
und des Organisations-Arbeitsgebietes. Es gelte:
Vertrags-Arbeitsgebiet --> AG 1
Organisations-Arbeitsgebiet --> AG 2
Vertreter --> Schluessel-Nr 100
Tarif --> Schluessel-Nr 101
Organisationsdirektion --> Schluessel-Nr 200
Die Anforderung
ASS;
AG: 1, 2;
KS: ZEITRAUM = (0195);
ZS: 200, 100 = ('HUBER', 'MAIER', 'MUELLER'), 101;
SS: WERTE = (100(,AGNR=1),200(,AGNR=2));
OPT: JOIN;
END;
liefert, wenn eine entsprechende Einspeicherung vorliegt, das
folgende Listbild:
I WERTE
I W1 W2
I AGNR 1 AGNR 2
OD VERTRETER TARIF I DIM DIM
--------------------------------------------------------------
11 HUBER XY I 500.000.000 1.000
MAIER XY I 100.000.000 2.000
ZZ I 100.000.000 2.000
12 MUELLER AB I 250.000.000 3.000
ZZ I 10.000.000 3.000
Die Daten des Vertrags-Arbeitsgebiets werden mit den Daten des
Organisations-Arbeitsgebiets angereichert und umgekehrt (JOIN).
Der Schluesselkombination VERTRETER - TARIF wird jeweils die
dem VERTRETER entsprechend Arbeitsgebiet 2 zugehoerige OD zu-
geordnet mit entsprechendem Werteinhalt W2. Als Zeitaspekt gilt
dabei der angeforderte Zeitpunkt 0195.
Durch die gezielte Angabe von Zeitaspekten (auch beim Wert)
kann so eine historisierte Zuordnung der Organisationsstruktur
zum Vertreter beruecksichtigt werden, wenn also der Vertreter die
zustaendige Filiale gewechselt hat.
In konkreten Anwendungsfaellen ist es dabei denkbar, dass zum
einen der Wert W2 im Listbild unerwuenscht ist, zum anderen
der / die Schluessel, ueber die die Zuordnung stattfindet, fuer
das Listbild keine Aussagekraft besitzt / besitzen.
Das erste Problem laesst sich am einfachsten durch die Angabe
geeigneter Spaltensequenzen loesen. Alternativ kann auch
ganz auf die Angabe von Werten (hier W2) aus dem betreffenden
Arbeitsgebiet verzichtet werden. ASS ergaenzt dann intern
saemtliche Werte des Arbeitsgebietes und zieht diese fuer
die Ermittlung der zu ergaenzenden Schluesselinhalte heran.
Um das interne Ergaenzen der Werte zu steuern, empfehlen wir
folgende Vorgehensweise: Wenn in dem betreffenden Arbeitsge-
biet eine stillgelegte Verdichtungsstufe existiert, bei der
saemtliche Schluessel verdichtet sind, so werden nur die in
dieser Verdichtungsstufe angegebenen Werte ergaenzt.
Die flexibelste Loesung stellen jedoch die Spaltensequenzen dar,
weil z. B. die Moeglichkeit der Angabe von Zeiten beim Wert
erhalten bleibt.
Zur Loesung des zweiten Problems dient das Feld "SRT" in
Schluesselmaske VS103 / VS104. Wird das betreffende Feld zum
Schluessel mit 'N' (nicht anzeigen) besetzt, so erscheint der
betreffende Schluessel im Listbild nicht. Es erfolgt dabei eine
automatische Kumulierung der angeforderten Werte.
ASS;
AG: 1, 2;
KS: ZEITRAUM = (0195);
ZS: 200, 100 = ('HUBER', 'MAIER', 'MUELLER'), 101;
SS: WERTE = (100(,AGNR=1),200(,AGNR=2));
OPT: JOIN;
OPT2: NOTA (100);
SQ: (1);
END;
I WERTE
I W1
I AGNR 1
OD TARIF I DIM
--------------------------------
11 XY I 600.000.000
ZZ I 100.000.000
12 AB I 250.000.000
ZZ I 10.000.000
ACHTUNG: Unabhaengig davon, ob gemeinsame Schluessel der ange-
forderten Arbeitsgebiete weggeblendet werden oder nicht, werden
intern diese Schluessel fuer die Zuordnung benoetigt - sie haben
somit einen entsprechenden Platzbedarf. Insbesondere wenn bei
den gemeinsamen Schluesseln keine Selektion von Schluesselinhalten
vorgenommen wird, kann das bei der Auswertung zu Platz- und
Laufzeitproblemen fuehren, so dass die betreffende Anforderung
nicht mehr ONLINE-faehig ist.
In bestimmten Faellen ist jedoch Abhilfe moeglich. Betrachten
wir wiederum das Beispiel. Werden in der Anforderung nur wenige
OD's selektiert, so fuehrt dieses im allgemeinen auch nur zu
wenigen Vertretern im Listbild. Das koennen Sie ausnutzen, indem
Sie mit Hilfe einer verketteten Anforderung in einer ersten Anfor-
derung zunaechst das Arbeitsgebiet 2 alleine auswerten, wobei der
VERTRETER als Outputschluessel gekennzeichnet wird. Diese erste
Anforderung reduziert drastisch die Anzahl der zu betrachtenden
Vertreter fuer die Auswertung ueber beide Arbeitsgebiete mit
Input-Schluessel VERTRETER.
Ist der Schluessel VERTRETER ein Massenschluessel und wird bezueg-
lich der OD's keine Selektion vorgenommen, so fuehrt auch eine
verkettete Anforderung nicht zum gewuenschten Ziel. In diesem Fall
waere die Konzeption der Arbeitsgebiete zu ueberdenken.
Im obigen Beispiel sind zum Schluessel VERTRETER Auspraegungen
ausgewaehlt. Ist dieser Schluessel nicht selektiert, so koennte
das folgende Listbild entstehen:
I WERTE
I W1 W2
I AGNR 1 AGNR 2
OD VERTRETER TARIF I DIM DIM
--------------------------------------------------------------
11 HUBER XY I 500.000.000 1.000
MAIER XY I 100.000.000 2.000
ZZ I 100.000.000 2.000
12 MUELLER AB I 250.000.000 3.000
ZZ I 10.000.000 3.000
NN BAUER XY I 250.000.000 0
ZZ I 20.000.000 0
KUNTZ XY I 340.000.000 0
Die Auspraegung NN zu einem Schluessel (hier OD) erscheint
immer dann, wenn in einem Arbeitsgebiet Daten zu den gemein-
samen Schluesseln (hier Vertreter) vorhanden sind und im
anderen nicht. Im Beispiel konnte den Vertretern BAUER und KUNTZ
keine OD zugeordnet werden, weil keine entsprechenden Saetze
im Organisations-Arbeitsgebiet vorhanden sind. Notwendig ist
dabei das zu den betreffenden Schluesseln (hier OD) keine
Auspraegungen selektiert wurden. Andernfalls erscheinen nur
die selektierten Inhalte im Listbild, da NN keine anforderbare
Auspraegung ist.
Zu beachten ist das Verhalten insbesondere auch bei Anforderung
von Sternsummen. Die Anforderung:
ASS;
AG: 1, 2;
KS: ZEITRAUM = (0195);
ZS: 200 = ('11','12',*),
100 = ('HUBER', 'MAIER', 'MUELLER'), 101;
SS: WERTE = (100(,AGNR=1),200(,AGNR=2));
OPT: JOIN;
END;
liefert das Listbild
I WERTE
I W1 W2
I AGNR 1 AGNR 2
OD VERTRETER TARIF I DIM DIM
--------------------------------------------------------------
11 HUBER XY I 500.000.000 1.000
MAIER XY I 100.000.000 2.000
ZZ I 100.000.000 2.000
12 MUELLER AB I 250.000.000 3.000
ZZ I 10.000.000 3.000
* I 960.000.000 11.000
In der Sternsumme werden saemtliche angezeigten Zahlen aufaddiert,
unabhaengig von Duplikaten. Hier ergibt sich ein Unterschied zum
Verhalten ohne Anforderung der Option JOIN, da in diesem Fall
z. B. der OD 11 mit Vertreter MAIER nur der Tarif XY zugeordnet
wird, der Betrag 100.000.000 also nur einmal im Listbild erscheint.
Kap. 13.1.3
Arbeitsgebietsuebergreifende Auswertung mit NODUPJOIN
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die arbeitsgebietsuebergreifende Auswertung bei Verwendung der
Option NODUPJOIN unterscheidet sich von JOIN in der Duplikats-
behandlung. Im obigen Beispiel existiert zum Vertreter MAIER so-
wohl der Tarif XY als auch ZZ. Beim Zuordnen der OD wird daher bei
Angabe der Option JOIN intern ein Duplikatssatz OD 11, Vertreter
MAIER erzeugt und dementsprechend werden angeforderte Werte aus
diesem Arbeitsgebiet dupliziert. Bei Angabe der Option NODUPJOIN
unterbleibt diese Vervielfaeltigung. Wichtig ist hierbei, dass
u. U. auch die Reihenfolge der angeforderten Arbeitsgebiete eine
Rolle spielt, da zunaechst grundsaetzlich Saetze aus dem ersten
Arbeitsgebiet durch Saetze aus dem zweiten Arbeitsgebiet ange-
reichert werden. Am besten wird dieses an einem einfachen
Beispiel deutlich. Angenommen im Arbeitsgebiet 1 sind zum ange-
forderten Zeitaspekt die folgenden Saetze abgespeichert:
OD VERTRETER W1
11 HUBER 1.000
12 HUBER 2.000
und im Arbeitsgebiet 2:
VERTRETER TARIF W2
HUBER XY 10.000
HUBER ZZ 20.000
AUSWERTUNG MIT OPTION JOIN:
I WERTE
I W1 W2
I AGNR 1 AGNR 2
OD VERTRETER TARIF I DIM DIM
--------------------------------------------------------------
11 HUBER XY I 1.000 10.000
ZZ I 1.000 20.000
12 HUBER XY I 2.000 10.000
ZZ I 2.000 20.000
AUSWERTUNG MIT OPTION NODUPJOIN, ALLE SCHLUESSEL NICHT SELEKTIERT,
ERSTES ANGEFORDERTES ARBEITSGEBIET AG 1:
I WERTE
I W1 W2
I AGNR 1 AGNR 2
OD VERTRETER TARIF I DIM DIM
--------------------------------------------------------------
11 HUBER XY I 1.000 10.000
12 HUBER XY I 2.000 0
NN HUBER ZZ I 0 20.000
AUSWERTUNG MIT OPTION NODUPJOIN, ALLE SCHLUESSEL NICHT SELEKTIERT,
ERSTES ANGEFORDERTES ARBEITSGEBIET AG 2:
I WERTE
I W1 W2
I AGNR 1 AGNR 2
OD VERTRETER TARIF I DIM DIM
--------------------------------------------------------------
11 HUBER XY I 1.000 10.000
ZZ I 0 20.000
12 HUBER NN I 2.000 0
Achtung: Sind zum Schluessel OD und / oder TARIF Auspraegungen
selektiert, so entfallen die entsprechenden Zeilen mit NN (siehe
oben).
Kap. 13.1.4
JOIN_NURNN und NDJOIN_NURNN
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
In einigen Anwendungsfaellen sind gerade diejenigen Saetze
eines Arbeitsgebiets von Interesse, zu denen aus anderen
Arbeitsgebieten Informationen ergaenzt werden koennen, also
gegebenenfalls NN im Listbild erscheint (s. o.). Bei Angabe
von NUR_JOINN (entspricht JOIN) bzw. NDJOIN_NURNN (entspricht
NODUPJOIN) werden genau die Saetze angezeigt, die mindestens
eine NN-Auspraegung ausweisen. Dieses entspricht der Angabe
von 'A' bzw. 'B' unter JOIN in der Optionenmaske der ST31.
Kap. 13.2
Zusammenfuehrung mehrerer Anforderungsergebnisse
mit Hilfe des ANFORDERUNGSJOINs
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Kap. 13.2.1
Einfuehrung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die in Kap. 13.1 beschriebenen Join-Techniken im ASS
basieren auf dem Begriff des Arbeitsgebietes, d.h. der
Form wie die Daten im ASS definiert sind. Innerhalb einer
Anforderung werden dazu die zu verknuepfenden Arbeitsgebiete
und die dazugehoerigen Summendaten betrachtet. Das Verknuepfen
findet grundsaetzlich nur ueber gemeinsame Schluessel der
betracheten Arbeitsgebiete statt. Die Anzahl der Schluessel,
ueber die die Verknuepfung stattfindet, ist fix.
Im Gegensatz dazu basiert der Anforderungsjoin auf Verknuepfen
der Ergebnisse verschiedener Anforderungsergebnisse. Definiert
wird die Verknuepfung in einem eigenen Typ von Anforderungen,
der Join-Anforderung. Das wesentliche Prinzip des Anforderungs-
join basiert auf dem sukzessiven Anreichern von Daten mit
einer abschliessenden Praesentationsphase.
Jedes Anforderungsergebnis laesst sich als Tabelle inter-
pretieren, in der jeder Kopf- oder Zeilenschluessel eine
eigene Spalte aufmachen, ebenso jede Ergebnisspalte der
Anforderung.
Beispiel:
ARBEITSGEBIET: 1: VERTRIEB
ZEITRAUM: Januar 2002
I WERTE
I NEUBEITRAG NEUANZAHL
GEBIET SPARTE I DM Stueck
---------------------------------------------
01 HA I 7.338,80 280
KR I 287.620,98 4.773
I
02 HA I 14.310,66 546
KR I 224.649,28 3.728
entspricht
ZEITRAUM GEBIET SPARTE SPALTE001 SPALTE002
0102 01 HA 7.338,80 280
0102 01 KR 287.620,98 4.773
0102 02 HA 14.310,66 546
0102 02 KR 224.649,28 3.728
Die Spaltenueberschriften der Tabelle ergeben sich aus
der Schluesselbezeichnungen der angeforderten Schluessel.
Da ASS im Spaltenbereich die Anforderung von bis zu drei
Spaltenschluesseln erlaubt, existieren hierzu keine "einfachen"
Spaltenueberschriften.
In der Joinanforderung wird nun beschrieben, wie derartige
Tabellen miteinander verknuepft werden und wie die Praesentation
des Ergebnisses aussehen soll, genauer welche Spalten aus
dem Gesamtergebnis dargestellt werden sollen.
Kap. 13.2.2
Erstellung einer Join-Anforderung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Eine Join-Anforderung ist ein eigener Typ einer Anforderung.
ASS unterscheidet der Zeit zwischen (gewoehnlichen) Anforde-
rungen, verketteten Anforderungen (siehe Kap. 14) und eben
Join-Anforderungen. Die Auswahl geschieht durch eine dem-
entsprechende Markierung im Einstiegsbild.
VS100 ASS AUSWAHLBILD STATISTIKANFORDERUNG
--------------------------------------------------------------
. LISTENANFORDERUNG BEARBEITEN
. VERKETTETE ANFORDERUNG BEARBEITEN
x JOIN-ANFORDERUNG BEARBEITEN
. FORMEL BEARBEITEN
. SCHLUESSELGRUPPIERUNG BEARBEITEN
. WERTEGRUPPIERUNG BEARBEITEN
. FILTER ZU MOEGLICHEN PARAMETERINHALTEN BEARBEITEN
NAME DES ZU BEARBEITENDEN ELEMENTS: JOINANF.
. BIBLIOTHEKSUEBERSICHT
. BIBLIOTHEKSVERWALTUNG
. ANWENDUNGEN
. VORGABEN ERFASSEN
. UMBUCHUNGEN ERFASSEN
x EXPERTENMODUS
---------------------------------------------------------------
==> I PF11: ENDE
Via Kommando "AN" in der Maske VS101 gelangt der Anwender in
die Maske der zu verknuepfenden Anforderungen.
VS158 ASS ELEMENTE DER JOIN-ANFORDERUNG
-------------------------------------------------------------------
BIB ANFORDERUNG LOCATION/CREATOR FELDER OPTIONEN
1. B ANF_1............ ................ .
2. B ANF_2............ ................ X .
3. . ................. ................ . .
4. . ................. ................ . .
5. . ................. ................ . .
6. . ................. ................ . .
7. . ................. ................ . .
8. . ................. ................ . .
9. . ................. ................ . .
10. . ................. ................ . .
-------------------------------------------------------------------
==> .... I PF1: HELP, PF3: CANCEL, PF4: COPY, PF6: AUSGANG
Hier werden die zu verknuepfenden Anforderungen ueber Biblio-
theksart und Anforderungsname angesprochen. Zulaessig sind
Anforderungen der Work-Bibliothek "B", der Bibliothek der
einmalig auszufuehrenden Anforderungen "E", der periodischen
Anforderungen "P", sowie falls installiert der PC-Bibliotheken
"G", "H", "I", und "J". Zusaetzlich kann hier umgebungsabhaengig
auf sequentielle Dateien (Bibliothek "S") und DB2-Tabellen
(Bibliothek "D") Bezug genommen werden (siehe 13.2.5).
Durch Markieren unter Felder gelangt der Anwender in ein
Folgebild in dem die Verknuepfung (Join) beschrieben wird.
VS159 ASS JOINFELDER EINES JOIN-STEPS
---------------------------------------------------------------------
BIB B ANFORDERUNG HBTEST NR 2
ZIELFELDER ANF OFFS LTH AU JOINFELDER OFFS LTH AU
100................. 1. .. .. . 100................. .. .. .
130................. 1. .. .. . 130................. .. .. .
.................... .. .. .. . .................... .. .. .
.................... .. .. .. . .................... .. .. .
.................... .. .. .. . .................... .. .. .
.................... .. .. .. . .................... .. .. .
.................... .. .. .. . .................... .. .. .
.................... .. .. .. . .................... .. .. .
.................... .. .. .. . .................... .. .. .
.................... .. .. .. . .................... .. .. .
DUP.-BEHANDLUNG: A LEERE MENGE: . DUP.-BEHANDL.: A LEERE MENGE: .
SORTIERFELD (ZIEL) ANF ART AU SORTIERFELD (JOIN) ART AU
.................... .. . . .................... . .
.................... .. . . .................... . .
.................... .. . . .................... . .
.................... .. . . .................... . .
.................... .. . . .................... . .
---------------------------------------------------------------------
==> .... I PF1: HELP, PF3: CANCEL, PF6: AUSGANG, PF7/PF8: BLAETTERN
Die Anforderungsergebnisse werden ueber die unter Ziel- und
Joinfelder angegeben Begriffe verknuepft. Durch Spezifikation
der Duplikatsbehandlung, Sortierung etc. wird die Art des
Joins bestimmt. Unter AU erhaelt der Anwender eine Liste
der moeglichen Angaben.
Kap. 13.2.3
Interne Verarbeitung einer Join-Anforderung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Das Ergebnis der ersten Anforderung definiert die Grundmenge.
Diese Grundmenge definiert gleichzeitig die erste Zielmenge
als Zwischenergebnis. Durch das Ermitteln weiterer Anforde-
rungsergebnisse / Tabellen wird die Zielmenge sukzessive
um weitere Spalten angereichert: die n+1 te Zielmenge wird
durch Join der n ten Zielmenge mit dem n+1 ten Anforderungs-
ergebnis gebildet. Dadurch vergroessert sich im allgemeinen
die Ergebnistabelle nach und nach.
Abstrakt kann sich der Anwender die Spalten der Ergebnis-
tabelle wie folgt vorstellen (hier zeilenweise dargestellt):
Kopf- / Zeilenschluessel 1 (Anforderung 1)
.
.
.
Kopf- / Zeilenschluessel n1 (Anforderung 1)
Spalte 1 (Anforderung 1)
.
.
.
Spalte m1 (Anforderung 1)
Kopf- / Zeilenschluessel 1 (Anforderung 2)
.
.
.
Kopf- / Zeilenschluessel n2 (Anforderung 2)
Spalte 1 (Anforderung 2)
.
.
.
Spalte m2 (Anforderung 2)
.
.
.
Kopf- / Zeilenschluessel 1 (Anforderung k)
.
.
.
Kopf- / Zeilenschluessel nk (Anforderung k)
Spalte 1 (Anforderung k)
.
.
.
Spalte mk (Anforderung k)
Dieses ist die maximal denkbare Dimensionierung der Ergebnis-
tabelle. Da ASS intern jedoch nur diejenigen Spalten be-
ruecksichtigt, die vom Endergebnis praesentiert werden, ist
im allgemeinen die Datenmenge deutlich kleiner.
Betrachten wir das Verknuepfen einer Zielmenge (als Zwischen-
ergebnis) mit einem Anforderungsergebnis (Joinmenge):
Im Joinkriterium werden diejenigen Schluessel (Spalten der
Tabelle) spezifiziert ueber die die Verknuepfung stattfinden
soll. Da die Begriffe in der Zielmenge nicht notwendig ein-
deutig sind, ein Schluessel Gebiet koennte hier in mehreren
vorhergehenden Anforderungen angefordert worden sein, muss
bei den Zielfeldern jeweils eine Anforderungsnummer angegeben
werden. Bei den Joinfeldern besteht dieser Anspruch nicht,
da diese aus der aktuellen Anforderung stammen.
Zu jeder Ergebniszeile in der Zielmenge werden alle Datenzeilen
der Joinmenge ermittelt, bei denen die jeweiligen Ziel- und
Joinfelder uebereinstimmen. Dabei muss die Anzahl von Ziel- und
Joinfeldern gleich sein. Das Resultat kann 0 bis n Treffer
beinhalten. Existiert genau ein Treffer, so werden die
Inhalte der Spalten der Joinmenge in die neue Zielmenge
uebertragen. Ist die Treffermenge leer, so haengt die
Behandlung von der Angabe unter "LEERE MENGE" ab. Wurde keine
Angabe gemacht, so werden die zu besetzenden Felder in der
neuen Zielmenge mit Standardangaben besetzt: 0 bei numerischen
Inhalten, NN bei alphanumerischen. Wurde unter "LEERE MENGE" als
Kennzeichen "L" angegeben, so wird der betreffende Satz aus
der Zielmenge geloescht.
Bei mehr als einem Treffer wird der Join ueber die Duplikats-
angabe gesteuert: bei "A" (all) werden alle Treffer verarbeitet,
was zu einem Vervielfaeltigen der Saetze fuehrt. Bei "L" (last)
bzw. "F" (first) wird nur der erste bzw. letzte Treffer ver-
arbeitet. Der Begriff Erster bzw. Letzter ergibt sich dabei
aus der Sortierangabe zur Joinmenge, die in diesem Fall
zwingend erforderlich ist. Dazu wird die Treffermenge nach
den angegebenen Begriffen entsprechend der Art (A fuer auf-
steigend, D fuer absteigend) sortiert.
Zusammenfassend gilt:
Duplikatsangabe "A": Verarbeiten aller Saetze der Treffermenge
Duplikatsangabe "F": Verarbeiten des ersten Satzes entsprechend
der Sortierangabe
Duplikatsangabe "L": Verarbeiten des letzten Satzes entsprechend
der Sortierangabe
Duplikatsangabe " ": erforderliche Angabe fuer LEERE MENGE "D"
Leere Menge " ": besetzten der Felder durch Standardwerte
Leere Menge "L": der Satz wird geloescht
Leere Menge "D": nur Saetze zu denen kein Treffer existiert
werden betrachtet
Bei der Verarbeitung der Anforderungsergebnisse ist das folgende
zu beachten:
- der Join findet grundsaetzlich ueber Schluesselinhalte statt,
nicht ueber etwaige Textierungen (Schluesselinhaltsbezeichnung,
Schluesselinhaltsabkuerzung, USER-EXIT-Ergebnisse). Die
Bildung neuer Begriffe durch Formeln oder Mengen ist zulaessig.
Sie werden wie Schluesselinhalte verarbeitet. Sternsummen bzw.
textierte Sternsummen bleiben hingegen unberuecksichtigt.
- gesplittete Schluessel werden entsprechend der Darstellung
als ein Schluessel betrachtet. Dieses ist unabhaengig davon
ob der Splitt durch entsprechende Inhaltsselektion oder
aufgrund einer entsprechenden Anforderung der Splittteile
zu Stande kommt. Dementsprechend erfolgt die Spezifikation
bei den Join-Angaben ueber die "linke Kante", dem linkesten
Schluessel.
Beispiele: Anforderung 1 bildet jeweils die Grundmenge,
Anforderung 2 wird hinzu gejoint. Zielfeld bzw.
Joinfeld ist jeweils SPARTE.
Anforderung 1
GEBIET SPARTE I W1
---------------------
01 HA I 100
KR I 200
UN I 150
02 HA I 80
KR I 230
UN I 60
Anforderung 2
SPARTE GESCHLECHT I W2
-------------------------
HA M I 600
W I 250
KR M I 80
W I 470
Ergebnistabelle bei Duplikatsbehandlung "A"
GEB(ANF=1) SP(ANF=1) W1(ANF=1) SP(ANF=2) GES(ANF=2) W2(ANF=2)
01 HA 100 HA M 600
01 HA 100 HA W 250
01 KR 200 KR M 80
01 KR 200 KR W 470
01 UN 150 NN N 0
02 HA 80 HA M 600
02 HA 80 HA W 250
02 KR 230 KR M 80
02 KR 230 KR W 470
02 UN 60 NN N 0
Ergebnistabelle bei Duplikatsbehandlung "F",
Sortierung ueber Geschlecht aufsteigend
GEB(ANF=1) SP(ANF=1) W1(ANF=1) SP(ANF=2) GES(ANF=2) W2(ANF=2)
01 HA 100 HA M 600
01 KR 200 KR M 80
01 UN 150 NN N 0
02 HA 80 HA M 600
02 KR 230 KR M 80
02 UN 60 NN N 0
Ergebnistabelle bei Duplikatsbehandlung "F",
Sortierung ueber Geschlecht aufsteigend, Leere Menge "L"
GEB(ANF=1) SP(ANF=1) W1(ANF=1) SP(ANF=2) GES(ANF=2) W2(ANF=2)
01 HA 100 HA M 600
01 KR 200 KR M 80
02 HA 80 HA M 600
02 KR 230 KR M 80
Ergebnistabelle bei Duplikatsbehandlung " ", Leere Menge "D"
GEB(ANF=1) SP(ANF=1) W1(ANF=1) SP(ANF=2) GES(ANF=2) W2(ANF=2)
01 UN 150 NN N 0
02 UN 60 NN N 0
Kap. 13.2.4
Praesentation des Ergebnisses einer Join-Anforderung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Implizit wird fuer eine Join-Anforderung genau ein Spalten-
Schluessel generiert. Mit Hilfe der Kommandos KS/ZS bzw. WE/WZ wird
das Listbild der Join-Anforderung gestaltet. Analog zu
gewoehnlichen Anforderungen werden dem Anwender in den betreffenden
Masken die zulaessigen Eingabemoeglichkeiten angeboten.
Eindeutigkeit der Begriffe wird durch die Anforderungsnummer
(Numerierung aus Join VS158) garantiert. Wird im Wertebereich Bezug
auf ASS-Anforderungen genommen, so heissen die betreffenden Spalten
SPALTE00001, etc. Spaltensequenzen der Einzelanforderungen bleiben
unberuecksichtigt. Im Listbild erscheinen jedoch die
entsprechenden Textierungen / Ueberschriften aus den
Einzelanforderungen.
Analog zu einfachen Anforderungen ist eine (Nach-)Selektion von
Feldinhalten moeglich. Abgesehen zu Feldern, deren Ursprung der
(Pseudo-)Schluessel WERTE einer ASS-Anforderung ist, koennen
einzelne Inhalte oder Intervalle selektiert, Mengen oder Formeln,
gebildet, Maskierungen verarbeitet oder auch Negativselektionen
vorgenommen werden. Datenmaessige Grundlage ist hierbei stets
das Anforderungsergebnis der Join-Anforderung.
Schluesselinhalte. die sich auf die sogenannte leere Menge
beziehen, werden als NN-Inhalte (u.U. installationsabhaengig)
dargestellt. Soll in der (Nach-)Selektion ein NN-Inhalt
angesprochen werden, so ist hier das Schluesselwort ##NN
zu benutzen. ##NN kann analog zu normalen Schluessel-
auspraegungen gebraucht werden, jedoch nicht als Intervall-
grenze und auch nicht bei Maskierungen.
In der Nachselektion koennen auch Zwischen- und Endsummen
sowie die ueblichen Textierungen (z.B. ##TEXT) angefordert werden.
Darueber hinaus koennen im Spaltenschluesselbereich bezueglich
der zu praesentierenden Spalten bzw. Zahlen via Werteformeln
neue Begriffe abgeleitet werden. Mit Ausnahme von TOTAL steht
hier der Funktionsumfang von einfachen Anforderungen zur Verfue-
gung. So ist z.B. die Rang-Bildung moeglich.
Beim RANG-Operator z. B. muss angegeben werden, auf welchen
Schluessel und auf welchen Wert er sich beziehen soll.
In Join-Anforderungen reichen hierfuer Schluesselbezeichnungen bzw.
Wertebezeichnungen allein nicht aus. Es muss angegeben werden,
aus welchem Step der betreffende Schluessel bzw. Wert kommt.
Dies erfolgt mit Hilfe des Schluesselwortes ANF.
Am leichtesten erkennt man dies an einem Beispiel:
Rang (GEBIET (ANF=02),SPALTE002(ANF=01))
Der Schluessel GEBIET stammt aus dem 2. Step, der Wert
SPALTE002 aus dem 1. Step.
Kompliziertere Beispiele sind in Kap. 4.8 beschrieben.
Standardmaessig erfolgt eine Verdichtung des Ergebnisses ueber
die nicht angeforderten Schluessel. Diese kann in der Option-
maske unter NPRVERD ausgeschaltet werden.
Nachfolgend wird das Ergebnis einer Praesentation des Beispiels
aus Kap. 13.2.3 gezeigt. Dabei wird der Schluessel Sparte
nicht angefordert (Duplikatsbehandlung "A", Leere Menge "L"),
ohne Angabe der Option NPRVERD
GEBIET GESCHLECHT I W1 W2
--------------------------------
01 M I 450 680
W I 450 720
02 M I 370 680
W I 370 720
Analog zu gewoehnlichen Anforderungen koennen auch bei einer
Join-Anforderung eine Reihe von Optionen gesetzt werden. Diese
Optionen uebersteuern Angaben bei den Einzelanforderungen.
Ebenso koennen individuelle Ueberschriften, Zeilenueberschriften
und Spaltenueberschriften vergeben.
Desweiteren stehen die Anforderungskomponenten, Kommentare,
Spaltensequenzen, Spaltenbedingungen zur Verfuegung. Ver-
aenderungen der Spaltenbreite in der Maske VS132 werden ebenso
beruecksichtigt wie die Aenderung der Dimensionsangabe.
Besonderheiten von ASS-Anforderungen, die in Join-Anforderungen
verwendet werden:
Textzeilen (z.B. mit ##TEXT angefordert) werden in diesen
Anforderungen grundsaetzlich unterdrueckt.
Standardmaessig werden Sternzeilen (Zwischen- bzw. Endsummen)
in diesen Anforderungen nicht ausgegeben. Durch Setzen einer
entsprechenden Option kann pro Schluessel die Ausgabe von
Sternzeilen angeschaltet werden.
Existieren bei einem Schluessel Anforderungen fuer Zwischen-
oder Endsummen oder Texte, so werden diese Elemente auch in
der Praesentation verwendet (vererbt), wenn bei dem betreffenden
Schluessel keine Nachselektion vorliegt.
Dies kann zu unerwuenschten Gestaltungen fuehren, wenn z.B.
ein Schluessel, der in der ASS-Anforderung als rechtester
Zeilenschluessel verwendet wird, in der Praesentation aber
an einer ganz anderen Stelle. Auch diese Vererbung kann pro
Schluessel durch eine entsprechende Option ausgeschaltet werden.
Eine Besonderheit gibt es noch bei Wertegruppierungen. Fuer
Join-Anforderungen werden eigene Wertegruppierungen auf
der Bibliothek "R" ablegt. Dieses geschieht entweder aus
der WZ-Maske (VS132) heraus oder durch Ansteuerung aus dem
Einstiegsbild (VS100) durch Angabe von "J" unter dem
Punkt Wertegruppierungen. Ansonsten wird dieser Typ analog
verarbeitet. Join-Wertegruppierungen koennen nur bei Join-
Anforderungen verwendet werden, die uebrigen nur bei
gewoehnlichen Anforderungen.
Kap. 13.2.5
Auswertung von DB2-Tabellen und sequentiellen Dateien
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Umgebungsabhaengig ist ASS in der Lage an Stelle eines
Anforderungsergebnisses eine sequentielle Datei oder eine
DB2-Tabelle oder einen seq. Abzug einer DB2-Tabelle zu betrachten.
Voraussetzung ist eine Beschreibung des Tabellenaufbaus
in der ASS-Metadatenverwaltung ST06.
Hierfuer sind die Arbeitsgebietsnummern 1000 - 1999 reserviert.
Angegeben wird jeweils der Tabellenname und eine Beschreibung
der einzelnen Felder bestehend aus Feldbezeichner, Feldformat,
Feldposition und Feldlaenge. Unterstuetzt werden hierbei als
Feldformat Character, dezimal gepackt und binaer. Weiterhin
werden die DB2-Formate Date, Time und Timestamp unterstuetzt,
allerdings nur im Sinne einer Character-Interpretation.
Die Anforderung von DB2-Tabellen geschieht ueber die Angabe
der Bibliotheksart "D" und dem Tabellennamen, von sequentiellen
Dateien ueber Angabe der Bibliotheksart "S" und dem in der
Arbeitsgebietsdefinition angegebenen DD-Namen.
Bei DB2-Abzuegen wird die Bibliotheksart "D" verwendet und der
in der Arbeitsgebietsdefinition angegebene DD-Name.
In einer PC-Umgebung muss sich dabei die entsprechende Datei im
aktuellen DB-Verzeichnis mit der Endung ".DWT" befinden.
Wird im Falle einer DB2-Tabelle keine Angabe zu Feldern
gemacht, so ermittelt ASS diese automatisch aus dem System-
katalog. Zur naeheren Qualifikation besteht in der Maske
VS158 die Moeglichkeit Location und Creator einer Tabelle
anzugeben.
Bei DB2-Abzuegen werden die moeglichen Felder stets aus dem
Systemkatalog ermittelt. DB2-Abzuege sind einerseits
sequentielle Dateien, benoetigen andererseits jedoch auch
Angaben ueber die urspruengliche Tabelle. Daher wird die
Arbeitsgebietsabkuerzung als Verweis auf die urspruengliche
DB2-Tabelle benutzt. Auf die DB2-Tabelle wird in der
Form DBnnnn, wobei nnnn die Nummer des urspruenglichen
DB2-Arbeitsgebiets ist, verwiesen (siehe ST06).
Es gibt verschiedene Formate von DB2-Abzuegen. Mit welchem
Format gearbeitet wird, wird in der installationsabhaengigen
Variable DBS-ABZUG-FORM (D A 101) festgelegt (siehe HINSTALL).
Das Ansprechen einzelner Spalten bei der Definition des JOIN
bzw. der Praesentation geschieht analog ueber den Namen.
Hierzu werden entsprechende Hilfen ueber die moegliche Auswahl
in den Auswahlmasken gemacht. Im Gegensatz zu Anforderungs-
ergebnissen kann hierbei nicht klar aufgrund des Feldformates
zwischen Werten und Schluesseln unterschieden werden,
da beispielsweise eine Kundennummer auf einem dezimal
gepackten Feld abgelegt sein kann. Daher ist der Ersteller der
Anforderung dafuer verantwortlich, dass unter den Werten
nur messbare Groessen, unter KS/ZS nur Attribute/Schluessel
angefordert werden. Ein Join ueber eine Kundennummer, die
im ASS als Schluessel und in einer sequentiellen Datei abgelegt
ist, ist dabei durchaus zulaessig.
Kap. 13.2.6
Auswertung von Oracle-Tabellen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
An Stelle eines Anforderungsergebnisses koennen analog zu DB2
auch Oracle-Tabellen ausgewertet werden.
Voraussetzung ist eine Beschreibung des Tabellenaufbaus
in der ASS-Metadatenverwaltung ST06.
Hierfuer sind die Arbeitsgebietsnummern 1000 - 1999 reserviert.
Der Tabellenname muss in der ST06 angegeben werden, bei
Art des Arbeitsgebiets muss "ORA" eingeben werden.
Die einzelnen Felder koennen in der ST06 bekannt gegeben werden.
Wird hierauf verzichtet, so werden die Felder der betreffenden
Tabelle aus dem Systemkatalog ermittelt.
Die Anforderung von Oracle-Tabellen geschieht ueber die Angabe
der Bibliotheksart "O" und dem Tabellennamen.
Zur naeheren Qualifikation besteht in der Maske
VS158 die Moeglichkeit Location und Creator einer Tabelle
anzugeben.
Folgende Besonderheit ist zu beachten:
I.a. wird davon ausgegeben, dass sich die auszuwertenden
Oracle-Tabellen auf dem gleichen Rechner wie die ASS-
Datenbanken befinden. Ist dies nicht der Fall, so muss
auf dem Rechner, auf dem sich die auszuwertende Oracle-Tabelle
befindet, ein Server (oder ev. mehrere) gestartet sein. Dieser
Server fuehrt die Oracle-Zugriffe aus und kommuniziert mit
den ASS-Programmen auf dem ASS-Rechner.
Soll auf Oracle-Tabellen auf anderen Rechnern zugegriffen
werden, so muss den betreffenden Oracle-Tabelle bei
"TEXTDB-NR DER VERBINDUNG" bei der Arbeitsgebietsdefinition
eine Nummer zwischen 900 und 999 zugeordnet werden.
Unter dieser Nummer bei D/A muss dann in der ASS-Text-DB der
Oracle-Rechner und der Zugang zu diesem Rechner beschrieben
werden, um z.B. mit TCP/IP auf Oracle zugreifen zu koennen.
Hierbei sind folgende Angaben erforderlich:
SERVER-NAME=... (Name des Oracle-Rechners)
SERVER-PORT=... (Nummer des Ports auf dem Oracle-Rechner)
SERVER-PROTOKOLL=B oder =C oder =O oder =T, wobei bedeutet
B: TCP/IP mit mehreren Servern
C: TCP/IP mit CICS
O: TCP/IP mit IMS
T: TCP/IP mit einem Server
T ist Standard bei fehlender Angabe.
SERVER-CODE=ANSI
Diese Angabe ist erforderlich (wegen ev. Erweiterungen).
Folgende Konstellatioen werden z.Z. unterstuetzt:
ASS-Rechner Oracle-Rechner
----------------------------
BS2000 UNIX
UNIX UNIX
Weitere Konstellationen koennen u.U. bei Bedarf
realisiert werden.
Kap. 13.2.7
Auswertung von SQL Server-Tabellen (Windows)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
An Stelle eines Anforderungsergebnisses koennen analog zu DB2
auch SQL Server-Tabellen ausgewertet werden.
Voraussetzung ist eine Beschreibung des Tabellenaufbaus
in der ASS-Metadatenverwaltung ST06.
Hierfuer sind die Arbeitsgebietsnummern 1000 - 1999 reserviert.
Der Tabellenname muss in der ST06 angegeben werden, bei
Art des Arbeitsgebiets muss "SQS" eingeben werden.
Die einzelnen Felder koennen in der ST06 bekannt gegeben werden.
Wird hierauf verzichtet, so werden die Felder der betreffenden
Tabelle aus dem Systemkatalog ermittelt.
Die Anforderung von SQL Server-Tabellen geschieht ueber die Angabe
der Bibliotheksart "T" und dem Tabellennamen.
Zur naeheren Qualifikation besteht in der Maske
VS158 die Moeglichkeit Datenbank und Schema einer Tabelle
anzugeben.
Folgende Besonderheit ist zu beachten:
I.a. wird davon ausgegeben, dass sich die auszuwertenden
SQL Server-Tabellen auf dem gleichen Rechner wie die ASS-
Datenbanken befinden. Ist dies nicht der Fall, so muss
auf dem Rechner, auf dem sich die auszuwertende SQL Server-Tabelle
befindet, ein Server (oder ev. mehrere) gestartet sein. Dieser
Server fuehrt die SQL Server-Zugriffe aus und kommuniziert mit
den ASS-Programmen auf dem ASS-Rechner.
Soll auf SQL Server-Tabellen auf anderen Rechnern zugegriffen
werden, so muss den betreffenden SQL Server-Tabelle bei
"TEXTDB-NR DER VERBINDUNG" bei der Arbeitsgebietsdefinition
eine Nummer zwischen 900 und 999 zugeordnet werden.
Unter dieser Nummer bei D/A muss dann in der ASS-Text-DB der
SQL Server-Rechner und der Zugang zu diesem Rechner beschrieben
werden, um z.B. mit TCP/IP auf SQL Server zugreifen zu koennen.
Hierbei sind folgende Angaben erforderlich:
SERVER-NAME=... (Name des SQL Server-Rechners)
SERVER-PORT=... (Nummer des Ports auf dem SQL Server-Rechner)
SERVER-PROTOKOLL=B oder =C oder =O oder =T, wobei bedeutet
B: TCP/IP mit mehreren Servern
C: TCP/IP mit CICS
O: TCP/IP mit IMS
T: TCP/IP mit einem Server
T ist Standard bei fehlender Angabe.
SERVER-CODE=ANSI
Diese Angabe ist erforderlich (wegen ev. Erweiterungen).
Folgende Konstellatioen werden z.Z. unterstuetzt:
ASS-Rechner SQL Server-Rechner
----------------------------
BS2000 WINDOWS
UNIX WINDOWS
WINDOWS WINDOWS
Weitere Konstellationen koennen u.U. bei Bedarf
realisiert werden.
Kap. 13.2.8
Auswertung von ISAM- bzw. VSAM-Dateien
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Umgebungsabhaengig ist ASS in der Lage an Stelle eines
Anforderungsergebnisses eine ISAM-Datei oder eine VSAM-Datei
zu betrachten.
Voraussetzung ist eine Beschreibung des Tabellenaufbaus
in der ASS-Metadatenverwaltung ST06.
Hierfuer sind die Arbeitsgebietsnummern 1000 - 1999 reserviert.
Angegeben wird jeweils der DD-/LINK-Name und eine Beschreibung
der einzelnen Felder bestehend aus Feldbezeichner, Feldformat,
Feldposition und Feldlaenge. Unterstuetzt werden hierbei als
Feldformat Character, dezimal gepackt und binaer.
Die Anforderung von ISAM-Dateien geschieht ueber die Angabe
der Bibliotheksart "X" und dem LINK-Nanem,
die Anforderung von VSAM-Dateien geschieht ueber die Angabe
der Bibliotheksart "V" und dem DD-Nanen.
Das Ansprechen einzelner Spalten bei der Definition des JOIN
bzw. der Praesentation geschieht analog zu DB2.
Bei VSAM wird nur der Primaer-Key unterstuetzt.
Bei VSAM ist es insbesondere im Online schwierig, die
Kenndaten der betreffenden VSAM-Datei zu ermitteln.
Deswegen wird verlangt, dass diese Daten via ST06
und ASS-Text-DB bei D/A bekanntgegeben werden, wobei
als Text-Nummer die Arbeitsgebietsnummer der betreffenden
Datei zu verwenden ist.
Hierbei sind folgende Angaben erforderlich:
KEYPOS=... (Position des Primaer-Keys, wobei das erste
Netto-Feld die Position 1 hat)
KEYLEN=... (Laenge des Primaer-Keys)
Bei IMS-Umgebungen werden zuzaetzlich die zwei folgenden
Angaben benoetigt:
SEGNAME=... (Satzname)
FELDNAME=... (Feldname des Primaer-Keys)
Kap. 13.2.9
Behandlung von Parametern
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Speziell fuer Join-Anforderungen wurden die Parameterarten
FB und SB konzipiert. FB steht fuer Feldbezeichnung, SB fuer
Spaltenbezeichnung. Dementsprechend kann durch einen Parameter
der Art FB eine Angabe unter KS/ZS ersetzt werden, durch einen
Parameter der Art SB eine Spaltenangabe im Wertebereich.
Die Angabe dieser Arten bei gewoehnlichen Anforderungen ist
nicht erlaubt. Beide Parameterarten unterstuetzen jeweils
die Direkteingabe (Regel DI) oder koennen fuer Aenderungen
gesperrt werden (Regel SP). Zusaetzlich besteht durch
Angabe der Regel FB bzw. SB die Moeglichkeit dem Anwender
zum Ausfuehrzeitpunkt eine Liste der moeglichen Inhalte
zur Verfuegung zu stellen.
Bei der Direkteingabe muss die korrekte Bezeichnung mit
Spezifikation der Anforderungsnummer angegeben werden. Bei der
Parameterart FB handelt es sich dabei im Falle eines echten
ASS-Schluessels um die Schluesselnummer oder einer der
(Pseudo-)Schluessel ZEITRAUM oder WERTE, falls diese als
moegliche Inhalte zur Verfuegung stehen. Bei der Parameterart SB
muss bei Bezug auf eine ASS-Anforderung die entsprechende
Spalte durch SPALTEnnn spezifiziert werden.
Beispiel:
PARAMETER AUSWAEHLEN (J/N/BLANK) ? .
PARNAME PARINHALT ART REGEL
&&FB...... 00100(ANF=01)............................... FB FB
KOMMENTAR: FELD.................... PARFILTER: ........
&&SB...... SPALTE001(ANF=01)........................... SB SB
KOMMENTAR: SPALTE.................. PARFILTER: ........
Andere Parameter werden an die Einzelanforderungen durchgereicht
und wirken uebersteuernd zu dort gemachten Angaben.
Kap. 13.2.10
Join-Anforderung in Join-Anforderung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die bei einem Join betrachteten Anforderungsergebnisse koennen
neben normalen und verketteten Anforderungen auch von anderen
Join-Anforderungen stammen. Es ist sozusagen ein Join im Join
moeglich. Zu beachten ist allerdings, dass die der "oberen"
Join-Anforderung untergeordneten Join-Anforderungen keine weiteren
Join-Anforderungen enthalten duerfen. Man kann also von einer
"oberen" und einer "unteren" Join-Ebene sprechen.
Die obere Join-Anforderung setzt dabei jeweils auf den Ergebnissen
der Praesentationsanforderungen der unteren Ebene auf. Dies ist
insbesondere im Hinblick auf die zahlreichen Moeglichkeiten zur
Nachbearbeitung interessant, die schon in den Praesentations-
anforderungen der unteren Ebene vorgenommen werden koennen, z.B.
Werteformeln oder die Nachselektion von Schluesselinhalten. Die
Ergebnisse koennen dann in der oberen Join-Anforderung wiederum mit
denselben Praesentationsmoeglichkeiten weiterverarbeitet werden. Zu
beachten ist auch, dass manche Eigenschaften der oberen Join-
Anforderung die Einstellungen in den unteren Anforderungen ueber-
steuern, z.B. das Bezugsdatum oder die Vorbelegung von Parametern.
Im Folgenden sollen die verschiedenen Vererbungsregeln naeher
erlaeutert werden.
Das Bezugsdatum fuer relative Zeitangaben wird von der oberen
Join-Anforderung auf alle untergeordneten (Join-)Anforderungen
vererbt, auch wenn oben keine explizite Angabe des Bezugsdatums
erfolgt. In diesem Fall wird das Maschinendatum benutzt.
Die Vorbelegung eines Parameterinhalts in der oberen Join-
Anforderung uebersteuert etwaige Vorbelegungen in allen unterge-
ordneten Anforderungen, d.h. auch in Join-Anforderungen und diesen
untergeordneten Anforderungen.
Diese Uebersteuerung kann mit Hilfe der Parameterregel 'SL'
umgangen werden: Wird diese z.B. bei einem Parameter in einer der
unteren Join-Anforderungen gesetzt, so wird deren Vorbelegung des
Parameters auf die ihr untergeordneten Anforderungen vererbt. Die
Vorbelegung der oberen Join-Anforderung wird dabei ignoriert.
Spaltenueberschriften werden von unten nach oben vererbt: Wird in
einer (Join-)Anforderung eine Spaltenueberschrift gesetzt, so wird
diese auch in der oberen Join-Anforderung zur Darstellung der
Spalte verwendet (jedoch nicht die '###'- und '##'-Angaben), es
sei denn dort werden neue Spaltenueberschriften gesetzt.
Zeilenueberschriften werden gar nicht vererbt.
Euro-Optionen in der oberen Join-Anforderung uebersteuern die in
den darunterliegenden (Join-)Anforderungen. Insbesondere kann dies
Auswirkungen haben auf die Ergebnisse von Spaltenbedingungen in den
untergeordneten Anforderungen.
Aufbereitungsangaben bei Werten (z.B. Anzahl der Kommastellen)
werden von unten nach oben vererbt, koennen aber in der oberen
Join-Anforderung neu gesetzt werden. Wird allerdings ein Wert in
einer untergeordneten (Join-)Anforderung z.B. auf Tausender
gerundet, so setzt die darueberliegende Joinanforderung auf dem
gerundeten Ergebnis auf.
Weitere Besonderheiten des Joins ueber Join-Anforderungen:
----------------------------------------------------------
Ist beim Join die Treffermenge leer, so wird im Standardfall die
sogenannte Dummy-Auspraegung beim entsprechenden Join-Feld ausge-
geben. Diese wird fuer unterschiedliche Join-Felder i. A.
unterschiedlich dargestellt, denn z.B. kann die Laenge variieren.
Existieren diese Auspraegungen bei Feldern in unteren Join-
Anforderungen, ueber die in der oberen Joinanforderung gejoint
wird, so werden die entsprechenden Datensaetze unabhaengig von der
jeweiligen Darstellung der Dummy-Auspraegung zusammengefuehrt.
Die sogenannten Exemplarnummern, die zur Unterscheidung von mehr-
fach angeforderten Schluesseln angegeben werden muessen, muessen
in der oberen Join-Anforderung auch bei den Pseudo-Schluesseln
ZEITRAUM und WERTE angegeben werden, wenn z.B. in einer unteren
Join-Anforderung einer dieser Schluessel aus mehreren ASS-Anforde-
rungen und ein Exemplar davon in der oberen Join-Anforderung
praesentiert wird.
Sternsummenzeilen einer normalen ASS-Anforderung werden standard-
maessig in die darueberliegende Join-Anforderung vererbt, wenn
beim Feld nicht die Join-Option "Summenzeilen nicht vererben"
('NOSUM') gesetzt ist. Die Summenzeilen koennen durch Auslassung
der Option somit von einer normalen ASS-Anforderung bis in die
obere Join-Anforderung vererbt werden, wenn auch dort 'NOSUM' nicht
gesetzt ist.
Summenzeilen einer normalen Anforderung koennen aber auch ueber die
Option "Summenzeilen ausgeben" ('SUMJOIN') in einer Join-Anforde-
rung als Datenzeilen ausgegeben werden. Ist dies in einer der
unteren Join-Anforderungen der Fall, so werden diese Datenzeilen
auch an die obere Join-Anforderung vererbt, ohne dass dort die
'SUMJOIN'-Option gesetzt werden muss.
Die Optionen 'NOSUM' und 'SUMJOIN' koennen auch kombiniert werden:
Z.B. ist es moeglich, Summenzeilen einer normalen ASS-Anforderung
an eine der unteren Join-Anforderungen zu vererben und diese dann
in der oberen Join-Anforderung als Datenzeilen auszugeben.
Umgekehrt koennen auch Summenzeilen einer ASS-Anforderung in einer
der unteren Join-Anforderungen als Datenzeilen ausgegeben und dort
zur Bildung neuer Sternsummen in der Nachselektion herangezogen
werden (dazu muessen sie allerdings textiert sein). Die neuen
Sternsummen wiederum koennen dann an die obere Join-Anforderung
vererbt oder dort als Datenzeilen ausgegeben werden.
Vorheriges Kapitel: 12 EURO-Auswertung
Nächstes Kapitel: 14 Verkettete Anforderungen