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