How to create a model ID within the RC/Migrator product that will generate a DCLGEN for a table. When the DCLGEN utility is referenced in a Migration strategy, only the DCLGEN text should be displayed and not the DDL for the migration objects.
Release: R20
Component: RCM
The DCLGEN utility can be added to an existing model ID. If desired, a new model ID with only the DCLGEN utility can be created. If changing an existing model, be aware that these changes may impact other users who are using the model. Templating an existing model would be an alternate method. Access to Model Services with the appropriate authority is required to add/change Model Services. Any changes to default models will not be reflected in later releases in the altered models and therefore, customization becomes the users responsibility.
To add the DCLGEN utility to an existing model ID, perform the following steps:
UTILITY OBJ DESCRIPTION SIZE
DCLGEN T GENERATED DECLARATIONS RPI
CMD SYMBOL ERR REPLACEMENT VALUE
_ DCLLIB %USERID..HLQ1.DCLGEN1__________________________________
#IF(%SQLPOSA) <<< the use of %SQLPOSA is used to trigger user defined models and places the generated code after all SQL and standard utilities unlike SQLPOSB and SQLPOSO.
.CALL DSN PARM(%TOSSID)
.DATA
DCLGEN TABLE(%CREATOR..%OBJECT) -
LIBRARY('%DCLLIB') -
ACTION(ADD) -
LANGUAGE(COB2) -
STRUCTURE(%OBJECT)
.ENDDATA
#ENDIF
.CALL DSN PARM(ssid)
.DATA
DCLGEN TABLE(PTI.ACCUM_STRATEGY) -
LIBRARY('hlq.hlq1.DCLGEN1') -
ACTION(ADD) -
LANGUAGE(COB2) -
STRUCTURE(ACCUM_STRATEGY)
.ENDDATA
The DCLGEN code produced for this table looks like this:
******************************************************************
* DCLGEN TABLE(PTI.ACCUM_STRATEGY) *
* LIBRARY(hlq.hlq1.DCLGEN1) *
* LANGUAGE(COBOL) *
* STRUCTURE(ACCUM_STRATEGY) *
* QUOTE *
* ... IS THE DCLGEN COMMAND THAT MADE THE FOLLOWING STATEMENTS *
******************************************************************
EXEC SQL DECLARE PTI.ACCUM_STRATEGY TABLE
( STRATEGY_CREATOR CHAR(8) NOT NULL,
STRATEGY_NAME CHAR(8) NOT NULL,
SEQUENCE_FIELD SMALLINT NOT NULL,
INTERNAL_TYPE SMALLINT NOT NULL,
DATA VARCHAR(2048) NOT NULL
) END-EXEC.
******************************************************************
* COBOL DECLARATION FOR TABLE PTI.ACCUM_STRATEGY *
******************************************************************
01 ACCUM_STRATEGY.
10 STRATEGY-CREATOR PIC X(8).
10 STRATEGY-NAME PIC X(8).
10 SEQUENCE-FIELD PIC S9(4) USAGE COMP.
10 INTERNAL-TYPE PIC S9(4) USAGE COMP.
10 DATA.
49 DATA-LEN PIC S9(4) USAGE COMP.
49 DATA-TEXT PIC X(2048).
******************************************************************
* THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 5 *
******************************************************************