Kapitelübersicht



5. Die externe Schnittstelle
  5.1 Das lange Schnittstellenformat
  5.2 Das kurze Schnittstellenformat
  5.3 Textformat mit Line-Sequentiell
  5.4 Allgemeine Bemerkungen zur Folgeeinspeicherung







      5.      Externe Schnittstellendatei


Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis



     ASS ist ein in sich abgeschlossenes System. Es uebernimmt
     Daten aus anderen Verfahren nur ueber die Externe
     Schnittstellendatei.


     Die externe Schnittstelle ist also die zentrale Schnittstelle
     von ASS-fremden Datenbestaenden zu ASS. Alle Statistikdaten,
     die in ASS-Summendatenbanken gespeichert und maschinell
     zur Verfuegung gestellt werden koennen, muessen in externen
     Schnittstellendateien bereitgestellt werden, von wo aus
     sie ihm Rahmen der Folgeeinspeicherung in ASS-Summendatenbanken
     uebernommen werden. Von der Externen Schnittstelle an uebernimmt
     ASS in vollem Umfang die Verarbeitung der Daten.


     Jede Schnittstellendatei beginnt mit einem Kopfsatz und endet
     mit einem Endesatz.


     Eine Schnittstellendatei kann sich ueber mehrere Dateien
     erstrecken (Datei-Splitting). Nur die letzte Datei einer
     Schnittstellendatei wird mit einem Endesatz abgeschlossen.
     Zwischen Kopf- und Endesatz befinden sich die Summensaetze.
     Alle Saetze der Externen Schnittstelle besitzen einen festen
     Anfangsteil, der Satzart, Ordnungsbegriff usw. enthaelt.
     Kopf- und Summensatz enthalten zusaetzlich Schluessel-
     und Wertetabelle, waehrend der Endesatz noch die Anzahl der
     Summensaetze (vom letzten Kopfsatz an gezaehlt) angibt.


     Die Anlieferung von Saetzen in der Externen Schnittstellen-
     datei kennt folgende Formate:


       - langes Format
       - kurzes Format (ueber User-Exit)
       - Text - Format (nur Windows/Unix)


     in Kombination mit den beiden Moeglichkeiten


       - "ungeshrinkt"
       - "geshrinkt" (moeglich, sofern Software-Fremdprodukt EXPAND
         zur Verfuegung steht)


     In externen Schnittstellen werden Zeiten beim Wert i. a. in der
     Form JJMM angeliefert (s.u.). Es koennen jedoch auch Zeiten
     in der Form JJMMTT (z.B. fuer Tages-Arbeitsgebiete) angeliefert
     werden. In diesem Fall gilt fuer alle unten beschriebenen
     Satzformate von externen Schnittstellen (kurzes bzw. langes
     Schnittstellenformat):
       - Die Satzarten von Kopf- bzw. Summensaetzen sind um 20
         zu vergroessern, um die Existenz des Tages anzukuendigen.
       - Statt 4-stelliger Zeitangaben sind beim Wert stets 6-stellige
         Zeitangaben der Form JJMMTT anzuliefern.
     Eine Schnittstellendatei darf nur ein Datumsformat enthalten
     (entweder die Form JJMM oder die Form JJMMTT).






       5.1   Das lange Schnittstellenformat


Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis



     Der nachfolgende Teil dieses 5. Kapitels, der den physikalischen
     Aufbau der externen Schnittstelle beschreibt kann beim ersten
     Lesen uebersprungen werden.




     Schnittstellendateien sind sequentielle Dateien variabler
     Satzlaenge.


     Jede Schnittstellendatei beginnt mit einem Kopfsatz
     (Satzart = H'0000' bzw. H '0002' bzw. H'0004')
     und endet mit einem Endesatz (Satzart = H'0099').


     Zwischen Kopf- und Endesatz befinden sich die Summensaetze.
     Eine Schnittstellendatei kann sich ueber mehrere Dateien
     erstrecken (Datei-Splitting). Nur die letzte Datei einer
     Schnittstellendatei enthaelt einen Endesatz.
     Jede Datei kann mit einem Kopfsatz beginnen - muss aber nicht.
     Enthaelt bei Datei-Splitting eine Schnittstellendatei mehrere
     Kopfsaetze, so muessen die Inhalte dieser Kopfsaetze identisch
     sein.


     Kopf- und Summensaetze haben den gleichen Aufbau (siehe unten).
     Jeder Satz beschreibt seinen Aufbau. Der Variable Teil 'TAB'
     enthaelt am Anfang soviele Schluesseleintraege (Schluesselnummer
     und Schluesselinhalt), wie in 'SCHL_ZAHL' angegeben ist.
     Dahinter folgen soviele Werteeintraege (Wertenummer, Werteinhalt,
     Wertedatum), wie in 'WERTE_ZAHL' angegeben ist.


     Der Kopfsatz gibt an, welche Information in den folgenden
     Summensaetzen zu erwarten ist (Schluesselnummer, Wertenummer,
     Wertedatum).  Wird ein Wert als Bewegung angeliefert und
     gibt es zu diesem Wert mehrere Zeitraeume in der betreffenden
     Schnittstellendatei, so reicht es aus, im Kopfsatz den
     kleinsten moeglichen und den groessten moeglichen Zeitraum
     anzukuendigen.
     Die Felder fuer Schluesselinhalt und Werteinhalt muessen geloescht
     sein (Ausnahme Satzart H'0004', siehe unten).


     In den Summensaetzen muessen alle Felder fuer Schluessel- und
     Werteeintraege belegt sein.





     ANMERKUNG:


     In der nachfolgenden Beschreibung wird oft Assembler-Notation
     benutzt. Beispielsweise bedeutet  H'0004'


       - in COBOL :  PIC S9(4) COMP VALUE +4
       - in PLI   :  BIN FIXED(15) INIT(4)



     Enthaelt eine Schnittstelle Werte vom Typ BEWEGUNG, die in einer
     Summendatenbank als BESTAND gespeichert werden, so sind
     LADEN und FORTSCHREIBEN zu unterscheiden.
     Vor der Fortschreibung ist ein Ladelauf erforderlich, in dem
     die oben genannten Werte als Bestandswerte angeliefert werden
     (Einzelheiten hierzu siehe weiter unten).


     Bei der Satzart H'0004' wird im Kopfsatz angegeben, in welcher
     Form die Werte in den Summensaetzen angeliefert werden, und
     zwar wird dies im Werteinhalt ausgedrueckt:


     WERTEINHALT = 0 : Der betreffende Wert wird in den nachfolgenden
                       Summensaetzen als BESTAND angeliefert.
     WERTEINHALT = 1 : Der betreffende Wert wird in den nachfolgenden
                       Summensaetzen als BEWEGUNG angeliefert.


     Werte mit der Werteart '1' (BEWEGUNG) duerfen nur als BEWEGUNG
     angeliefert werden, Werte mit der Werteart '0' (BESTAND) muessen
     bei der Ersteinspeicherung als BESTAND angeliefert werden
     (LADEN) und koennen anschliessend ueber Bewegungen
     fortgeschrieben werden (FORTSCHREIBEN) oder immer wieder als
     BESTAND angeliefert werden. Diese Regelung gilt auch fuer
     Vorgabewerte, wenn diese im BATCH eingespeichert werden.


     Es gibt unterschiedliche Satzarten fuer Kopfsaetze, die
     im Laufe der Entwicklung von ASS nacheinander entstanden. Aus
     Kompatibilitaetsgruenden bleiben diese Kopfsatzarten weiterhin
     gueltig. Bei Programmierung von neuen Schnittstellen empfehlen wir
     Ihnen, nur noch die neueste Satzart H'0004' zu benutzen, weil
     sich dann die Schnittstelle selber beschreibt und weil Sie dann
     unabhaengig von der manuellen Pflege der Parameterdatenbanken
     sind. Bei den eigentlichen Summensatzarten verhaelt es sich
     aehnlich. Kuenftig sollten hier nur noch die Satzarten '0005'
     bzw. '0015' Anwendung finden.


     Anmerkung zum SHRINK:
     Das im folgenden gelegentlich angesprochene Softwareprodukt
     SHRINK ist Fremdsoftware. Sollte im Rechenzentrum SHRINK nicht
     zur Verfuegung stehen, so eruebrigen sich die zu diesem Thema
     gemachten Aussagen.





     Bitte beachten Sie:
     -------------------





      - Werte sind chronologisch aufsteigend anzuliefern.
        Bei Werten, die als BEWEGUNG angeliefert werden, koennen Sie
        die Chronologie-Bedingung durch eine Verarbeitungsoption
        in der Folgeeinspeicherung ausschalten
        (Option 'MAXDATGLEICH' oder 'NMAXDAT').


      - In einem Lauf der Folgeeinspeicherung koennen mehrere
        Schnittstellendateien fuer ein Arbeitsgebiet verarbeitet
        werden (Dateiverkettung, nur bei IBM).


      - Eine Schnittstellendatei, die in ein bestimmtes Arbeitsgebiet
        einfliessen soll, muss mindestens einen Wert enthalten,
        der im betreffenden Arbeitsgebiet verwendet wird.


      - Ein Wert mit derselben Wertenummer und demselben Wertedatum
        darf in einem Schnittstellensatz hoechstens einmal vorkommen.


      - Eine Schnittstellendatei, die in ein bestimmten Arbeitsgebiet
        einfliessen soll, muss alle verwendeten Schluessel der
        betroffenen Verdichtungsstufen enthalten mit folgender
        Ausnahme:


        Ist ein Schluessel (z. B. KREIS) einem anderen (z. B. ORT)
        hierarchisch uebergeordnet und werden die Auspraegungen des
        untergeordneten Schluessels (ORT) gegen die
        Schluesseldatenbank geprueft (KEPRKZ = '0'), so braucht der
        uebergeordnete Schluessel (KREIS) nicht in der
        Schnittstellendatei enthalten zu sein, er wird in der
        Folgeeinspeicherung automatisch ergaenzt, falls die folgende
        Bedingung erfuellt ist:


        Zu jeder Auspraegung des untergeordneten Schluessels darf es
        einen Eintrag und somit nur eine Zuordnung zu einer ueberge-
        ordneten Auspraegung in der Schluesseldatenbank geben.
        Einzelheiten hierzu sind im Handbuch "Einrichten Arbeitsgebiet
        im Dialog" beschrieben.





  Beispiel



                       ! Verwendete Schluessel !
                       !      im Arbeitsgebiet !
     Verdichtungsstufe !                       ! Verwendete Werte
                       ! S_1   S_2   S_3   S_4 !
     -------------------------------------------------------------
                       !                       !
             1         !  +     +     +     +  !  W_1
                       !                       !
             2         !  +     +              !  W_1   W_2
                       !                       !
             3         !  +           +        !        W_2   W_3



    Werden nun im Kopfsatz die Werte W_2 und W_3 angekuendigt, so
    sind fuer die Einspeicherung nur die Verdichtungsstufen 2 und 3
    betroffen. Also brauchen im Kopfsatz und damit auch in den
    Summensaetzen nur die Schluessel S_1, S_2 und S_3 angeliefert
    werden.


    Es sei nun der Schluessel S_1 hierarchisch dem Schluessel S_2
    untergeordnet. Werden die Auspraegungen von S_1 nicht gegen die
    Schluesseldatenbank geprueft (KEPRKZ gleich '1' oder '2'), so
    muss der Schluessel S_2 unbedingt angeliefert werden. Wenn
    dagegen die Auspraegungen von S_1 gegen die Schluesseldatenbank
    geprueft werden (KEPRKZ gleich '0'), so ist die Anlieferung von S_2
    freigestellt. Bei dieser Betrachtung ist es unerheblich, ob die
    Auspraegungen von S_2 gegen die Schluesseldatenbank geprueft
    werden oder nicht. Diese Aussagen gelten nur, wenn keine
    Auspraegungsduplikate vorkommen (siehe oben).


    HINWEIS: Alle verwendeten Schluessel des Arbeitsgebiets koennen
    angeliefert werden.
    Darueber hinaus koennen sogar Schluessel angeliefert
    werden, die nicht im Arbeitsgebiet zu den verwendeten
    Schluesseln zaehlen. Wichtig ist nur, dass saemtliche im
    Kopfsatz angekuendigten Schluessel auch in jedem Summensatz
    enthalten sind.





    Die Behandlung zeitabhaengiger Schluessel in der Schnittstelle
    --------------------------------------------------------------
    Bei der Folgeeinspeicherung koennen Sie grundsaetzlich mit und ohne
    Beruecksichtigung des Zeitaspekts bei Schluesselinhalten arbeiten.
    Standardmaessig ist die Zeitpruefung ausgeschaltet. Wenn Sie
    mit dieser Einstellung eine Einspeicherung vornehmen, so geht ASS
    davon aus, dass alle Schluesselauspraegungen in der Schluessel-
    datenbank unbegrenzt gueltig sind, ohne Ruecksicht auf das
    mit der Schluesselauspraegung gespeicherte Gueltigkeitsintervall.


    Wird dagegen mit aktivierter Zeitpruefung eingespeichert, so wird
    bei der Verarbeitung nicht nur das Vorhandensein der betreffenden
    Auspraegungen, sondern auch ihre zeitliche Gueltigkeit berueck-
    sichtigt. Beim Versuch zu einer Auspraegung, deren Gueltigkeit
    abgelaufen ist, Werte anzuliefern, verweigert das System die
    Annahme dieser Werte.


    Werden in der Schnittstelle Auspraegungen einer Schluessel-
    hierarchie angesprochen, so wird nicht nur die Gueltigkeit der
    einzelnen Auspraegungen fuer sich, sondern auch die zeitliche
    Validitaet der mitangesprochenen Auspraegungsbeziehungen geprueft.


    ACHTUNG:


    Bestehen zu einer Auspraegung Duplikate, d.h. die Auspraegung
    geht mehrere, in der Regel zeitlich verschiedene Beziehungen zu
    uebergeordneten Auspraegungen ein, so muessen in der Schnittstel-
    le saemtliche Auspraegungen mitangeliefert werden. Eine automa-
    tische Ergaenzung der uebergeordneten Auspraegungen durch ASS
    ist dann nicht mehr moeglich.





    Zulaessige Kombinationen von Satzarten:
    ---------------------------------------


       Satzart im   !  Zulaessige Satzart im
       Kopfsatz     !  Summensatz
       ---------------------------------------
                    !
        0           !  1 , 11
                    !
        2           !  3 , 13
                    !
        4           !  5 , 15





    Es folgen die Satzaufbauten im Detail:
    Die Laengenangaben verstehen sich, wenn nichts anderes gesagt
    ist, in Bytes. Eine Bemerkung zum Format:





        Format ! Assembler ! COBOL          ! PLI
    -----------------------------------------------------------
               !           !                !
         H     !    H      ! PIC S9(4)  COMP! BIN FIXED(15)
         F     !    F      ! PIC S9(9)  COMP! BIN FIXED(31)
         CH    !    CLn    ! PIC X(n)       ! CHAR (n)





    Beschreibung der fuer alle Satzarten gleichen Anfangselemente
    -------------------------------------------------------------





    Name      !Laenge!Format!       Beschreibung
  ---------------------------------------------------------------------
              !      !      !
  Satzlaenge  !   4  !      !  Das uebliche Satzlaengenfeld
              !      !      !  (Achtung: hier ist das Satzlaengen-
              !      !      !  feld gemeint, das vom Betriebssystem
              !      !      !  benutzt wird. In COBOL hat man hierauf
              !      !      !  im allgemeinen keinen Zugriff).
              !      !      !
  SCHNITTST_NR!   2  !  H   !  Nummer der Schnittstelle
              !      !      !
  EDATUM      !   6  !  CH  !  Erstellungsdatum JJMMTT
              !      !      !
  SATZ_ART    !   2  !  H   !  Satzart
              !      !      !  H'0000': Kopfsatz Laden/Abgleich
              !      !      !  H'0001': Summensatz Laden/Abgleich
              !      !      !  H'0011': Summensatz Laden/Abgleich
              !      !      !           Satz ist "geshrinkt"
              !      !      !  H'0002': Kopfsatz Bestand/Bewegung
              !      !      !           entsprechend Werte-Anlieferung
              !      !      !           von der Wertedatebank
              !      !      !  H'0003': Summensatz Bewegung
              !      !      !  H'0013': Summensatz Bewegung
              !      !      !           Satz ist "geshrinkt"
              !      !      !  H'0004': Kopfsatz, Wertanlieferungsart
              !      !      !           ist im Satz beschrieben
              !      !      !  H'0005': Summensatz zu H'0004'
              !      !      !  H'0015': Summensatz zu H'0004'
              !      !      !           Satz ist "geshrinkt"
              !      !      !  H'0099': Endesatz
              !      !      !



    Es folgen nun - gesondert nach den einzelnen Satzarten -
    die uebrigen, nicht fuer alle Satzarten identischen Bestandteile
    der Schnittstellensaetze.




   Restlicher Satzaufbau fuer Satzart H'0000', H'0002', H'0004'
   -----------------------------------------------------------


    Name      !Laenge!Format!       Beschreibung
  ---------------------------------------------------------------------
              !      !      !
              !      !      !
              !      !      !
              !      !      !
  ORD_BEGR    !  30  !  CH  !  Ordnungsbegriff im Ausgangsbestand
              !      !      !  Wird von ASS bei fehlerhaften
              !      !      !  Schnittstellensaetzen im Protokoll
              !      !      !  angedruckt, dient somit der
              !      !      !  Fehlerermittlung.
              !      !      !
  SCHL_ZAHL   !   2  !  H   !  Anzahl Schluessel in TAB
              !      !      !
  WERT_ZAHL   !   2  !  H   !  Anzahl Werte in TAB
              !      !      !
  TAB         ! VAR  !      !  Tabelle mit Schluesseln und Werten
              !      !      !  SCHL_ZAHL gibt an, wieviele
              !      !      !  Schluesseleintraege in TAB enthalten
              !      !      !  sind (Index laeuft von 1 bis
              !      !      !  SCHL_ZAHL).
              !      !      !  WERT_ZAHL gibt an, wieviele
              !      !      !  Werteeintraege in TAB enthalten sind
              !      !      !  (Index laeuft von SCHL_ZAHL + 1 bis
              !      !      !  SCHL_ZAHL + WERT_ZAHL).
              !      !      !  Jeder Tabelleneintrag ist 14 Byte lang,
              !      !      !  bei Werten mit der Zeit in der Form
              !      !      !  JJMMTT ist ein Werteeintrag 16 Byte
              !      !      !  lang.
              !      !      !  Aufbau eines Schluesseleintrags:
              !      !      !   - Schluesselnummer   H
              !      !      !   - Schluesselinhalt 12 Byte CH
              !      !      !                      linksbuendig
              !      !      !                      in Kopfsaetzen auf
              !      !      !                      Blank geloescht.
              !      !      !  Aufbau eines Werteeintrags:
              !      !      !   - Wertenummer        H
              !      !      !   - Werteinhalt        8 Byte gepackt
              !      !      !     Bei Satzart H'0000' und H '0002'
              !      !      !     geloescht auf 0.
              !      !      !     Bei Satzart H'0004'
              !      !      !      0 : Betreffender Wert wird als
              !      !      !          BESTAND angeliefert.
              !      !      !      1 : Betreffender Wert wird als
              !      !      !          BEWEGUNG angeliefert.
              !      !      !   - Wertedatum  4 Byte CH Format JJMM
              !      !      !      oder 6 Byte Format JJMMTT




   Restlicher Satzaufbau fuer Satzart H'0001', H'0003', H'0005'


    Name      !Laenge!Format!       Beschreibung
  ---------------------------------------------------------------------
              !      !      !
              !      !      !
  ORD_BEGR    !  30  !  CH  !  Ordnungsbegriff im Ausgangsbestand
              !      !      !  Wird von ASS bei fehlerhaften
              !      !      !  Schnittstellensaetzen im Protokoll
              !      !      !  angedruckt, dient somit der
              !      !      !  Fehlerermittlung.
              !      !      !
  SCHL_ZAHL   !   2  !  H   !  Anzahl Schluessel in TAB
              !      !      !
  WERT_ZAHL   !   2  !  H   !  Anzahl Werte in TAB
              !      !      !
  TAB         ! Var  !      !  Tabelle mit Schluesseln und Werten
              !      !      !  analog zu Kopfsaetzen
              !      !      !  Jeder Tabelleneintrag ist 14 Byte lang
              !      !      !  Aufbau eines Schluesseleintrags:
              !      !      !   - Schluesselnummer    H
              !      !      !   - Schluesselinhalt   12 BYTE CH
              !      !      !                        linksbuendig
              !      !      !  Aufbau eines Werteeintrags:
              !      !      !   - Wertenummer         H
              !      !      !   - Werteinhalt         8 Byte gepackt
              !      !      !   - Wertedatum  4 Byte CH  Format JJMM
              !      !      !     oder 6 Byte CH Format JJMMTT


         Restlicher Satzaufbau fuer Satzart H'0011, H'0013', H'0015'
         ----------------------------------------------------------





         Saetze der Satzart H'0011', H'0013', H'0015' sind wie Saetze
         der Satzart H'0001', H'0003', H'0005' aufgebaut, sie sind
         jedoch ab dem Feld "ORD_BEGR" einschliesslich "geshrinkt"
         (siehe Hinweis weiter unten).





         Restlicher Satzaufbaus fuer Satzart H'0098'
         ------------------------------------------


         Saetze dieser Satzart werden bei der
         Schnittstellenverarbeitung ueberlesen.



    Name      !Laenge!Format!       Beschreibung
  ---------------------------------------------------------------------
              !      !      !
  ORD_BEGR    !  30  !  CH  !  Ordnungsgegriff im Ausgangsbestand
              !      !      !  Wird von ASS bei fehlerhaften
              !      !      !  Schnittstellensaetzen im Protokoll
              !      !      !  angedruckt, dient somit der
              !      !      !  Fehlerermittlung.
              !      !      !
              !      !      !
  SUMSAETZE   !   4  !  F   ! Anzahl der Summensaetze von Anfang bis
              !      !      ! einschliesslich dieser (Teil-) Datei





         Restlicher Satzaufbau fuer Satzart H'0099'
         -----------------------------------------





  ORD_BEGR    !  30  !  CH  !  Ordnungsbegriff im Ausgangsbestand
              !      !      !  (fuer Fehlerhinweise)
              !      !      !
  SUMSAETZE   !   4  !  F   ! Anzahl der Summensaetze in
              !      !      ! der Schnittstellendatei






       5.2   Das kurze Schnittstellenformat


Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis


    Sollte der Platzbedarf einer externen Schnittstelle einmal
    zu gross werden, so gibt es auch die Moeglichkeit, mit einer
    "kurzen" ASS-Schnittstelle zu arbeiten.
    Die kurze Schnittstelle wird verarbeitet, wenn Sie in der Vorlauf-
    karte von PST1001 'EXIT=MST0089' angeben.
    Sie koennen auch mit eigenen USER-EXITS arbeiten.
    Einzelheiten hierzu sind im Handbuch 'BETRIEB'
    beschrieben.





          Struktur der "kurzen" ASS-Schnittstelle
          ---------------------------------------



    Generell gilt:


    Die Position der Felder Satzart und Schnittstellennummer
    wird fuer alle Satzarten vertauscht.



    1. Kopfsatz  (Satzart = 0, Satzart = 2, Satzart = 4):



    Kopfsaetze werden in der "langen" Form verarbeitet, es werden
    jedoch einige Felder anders belegt:


         - Ordnungsbegriff:  Byte 29 und Byte 30:
                             Laenge des Ordnungsbegriffs in
                             den nachfolgenden Summensaetzen
                             H (HALBWORT).
                             Zulaessiger Inhalt:
                             0 <= Laenge <= 30


         - Schluesselinhalt: Byte 1 und Byte 2:
                             Laenge des Schluesselinhaltes in den
                             nachfolgenden Summensaetzen H
                             (HALBWORT). Zulaessiger Inhalt:
                             1 <= Laenge <= 12
                             Byte 3 bis Byte 12 geloescht auf Blank.





    2. Summensatz  (Satzart = 1, Satzart = 3 , Satzart = 5):



         - Satzart         : wie bisher
         - Erstellungsdatum entfaellt
         - Schnittstellennummer entfaellt
         - Ordnungsbegriff : In der Laenge, wie im Kopfsatz
                             angekuendigt
                             (entfaellt bei Laenge 0).
         - Anzahl-Schluessel entfaellt
         - Anzahl-Werte    :
              1. Byte  Art der Wertetabelle     binaer
              2. Byte  Anzahl Werte             binaer
         - Schluesselnummer entfaellt
         - Schluesselinhalt jeweils in der Laenge, wie
           im Kopfsatz angekuendigt.
           Schluesselinhalte muessen in der im Kopfsatz
           angekuendigten Reihenfolge geliefert werden.
         - Aufbau der Wertetabelle in Abhaengigkeit
           vom 1. Byte des Feldes Anzahl-Werte:
              X'00' : wie in der langen Form.
              X'10' : Wertenummer: H, nicht ausgerichtet
                      Inhalt     : 8 Byte gepackt
                      Zeitraum   : aus Kopfsatz,
                          Zeitraum muss in der ganzen
                          Schnittstelle konstant sein.
                      Laenge eines Tabelleneintrages: 10 Byte.
              X'20' : Wertenummer : H, nicht ausgerichtet
                      Lth         : Bit (08)
                                    Laenge des nachfolgenden
                                    Werteinhaltes in Bytes.
                      Inhalt      : Gepackt in der Laenge von Lth,
                       Beispiel:
                       DEC FIXED(7) (PLI) bzw. PIC S9(7) COMP-3 (COBOL)
                       entspricht der Laenge 4.
                      Zeitraum    : aus Kopfsatz,
                          Zeitraum muss in der ganzen
                          Schnittstelle konstant sein.
                      Laenge eines Tabelleneintrages 3 + Lth Byte.


    ACHTUNG: In einem Summensatz duerfen maximal 255
             Werteeintraege vorhanden sein.





    3. Summensatz geshrinkt (Satzart = 11, Satzart = 13, Satzart = 15):



    Satz wird wie unter 2. aufgebaut.
    "geshrinkt" wird ab Ordnungsbegriff (einschliesslich),
    im Prinzip wie bisher
    (siehe Hinweis weiter unten).



    4. Endesaetze  (Satzart = 98, Satzart = 99):



    Wie bisher (jedoch wie bereits oben gesagt sind die Felder fuer
    Schnittstellennummer und Satzart vertauscht).



    HINWEIS zum "Shrinken":


    Es gibt einen kleinen Unterschied beim "Shrinken" der
    (Standard-)Schnittstelle und der "kurzen" Schnittstelle.
    Der "geshrinkte" Satz der (Standard-)Schnittstelle enthaelt nach
    der Satzart das vom "Shrink" gelieferte RDW
    (RECORD-DESCRIPTION-WORD).


    Bei der "kurzen" Schnittstelle wird ab Ordnungsbegriff "geshrinkt".
    Der Satzaufbau ist wie folgt:
    RDW, Satzart, "geshrinkter" Teil des Summensatzes.





    Beispiel fuer eine externe Schnittstelle, langes Format



    1. Kopfsatz





                 8 7 1 0 0 2     G E N E R I E R T E
    008400000011F8F7F1F0F0F20004C7C5D5C5D9C9C5D9E3C540
     . . . .05 . . . .10 . . . .15 . . . .20 . . . .25


     S C H N I T T S T E L L E                       _
    E2C3C8D5C9E3E3E2E3C5D3D3C540404040404000020004076D
     . . . .30 . . . .35 . . . .40 . . . .45 . . . .50



    40404040404040404040404007964040404040404040404040
     . . . .55 . . . .60 . . . .65 . . . .70 . . . .75


         _                 8 6 0 1   >
    40076D000000000000001CF8F6F0F1076E000000000000001C
     . . . .80 . . . .85 . . . .90 . . . .95 . . . 100


     8 6 0 1   ?                 8 6 0 1
    F8F6F0F1076F000000000000001CF8F6F0F107700000000000
     . . . 105 . . . 110 . . . 115 . . . 120 . . . 125


           8 6 0 1
    00001CF8F6F0F1
     . . . 130 . .





    2. Summensatz





                 8 7 1 0 0 2     G E N E R I E R T E
    008400000011F8F7F1F0F0F20005C7C5D5C5D9C9C5D9E3C540
     . . . .05 . . . .10 . . . .15 . . . .20 . . . .25


     S C H N I T T S T E L L E                       _
    E2C3C8D5C9E3E3E2E3C5D3D3C540404040404000020004076D
     . . . .30 . . . .35 . . . .40 . . . .45 . . . .50


     1 1                         1 1 1
    F1F1404040404040404040400796F1F1F14040404040404040
     . . . .55 . . . .60 . . . .65 . . . .70 . . . .75


         _                 8 6 0 1   >               <
    40076D000000000000103CF8F6F0F1076E000000000000104C
     . . . .80 . . . .85 . . . .90 . . . .95 . . . 100


     8 6 0 1   ?               * 8 6 0 1
    F8F6F0F1076F000000000000105CF8F6F0F107700000000000
     . . . 105 . . . 110 . . . 115 . . . 120 . . . 125


         % 8 6 0 1
    00106CF8F6F0F1
     . . . 130 . .







    3. Endesatz





                 8 7 1 0 0 2     G E N E R I E R T E
    003000000011F8F7F1F0F0F20063C7C5D5C5D9C9C5D9E3C540
     . . . .05 . . . .10 . . . .15 . . . .20 . . . .25


     S C H N I T T S T E L L E
    E2C3C8D5C9E3E3E2E3C5D3D3C540404040404000000001
     . . . .30 . . . .35 . . . .40 . . . .45 . . .
                                          !      !
                                           ------
                                             V


                                  Anzahl Summensaetze






       5.3   Schnittstellenformat fuer Dateien im
             Format line sequential (Textformat)


Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
            -----------------------------------
    Wie bei anderen Formaten der externen Schnittstelle
    (ASSINxx fuer PCL1001) ueblich, beginnt diese mit einem
    Kopfsatz und endet mit einem Endesatz. Dazwischen
    befinden sich die eigentlichen Daten auf 0 bis n
    Summensaetze verteilt. Technisch koennen Kopfsatz,
    Summensaetze und Endesatz auf verschiedenen Dateien
    abgespeichert sein, die durch die Angabe von ASSIN=n (n
    = 1,2,...,40) in der Vorlaufkarte zu PCL1001
    konkateniert werden.

    Beispiel:                Kopfsatz auf Datei ASSIN01
                         Summensaetze auf Datei ASSIN02
                             Endesatz auf Datei ASSIN03

    Durch Angabe von ASSIN = 3, werden diese
    Dateien hintereinander abgearbeitet.

    Die einzelnen Saetze der externen Schnittstelle bestehen aus
    verschiedenen Feldern. Einzelne Eintraege werden dabei
    durch ein Semikolon separiert. Duerfen die Inhalte zu
    einzelnen Eintraegen fehlen (siehe unten), so folgen
    dementsprechend unter Umstaenden mehrere Semikola
    aufeinander. Mit Ausnahme bei Schluesselinhalten werden
    fuehrende und nachfolgende Leerzeichen toleriert. Bei
    Feldern, deren Inhalte Zahlenangaben sind, duerfen
    Vorzeichenangaben vor oder hinter der Ziffernfolge stehen.
    Fehlt das Vorzeichen, so gilt die Zahl als positiv. Aufbau
    und Bedeutung der einzelnen Felder lehnen sich an die
    kurze Schnittstelle an.
    Die Werteinhalte haben kein Komma. Damit liefert man zum Beispiel
    Euro in Cent an, falls der entsprechende Wert zewi Nachkommastellen
    hat.
    Die ASS-Zeit kann in der Form JJMM oder JJMMTT angeliefert
    werden. Das Format muss jedoch in einer Schnittstellendatei
    einheitlich sein.


    Aufbau Kopfsatz:
    ===============
    Das erste Feld im Kopfsatz ist der Ordnungsbegriff. Dieser
    muss fix den Inhalt KOPFSATZ haben. Dem
    Ordnungsbegriff folgt das Feld Erstelldatum mit dem
    Aufbau JJMMTT, anschliessend das Feld Nummer der
    Schnittstelle (Arbeitsgebietsnummer). Die Inhalte dieser
    beiden Felder koennen fehlen. In diesem Fall ist in der
    Vorlaufkarte von PCL1001 eine Angabe zum
    Arbeitsgebiet zu machen. Es folgen die Felder 'Anzahl
    Schluesseleintraege' und 'Anzahl Werteeintraege'. Danach
    kommen so viele Schluesselnummern, wie in Anzahl
    Schluesseleintraege angekuendigt werden. Abschliessend
    folgen die Werteeintraege. Jeder Werteeintrag besteht dabei
    aus einem Triple aus Wertenummer, Anlieferungsart (0
    entspricht Bestandsanlieferung, 1 entspricht
    Bewegungsanlieferung) und Wertedatum (in der Form
    JJMM oder JJMMTT). Analog zur kurzen Schnittstelle muessen im
    Kopfsatz nur minimales und maximales Wertedatum der in
    den Summensaetzen vorkommenden Werte angekuendigt
    werden. Wird nur genau ein Zeitaspekt eingespeichert, so
    existiert zu dem betreffenden Wert nur ein Werteeintrag.

    Formaler Aufbau:
    ---------------

     Ordnungsbegriff;
     Erstelldatum;
     Nummer der Schnittstelle;
     Anzahl Schluesseleintraege;
     Anzahl Werteeintraege;
     Schluesselnummer Schluessel 1;
       .
       .
       .
     Schluesselnummer Schluessel n; (mit n='Anz. Schluesseleintraege')
     Wertenummer Wert 1;
     Anlieferungsart Wert 1;
     Wertedatum Wert 1;
       .
       .
       .
     Wertenummer Wert m;            (mit m='Anzahl Werteeintraege')
     Anlieferungsart Wert m;
     Wertedatum Wert m

    Beispiel:
    --------
    KOPFSATZ;000421;3;2;4;4711;4712;5711;1;0001;5711;1;
             0004;5712;1;0004;5713;1;0001

    Aufbau Summensatz:
    =================
    Jeder Summensatz beginnt mit einem Ordnungsbegriff,
    dessen Inhalt fehlen darf. Es folgen die Schluesselinhalte zu
    den im Kopfsatz angekuendigten Schluesselnummern. Dabei
    muessen Anzahl und Reihenfolge mit dem Kopfsatz
    harmonieren. Anschliessend folgen die Werteeintraege,
    wobei analog zum Kopfsatz jeder Werteeintrag aus einem
    Triple von Feldern besteht: Wertenummer, Werteinhalt,
    Wertedatum. Jede Wertenummer / -datum-Kombination
    muss durch den Kopfsatz angekuendigt werden, wobei pro
    Wert die Angabe von minimalem und maximalem Datum
    genuegt (siehe Kopfsatz).


    Beispiel (entsprechend Beispiel fuer Kopfsatz):
    --------
    ;Nord;Detmold;5711;+1000;0001;5713;-112;0004
    Summensatz;Sued;Muenchen;5711;8000+;0004;5712;1234-
    ;0004;5713;112;0004

    Bemerkung: Der Begriff 'Summensatz' in obigem Beispiel
               ist ein Beispiel fuer einen Ordnungsbegriff.


    Achtung: Bei Schluesselinhalten sind fuehrende Leerzeichen
             zu beachten. Die Inhalte 'Nord' und ' Nord'
             sind im ASS verschieden.

    Aufbau Endesatz:
    ===============
    Der Endesatz besteht nur aus einem Ordnungsbegriff mit
    dem fixen Inhalt ENDESATZ.

    Beispiel:
    --------
    ENDESATZ






       5.4   Allgemeine Bemerkungen zur Folgeeinspeicherung


Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis


     Streng genommen muss zwischen Erst- und Folgeeinspeicherung
     unterschieden werden. Die Ersteinspeicherung eines Arbeits-
     gebietes ist die allererste Uebernahme von Daten aus der
     externen Schnittstelle in eine ASS-Summendatenbank.


     Sie hat besondere Bedeutung. In der Ersteinspeicherung wird das
     kleinste Datum festgelegt, zu dem Summendaten existieren
     duerfen. Dieses Datum wird in der Steuerungsdatenbank unter
     Datum 1. Einspeicherung festgehalten. Die Zeitraeume aller
     spaeteren Einspeicherungen muessen groesser oder gleich dem
     Datum der 1. Einspeicherung sein. Der Grund hierfuer ist
     folgender: Um Platz in der Summendatenbank zu sparen, speichert
     ASS Zeitraeume nicht in Datumsform (z. B. JJMM), sondern
     von Null beginnend durchgezaehlt. Der Monat der ersten
     Einspeicherung erhaelt Null, der naechste Monat 1 usw.
     Eine Aenderung ist nur moeglich, wenn man wieder ganz von vorne
     beginnt und alle Erst- und Folgeeinspeicherungen wiederholt.


     Schnittstellendateien, die die ASS-Zeit in der Form JJMMTT
     anliefern, koennen in Arbeitsgebiete auf Monatsbasis
     eingespeichert werden, wobei dann ueber den Tag verdichtet
     wird (Addition der verschiedenen Tage eines Monats).


     Schnittstellendateien, die die ASS-Zeit in der Form JJMM
     anliefern, koennen in Arbeitsgebiete auf Tagesbasis nicht
     eingespeichert werden.



     Die Behandlung von BEWEGUNGswerten
     ----------------------------------


     Bewegungswerte koennen nur als Bewegung angeliefert werden.
     Die Zahlen aus der Schnittstelle werden unter dem in der
     Schnittstellen angegeben Zeitaspekt in der Summendatenbank
     abgelegt, evtl. auch aufaddiert. Nullen werden nicht gespeichert.
     Sie koennen Bewegungen auch noch nachtraeglich fuer bereits
     eingespeicherte Zeitraeume nachliefern (ergaenzen).





     Die Behandlung von BESTANDswerten
     ---------------------------------


     Die Behandlung von Bestandswerten ist etwas schwieriger als die
     von Bewegungen. Ein Bestandswert gilt immer stichtagsbezogen.
     Einen neuen Stichtagsbestand erhalten Sie, wenn Sie einen
     alten Stichtagsbestand haben und die Aenderungen, die sich bis zum
     neuen Stichtag ergeben haben, in der Schnittstelle anliefern.


     Man nennt dies Fortschreiben von Bestaenden. Offensichtlich
     braucht die Bestandsfortschreibung einen "alten" Bestand. Das
     bedeutet fuer die Ersteinspeicherung von Bestandswerten, dass sie
     in der Form von Bestaenden angeliefert werden muessen (eine
     sogenannte Bestandsuebernahme).


     Beispiel:
     ---------
     Sie fuehren fuer den Januar 2000 eine Bestandsuebernahme durch.
     Den Bestand fuer Februar erhalten Sie, wenn Sie die Aenderungen,
     die im Laufe des Februars angefallen sind, in Form von Bewegungen
     anliefern. Technisch ist jedoch auch eine komplette
     Bestandsuebernahme fuer den Februar moeglich. Mischformen sind
     ebenso zulaessig, etwa immer eine Bestandsuebernahme im Januar,
     eine Fortschreibung durch Bewegungen fuer die restlichen Monate
     des Jahres, dann wieder Bestandsuebernahme fuer den Januar des
     Folgejahres (weil eventuell die Befuerchtung besteht, dass bei
     der Fortschreibung durch Bewegungen nicht garantiert werden
     kann, dass in der Schnittstelle immer alle Bewegungen richtig
     angeliefert werden koennen).


     Wird die Kopf-Satzart 4 verwendet, so koennen Bestandswerte
     bei der ersten Einspeicherung von Summendaten in ein Arbeitsgebiet
     auch als Bewegung angeliefert werden. In diesem Fall wird ein
     "alter" Bestand (der eigentlich noch nicht existiert), der
     ueberall 0 ist, durch die Bewegungsanlieferung fortgeschrieben.


     HINWEIS: Die Fortschreibung eines Bestandes in der
     Folgeeinspeicherung ist im allgemeinen deutlich billiger als eine
     regelmaessige Bestandsuebernahme, weil die externe Schnittstelle
     bei Bewegungsfortschreibung in der Regel deutlich kleiner als der
     Gesamtbestand ist.


     ANMERKUNG: Angenommen, dass ein Bestandswert bereits fuer ein
     ganzes Jahr, also von Januar bis Dezember eingespeichert ist.
     Jetzt wird eine Bewegung fuer April geliefert.
     Diese Bewegung wird als "vergessene" Bewegung interpretiert
     und in die Bestandszahlen der Monate April bis Dezember
     eingearbeitet. Die Bewegung habe den numerischen Inhalt 1.
     Dies erhoeht dann den Bestand fuer April, Mai, ... , Dezember
     um 1. Will man jedoch erreichen, das sich nur der Bestand
     fuer April um 1 erhoeht, so muss fuer Mai eine Bewegung mit
     -1 angeliefert werden. Dies saldiert sich dann fuer die
     Monate Mai, Juni, ... , Dezember zu 0.





Vorheriges Kapitel: 4. ASS-Funktionsumfang

Nächstes Kapitel:   6. Datenbankbeschreibungen