ADSO Migration Utility User's Guide
Copyright © 1983-2017 Laderman Associates


User Template Facility

    Overview
    Input Statement Types
    Input Syntax
    OS Execution JCL
    DOS Execution JCL

Overview

This facility enables you to create a file of selected components, formatted to any desired template (in 80-byte images). LADAMU35 will replicate your template for each entity occurrence of specified entity types and specified migration statuses, substituting the appropriate entity type, name, version, and new version. Some possible uses are:

Input Statement Types

Six types of input statements allow you to define the format and selection criteria for the template replication.

Input Syntax

All input (except for the actual header, template, and trailer records) begins in position 1 of the input record. Parameters are separated by commas; any specifications following the first blank are ignored. At least one ENTITY statement is required; precisely one MIGR, one TEMPLATE and one TEMPEND statement are required. The HEADER, HEADEND, TRAILER, and TRAILEND statements need only be specified if you wish to create header or trailer records (as explained in the HEADER and TRAILER syntax).


ENTITY=	ALL
	ADSA
	ATTRIBUTE
	CLASS
	DIALOG
	EDITMOD (user edit module)
	ELEMENT
	FILE
	MAP
	MESSAGE
	MODULE
	PANEL
	PROGRAM
	RECORD
	SUBSCHEMA
	TABLE
	USER 

    select occurrences of only the specified entity type(s) from the EXTRACT file.
    ALL includes all entity types listed above.


MIGR= 	ALL
	YES
	NO
	REVIEW
	REPLACE
	ERROR

    select entity occurrences with only the specified migration status(es) from the EXTRACT file.
    ALL includes all migration statuses.


HEADER
header records
HEADEND

    HEADER  specifies that header records begin with the next record.
    HEADEND specifies that header records have ended.

    The header records may consists of up to 25 records, in any desired format, which will 
    precede the template replications in the output file. One use might be for SIGNON and 
    SET OPTIONS statements if you are using the template to create CA-IDMS compiler syntax. 
    Another might be to create a JOB card if you are using the template to create execution JCL. 
    There are two special keywords which may be used within the header records and for which 
    LADAMU35 will substitute the appropriate values. They are:

      SRC-DICT for which the name specified in the Phase I SRCDICT statement will be 
         substituted.
      OBJ-DICT for which the name specified in the Phase I OBJDICT statement will be 
         substituted.

     Each special keyword must be delimitted on each side by spaces, commas, equal signs, 
     slashes, parentheses, apostrophes, or any combination of these.


TEMPLATE
template records
TEMPEND

     TEMPLATE specifies that template records begin with the next record.
     TEMPEND specifies that template records have ended.

     The template records may consists of up to 25 records, in any desired format. LADAMU35 will 
     replicate these for each entity occurrence selected, based upon the ENTITY and MIGR 
     specifications. There are four special keywords which may be included (up to 10 times each) 
     and for which the appropriate value will be substituted. They are:

       ENTITY-TYPE for which the entity type of the entity occurrence will be substituted. 
          For example, if an element has been selected, the substituted value will be ELEMENT. 
          For ADSA applications, dialogs, and edit modules, the substituted value will be 
          PROGRAM. For all other entity types, the substituted value will be the actual entity 
          type as specified in the ENTITY statement.
       ENTITY-NAME for which the name of the entity occurrence will be substituted. The 
          AMU does nothing special for names which may contain imbedded blanks so, if you have 
          any of these, you should specify quotes (or apostrophes) as part of the template.
       ENTITY-VER for which the existing version number of the entity occurrence will be 
          substituted. Note that certain entity types, such as attributes, do not have versions, 
          but the AMU treats them as version 0.
       ENTITY-NEWVER for which the new version number of the entity occurrence will be 
          substituted. If NEWVER was not specified in the Phase I input, then the new version is 
          identical to the existing version.
     
    Each special keyword must be delimitted on each side by spaces, commas, equal signs, slashes, 
    parentheses, apostrophes, or any combination of these.


TRAILER
trailer records
TRAILEND

    TRAILER  specifies that trailer records begin with the next record.
    TRAILEND specifies that trailer records have ended.

    The trailer records may consists of up to 25 records, in any desired format, which will 
    follow the template replications in the output file. One use might be for SIGNOFF statements 
    if you are using the template to create a UCFBATCH execution. No keyword substitutions are 
    available in the trailer.

Input Examples


Example # 1: Creating DCMT VARY NEW COPY Syntax

ENTITY=DIALOG,MAP,TABLE
MIGR=REPLACE
HEADER
SIGNON DBA1 DBPASS1
HEADEND
TEMPLATE
DCMT VARY PROGRAM ENTITY-NAME ENTITY-VER NEW COPY
TEMPEND

In this example, we are creating UCFBATCH syntax to vary new copies for all dialogs, maps, and 
tables which are being replaced.


