Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Zusätzliche Maßnahmen bei CALL-DML-Programmen mit BCALLSI

Das Dienstprogramm BCALLSI müssen Sie ablaufen lassen, wenn Sie CALL-DML-Programme haben oder mit DMLTEST (CALL-DML-Anwendungen) arbeiten.

BCALLSI erzeugt das SSITAB-Modul (SUBSCHEMA INFORMATION TABLE) mit den Subschema-Informationen, die ein CALL-DML-Programm zum Zeitpunkt des Programmlaufs braucht.

BCALLSI berücksichtigt beim Start ggf. eine zugewiesene UDS/SQL-Pubset-Deklaration (siehe Handbuch „Datenbankbetrieb", Pubset-Deklarations-Jobvariable). Eine fehlerhafte Zuweisung führt zum Programmabbruch.

Subschema-Informationen bereitstellen

Zum Abarbeiten von DML-Anweisungen benötigt der DBH Informationen über das jeweilige Subschema. Folgende Informationen liegen, vom DDL-Compiler hinterlegt, im COSSD vor:

  • das transformierte Subschema

  • die sog. Prüftabelle (CHECK-TABLE)

Für den DBH werden diese Informationen auf unterschiedlichen Wegen zusammengestellt:

  • Bei COBOL-DML-Programmen braucht der COBOL-Compiler die Subschema-Information zum Zeitpunkt der Übersetzung des Anwenderprogramms.

  • Bei CALL-DML-Programmen wird die Subschema-Information zum Zeitpunkt des Programmlaufs benötigt. Da der Zugriff auf das COSSD zum Zeitpunkt des Programmlaufs zu zeitaufwendig wäre, erzeugen Sie zunächst mit BCALLSI das SSITAB-Modul, wobei BCALLSI die Informationen des COSSD verwendet. Zum Zeitpunkt des Programmlaufs wird das SSITAB-Modul aus der Modulbibliothek vom CALL-DML-Verbindungsmodul nachgeladen. Bei CALL-DML-Programmen muss demnach der BCALLSI-Lauf zusätzlich zwischen dem Übersetzen der Subschema-DDL und dem Ablauf des Programms erfolgen.

Spezielle Subschemata im „alten“ Format bearbeiten

Neben dem Standardformat, in dem das transformierte Subschema und die zugehörige Prüftabelle in der COSSD vorliegen, wird auch das "alte" Format bis einschließlich UDS/SQL V1.2 mit 1 byte langen Referenznummern für Satzarten und Sets (siehe auch Tabelle 12, "Schema-DDL übersetzen") noch durch BCALLSI bearbeitet. Das "alte" Format wird für Subschemata benötigt, die in KDBS-Anwendungen bearbeitet werden . Ein COSSD kann gleichzeitig transformierte Subschemata im Standardformat wie im "alten" Format enthalten. Aus einem transformierten Subschema im "alten" Format erzeugt BCALLSI ein SSITAB-Modul im Format der UDS/SQL V1.2, das weiterhin vom aktuellen CALL-DML-Umsetzer unterstützt wird.

Funktionen von BCALLSI

BCALLSI kann sowohl auf ein COSSD einer UDS/SQL Version > V1.2 als auch auf ein COSSD der UDS/SQL V1.2 oder UDS/SQL V1.1 zugreifen.

BCALLSI erfüllt folgende Funktionen:

  • Übersetzen des transformierten Subschemas in Realm-, Set-, Satz- und Feldtabellen.

  • Ausdrucken des transformierten Subschemas.

  • Prüfen der Realm-, Set-, Satz- und Feldnamen auf Eindeutigkeit innerhalb der ersten acht bzw. 30 Zeichen. Sind die Namen nicht eindeutig, so wird im Anschluss an die Liste des transformierten Subschemas eine Warnung ausgegeben.

  • Kopieren der Prüftabelle aus dem COSSD zum Vervollständigen der SSITAB.

  • Ausgeben des SSITAB-Moduls in die EAM-Datei unter dem Namen subschema##, wobei subschema aus den ersten sechs Zeichen des vollständigen Subschemanamens gebildet wird.

Das erzeugte SSITAB-Modul müssen Sie anschließend mit Hilfe des BS2000-Dienstprogramms LMS in eine Bibliothek eintragen. Der Name der Bibliothek ist frei wählbar. Der DBH lädt vorrangig SSITAB-Module aus einer Bibliothek nach, die mit dem Linknamen $UDSSSI zugewiesen wird. Wenn die SSITAB-Module nicht nur in einer Bibliothek gehalten werden, z.B. pro Datenbank in einer eigenen, können die weiteren Bibliotheken mit den Linknamen BLSLIB00 bis BLSLIB99 zugewiesen werden (siehe Handbuch „Datenbankbetrieb", Abschnitt DBH-Startkommandos und Handbuch „Anwendungen programmieren", Abschnitt UDS/SQL-TIAM-Anwendungen binden, laden und starten).

Subschemanamen müssen in den ersten sechs Zeichen eindeutig sein, da der Name des SSITAB-Moduls aus den ersten sechs Zeichen plus ’##’ gebildet wird.

Systemumgebung von BCALLSI

Bild 15: Systemumgebung von BCALLSI

Anweisungen für BCALLSI

Anweisungen                                                           

Standard-
wert

Bedeutung

{SCHEMA | S}=schemaname,
  {SUBSCHEMA | SS}=subschemaname

-

generell erforderlich;
weist BCALLSI die Namen des Schemas und des Subschemas zu

schemaname
Name des Schemas, der in der Schema-DDL vergeben wurde

subschemaname
Name des Subschemas, der in der Subsche-ma-DDL vergeben wurde

[{,MESSAGE | ,M}=
  {*ALL|N[O-AMBIGUITY-8]}]

*ALL

*ALL
Alle Eindeutigskeits-Verletzungen, auch in den ersten 8 Zeichen, werden auf SYSLST einzeln ausgegeben.

NO-AMBIGUITY-8
Eindeutigkeits-Verletzungen in den ersten 8 Zeichen eines Namens werden nicht einzeln ausgegeben

Tabelle 17: Anweisungen für BCALLSI

Kommandofolge zum Starten von BCALLSI

Die hier beschriebene Kommandofolge geht davon aus, dass UDS/SQL mit IMON installiert wurde (siehe Abschnitt „START-Kommandos der UDS/SQL-Programme").

01 /DELETE-SYSTEM-FILE FILE-NAME=*OMF

02 /ADD-FILE-LINK LINK-NAME=DATABASE,FILE-NAME=dbname.DBDIR

03 /SELECT-PRODUCT-VERSION PRODUCT-NAME=UDS-SQL,VERSION=version,SCOPE=*TASK

04 /START-UDS-BCALLSI

05 bcallsi-anweisung

03

Die angegebene Version von BCALLSI wird ausgwählt. Die Angabe der Version wird generell empfohlen, da mehrere UDS/SQL-Versionen parallel installiert sein können.

04

Das UDS/SQL-Dienstprogramm kann auch mit dem Aliasnamen BCALLSI gestartet werden.

05

Bei BCALLSI gibt es keine END-Anweisung!

SSITAB-Modul in die Modulbibliothek eintragen

01 /START-LMS

02 //OPEN-LIB LIB=modlib,MODE=*UPDATE

03 //ADD-ELEMENT FROM-FILE=*OMF,TO-ELEMENT=*LIBRARY-ELEMENT(TYPE=R)

04 //END

Beispiel

/DELETE-SYSTEM-FILE FILE-NAME=*OMF
/ADD-FILE-LINK LINK-NAME=DATABASE,FILE-NAME=VERSAND.DBDIR
/SELECT-PRODUCT-VERSION PRODUCT-NAME=UDS-SQL,    VERSION=02.9B00 
/START-UDS-BCALLSI
 ***** START       BCALLSI     (UDS/SQL  V2.9  0000 )     2017-06-28   11:26:28
 SCHEMA=ARTIKELVERSAND,SUBSCHEMA=ADMIN,MESSAGE=*ALL
 WARNING: THERE ARE  NAME AMBIGUITIES IN THE FIRST 8 CHARACTERS OF SOME NAMES
 SEE PRINTOUT!
 SSITAB ADMIN##  WRITTEN TO EAM-OMF
 
 ***** DIAGNOSTIC SUMMARY OF BCALLSI
 
               NO WARNINGS
               NO ERRORS
               NO SYSTEM-ERRORS
 
 ***** END OF DIAGNOSTIC SUMMARY
 ***** NR OF DATABASE ACCESSES  :           0
 ***** NORMAL END   BCALLSI     (UDS/SQL  V2.9  0000 )     2017-06-28   11:26:28
/MODIFY-JOB-SWITCHES ON=(1,4)
/START-LMS
//MOD-LOG-PAR LOG=*MAX
//OPEN-LIB LIB=LMS.SSITAB,MODE=*UPD(STATE=*ANY)
//ADD-ELEMENT FROM-FILE=*OMF,TO-ELEM=*LIB(TYPE=R),WRITE-MODE=*ANY
INPUT  OMF
OUTPUT LIBRARY= :SQL2:$XXXXXXXX.LMS.SSITAB
       ADD UDSHASH AS (R)UDSHASH/@(0002)/2017-06-28 , OUTPUT REPLACED 
       ADD ADMIN## AS (R)ADMIN##/@(0001)/2017-06-28 
 
//SHOW-ELEM-ATTR ELEM=*LIB-ELEM()
 
INPUT  LIBRARY= :SQL2:$XXXXXXXX.LMS.SSITAB
TYP NAME     VER (VAR#) DATE        NAME     VER (VAR#) DATE
(R) ADMIN##  @   (0002) 2017-06-28  UDSHASH  @   (0002) 2017-06-28
(R) VERWAL## @   (0004) 2017-06-28
       3 (R)-ELEMENT(S) IN THIS TABLE OF CONTENTS
//END
 
PRINTOUT:
    .
    .
WARNING:    ITEM NAME  'KUNDEN-N'  OF RECORD TYPE  'KUNDE   '  IS   2-FOLD AMBIGUOUS.
WARNING:    ITEM NAME  'AUFTR-PO'  OF RECORD TYPE  'AUFTR-PO'  IS   2-FOLD AMBIGUOUS.
WARNING:    ITEM NAME  'NEXT-RAT'  OF RECORD TYPE  'RATENZAH'  IS   3-FOLD AMBIGUOUS.
WARNING:  RECORD NAME  'ARTIKELA'                          IS   2-FOLD AMBIGUOUS.
WARNING:    ITEM NAME  'LIEFER-N'  OF RECORD TYPE  'LIEFERAN'  IS   2-FOLD AMBIGUOUS.
WARNING:    ITEM NAME  'LIEFER-P'  OF RECORD TYPE  'LIEFERAN'  IS   2-FOLD AMBIGUOUS.
WARNING:    ITEM NAME  'LIEFER-S'  OF RECORD TYPE  'LIEFERAN'  IS   2-FOLD AMBIGUOUS.
    .
    .
             SCHEMANAME       :  ARTIKELVERSAND
             SUBSCHEMANAME    :  ADMIN
             MODUL-ENTRY      :  ADMIN##
             LENGTH OF MODUL  :         6408 BYTES
             SSITAB-VERSION   :            2