IDMS dictionary entity handling
search cancel

IDMS dictionary entity handling

book

Article ID: 187889

calendar_today

Updated On:

Products

IDMS IDMS - Database

Issue/Introduction

The IDMS product line uses a special IDMS database known as a dictionary to contain the definition of various IDMS entity types.

These entities are maintained by a series of different ISPF-like compilers which have both online and batch versions.

This document describes which entities are maintained by which compiler and the general procedure by which they can be maintained.

Environment

Release: All supported releases.

Resolution

The design of the various IDMS compilers is such that entities can be DISplayed in a syntactical format that can then be used as valid input to re-create a copy of that entity with a different name. For example, in IDD, an element can be displayed with this:

SIGNON DICTNAME APPLDICT.
DIS ELE EMP-ID V 100 AS SYN.

The compile will respond with this:

SIGNON DICT APPLDICT.                    
DIS ELE EMP-ID AS SYN.                   
     ADD                                 
     ELEMENT NAME IS EMP-ID VERSION IS 1 
*+       DATE CREATED IS      04/03/20   
*+       PREPARED BY XXXXXXX             
         PUBLIC ACCESS IS ALLOWED FOR ALL
         PRIMARY                         
             PICTURE IS 9(4)             
             USAGE IS DISPLAY            
*+           ELEMENT LENGTH IS 4         
         .

The user can then simply erase the DIS ELE line, change the name of the element, hit ENTER, and a similar element with the new name will be created. 

SIGNON DICT APPLDICT.                    
     ADD                                 
     ELEMENT NAME IS EMP-ID2 VERSION IS 1
         PUBLIC ACCESS IS ALLOWED FOR ALL
         PRIMARY                         
             PICTURE IS 9(4)             
             USAGE IS DISPLAY            
         .                               

The *+ indicates comments. By omitting the AS SYN clause, the entire output will be displayed with such comments and so the content of the work file cannot subsequently be used as input. This concept is used for all IDMS entities across the various compilers. Each compiler has an online version and a batch version.

COMPILER   BATCH VERSION  Most common
TASK CODE  PROGRAM NAME   Entities maintained
IDD        IDMSDDDL       Elements, records, modules, processes.
*OCF       *IDMSBCF       DMCL, segments, areas, files, buffers, journals, DBNAMEs, users, all SQL types.
SCHEMA     IDMSCHEM       Schemas
SSC        IDMSUBSC       Subschemas
SYSGEN     RHDCSGEN       Systems

For OCF and IDMSBCF, the SIGNON DICT APPLDICT indicated above is invalid. Use CONNECT TO APPLDICT; instead.

The instructions above are for how this can be done with the online compiler. When using the equivalent batch utility, the same concept can be used with some small differences. Instead of DISplaying the entity, it must be PUNched to a PDS member.

//        EXEC PGM=IDMSDDDL
//SYSIPT  DD *                                                

SIGNON DICT APPLDICT.
PUN ELE EMP-ID AS SYN.
//SYSPCH  DD DSN=your.pds.library(member),DISP=SHR

This will put the source of the entity in the member identified by SYSPCH. Make the edits above in the member and then re-run that syntax through the batch step

//        EXEC PGM=IDMSDDDL
//SYSIPT  DD *                                                

SIGNON DICT APPLDICT.
//        DD DSN=your.pds.library(member),DISP=SHR

Some of the entity types require an action be performed on them after creation. For example, schemas must be validated:

MOD SCHEMA EMPSCHM V 100.
VAL.

Subschemas must be generated:

MOD SUBS EMPSS01.
GEN.

Note that in the above examples, the DICTIONARY is specified in a SIGNON statement within the compiler syntax. This specification can also be made outside the compiler.

Online, this is done with the command DCUF SET DICTNAME dictname.
You can also use the TCF task code to invoke a screen where the dictname can be entered.

In batch, the dictionary can be specified in a SYSIDMS parameter.

//SYSIDMS  DD *
DICTNAME=dictname