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).
Systemumgebung von BCALLSI
Bild 15: Systemumgebung von BCALLSI
Anweisungen für BCALLSI
Anweisungen | Standard- | Bedeutung |
| - | generell erforderlich; schemaname subschemaname |
| *ALL | *ALL NO-AMBIGUITY-8 |
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").
| |
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
|
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