Example # 2: Punching & Linking Load Modules

ENTITY=DIALOG,MAP,TABLE
MIGR=YES,REPLACE
HEADER
//PUNLINK JOB CLASS=A
HEADEND
TEMPLATE
// EXEC PUNLINK,MEM=ENTITY-NAME
//STEP1.SYSIPT DD *
		SIGNON USER IS USER1 PASSWORD IS PASS1 USA RET.
		PUNCH LOAD MODULE ENTITY-NAME  VER ENTITY-VER  .
//STEP3.SYSIPT DD *
		SIGNON USER IS USER1 PASSWORD IS PASS1 USA UPDATE.
		DELETE LOAD MODULE ENTITY-NAME VER ENTITY-VER  .
TEMPEND

In this example, we are creating OS JCL to execute a procedure called PUNLINK for each dialog, 
map, and table which has been migrated. This procedure has three steps which punch the load 
module, link-edit to a load (core-image) library, and delete the load module from DDLDCLOD. 
Although not shown, condition codes are checked so that the third step is only executed upon 
successful completion of the link-edit. The symbolic MEM is used in the procedure for the member 
name in the SYSLMOD DD statement of the link-edit. The header record has been used to create a 
JOB card so that we may submit the JCL through the internal reader.


Example # 3: Deleting Entities After Migration

ENTITY=MODULE
MIGR=YES,REPLACE
HEADER
	SIGNON USER IS IDDUSER PASSWORD IS PASS1
	DBNAME IS SRC-DICT USAGE MODE IS UPDATE.
	SET OPTIONS FOR SESSION INPUT COLUMNS ARE 1 THRU 80.
HEADEND
TEMPLATE
DELETE ENTITY-TYPE ENTITY-NAME
	VERSION IS ENTITY-VER .
TEMPEND

In this example, we are creating IDMSDDDL syntax to delete all modules which have been migrated 
from the source IDD. Since we are deleting only one entity type, we could have specified 
MODULE instead of ENTITY-TYPE. Note that we have left enough space in the first line of the 
template for a 32 character module name and we have left a space before the period in the second 
line to delimit the special keyword ENTITY-VER.


Example # 4: Adding a Class/Attribute Relationship

ENTITY=ALL
MIGR=YES,REPLACE
HEADER
	SIGNON USER IS IDDUSER PASSWORD IS PASS1
	DBNAME IS SRC-DICT USAGE MODE IS UPDATE.
	SET OPTIONS FOR SESSION INPUT COLUMNS ARE 1 THRU 80
	REGISTRATION OVERRIDE.
HEADEND
TEMPLATE
MODIFY ENTITY-TYPE ENTITY-NAME
	VERSION IS ENTITY-VER 	'DATE MIGRATED' IS '02/17/88'.
TEMPEND


In this example, we are creating IDMSDDDL syntax to attach a class (DATE MIGRATED) and attribute 
(02/17/88) to each entity in the source which has been migrated. This is being done solely 
to maintain an historical record. If we wanted this same class/attribute relationship also in the 
object IDD, we could execute this IDMSDDDL prior to Phase IV. If we only wanted the 
relationship in the source IDD, we would execute this after Phase IV but prior to Phase V 
so that we would not interfere with the date comparisons of future migrations.

OS Execution JCL

//jobname  	JOB   site parameters
//step1  	EXEC 	PGM=LADAMU35
//STEPLIB  	DD   	DSN=loadlib,DISP=SHR
//EXTRACT 	DD 	DSN=sorted10,DISP=SHR 	from Phase III
//OUTFILE 	DD 	DSN=out35,DISP=(,CATLG,DELETE),UNIT=unit,
// 	      SPACE=space1,DCB=(RECFM=FB,LRECL=80,BLKSIZE=blksz)
//SYSLST 	DD 	SYSOUT=sysout class
//CARDIN 	DD 	*
input statements here
/*
//

You may choose to sort the input file prior to executing LADAMU35, depending on the purpose of the template. If you wish to delete multiple entity types, use the following sort parameters:

DOS Execution JCL

* $$ JOB JNM=jobname,site parameters
// JOB site parameters
* step 1 - LADAMU35, Place LIBDEFS here
// ASSGN SYS005,SYSLST
// ASSGN SYS006,SYSRDR
// ASSGN SYS030,DISK,VOL=volume,SHR
// DLBL  EXTRACT,'sorted10',0 		from Phase III
// EXTENT SYS030,volume,,,space1
// ASSGN SYS031,DISK,VOL=volume,SHR
// DLBL  OUTFILE,'out35',0
// EXTENT SYS031,volume,,,space2
// EXEC LADAMU35
input statements here
/*
/&
* $$ EOJ

You may choose to sort the input file prior to executing LADAMU35, depending on the purpose of the template. If you wish to delete multiple entity types, use the following sort parameters: