The BCALLSI utility routine must be executed if you have CALL-DML programs or work with DMLTEST.
BCALLSI generates the SSITAB module (SUBSCHEMA INFORMATION TABLE) with the subschema information needed by a CALL-DML program at program runtime.
At startup BCALLSI takes into account any assigned UDS/SQL pubset declaration (see the "Database Operation" manual, Pubset declaration job variable). Faulty assignment leads to the program aborting.
Providing subschema information
In order to execute DML statements, the DBH requires information on the subschema being used. The following information is available in the COSSD as stored by the DDL compiler:
the transformed subschema
the so-called CHECK TABLE
This information is gathered for the DBH in a number of different ways.
In the case of COBOL DML programs, the COBOL compiler needs the subschema information when compiling the application program.
For CALL DML programs, the subschema information is required at program runtime. Since access to the COSSD would be too time-consuming at runtime, you must generate the SSITAB module with BCALLSI beforehand. BCALLSI uses the information of the COSSD for this purpose. At program runtime, the SSITAB module is loaded from the module library by the CALL DML connection module. Thus, in the case of CALL DML programs, a BCALLSI run must be added between compilation of the Subschema DDL and the program run.
Editing special subschemas in the “old” format
In addition to the standard format in which the transformed subschema and the associated check table exist, the "old" format up to and including UDS/SQL V1.2 with 1-byte long reference numbers for record types and sets (see Table12 of "Compiling the Schema DDL") is still accepted by BCALLSI. The "old" format is required for subschemas which are processed in KDBS applications. A COSSD can contain transformed subschemas in both the standard format and in the "old" format. From a transformed subschema in the "old" format BCALLSI generates an SSITAB module in UDS/SQL V1.2 format, which is still supported by the current CALL-DML converter.
BCALLSI functions
BCALLSI can access a COSSD of UDS/SQL > V1.2 as well as a COSSD of UDS/SQL V1.2 or UDS/SQL V1.1.
BCALLSI performs the following functions:
Compilation of the transformed subschema in realm, set, record and item tables
Printing out the transformed subschema
Checking the realm, set, record and item names for unique identification by means of the first eight or thirty characters. If the names are not unique, a warning is appended to the printout of the transformed subschema.
Copying the check table from the COSSD in order to complete the SSITAB.
Outputting the SSITAB module to the EAM file under the name subschema##, where subschema comprises the first six characters of the full subschema name.
The SSITAB module generated must then be entered in a module library using the BS2000 utility routine LMS. The name of the library is freely selectable. The DBH gives first priority to loading SSITAB modules from a library assigned with the link name $UDSSSI. If the SSITAB modules are stored in more than one library, e.g. in a separate library for each database, other libraries can be assigned with the link names BLSLIB00 to BLSLIB99 (see the section “DBH start commands” in the "Database Operation" manual and the section "Compiling, linking and loading UDS/SQL-TIAM appliction programs" in the "Application Programming" manual).
System environment for BCALLSI
Figure 15: System environment of BCALLSI
Statements for BCALLSI
Statement | Default | Meaning |
| - | Mandatory; schema-name subschema-name |
| *ALL | *ALL NO-AMBIGUITY-8 |
Table 17: Statements for BCALLSI
Command sequence for starting BCALLSI
It is assumed for the command sequence described here that UDS/SQL was installed with IMON (see section "START commands for the UDS/SQL programs").
|
03 | The specified version of BCALLSI is selected. |
04 | The UDS/SQL utility routine can also be started with the alias BCALLSI. |
05 | There is no END statement for BCALLSI! |
Entering the SSITAB module in the module library
|
Example
/DELETE-SYSTEM-FILE FILE-NAME=*OMF /ADD-FILE-LINK LINK-NAME=DATABASE,FILE-NAME=SHIPPING.DBDIR /SELECT-PRODUCT-VERSION PRODUCT-NAME=UDS-SQL, VERSION=02.9B00 /START-UDS-BCALLSI ***** START BCALLSI (UDS/SQL V2.9 1801 ) 2019-01-29 09:27:25 SCHEMA=MAIL-ORDERS,SUBSCHEMA=ADMIN,MESSAGE=*ALL 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 1801 ) 2019-01-29 09:27:25 /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= :IUDS:$XXXXXXXX.LMS.SSITAB ADD ADMIN## AS (R)ADMIN##/@(0001)/2019-01-29 //SHOW-ELEM-ATTR ELEM=*LIB-ELEM() INPUT LIBRARY= :IUDS:$XXXXXXXX.LMS.SSITAB TYP NAME VER (VAR#) DATE NAME VER (VAR#) DATE (R) ADMIN## @ (0002) 2019-01-29 MANAGE## @ (0002) 2019-01-29 (R) UDSHASH @ (0002) 2019-01-29 VERWAL## @ (0002) 2019-01-28 4 (R)-ELEMENT(S) IN THIS TABLE OF CONTENTS //END PRINTOUT: . . . SCHEMANAME : MAIL-ORDERS SUBSCHEMANAME : ADMIN MODUL-ENTRY : ADMIN## LENGTH OF MODUL : 6408 BYTES SSITAB-VERSION : 2