Share This:

One of the Best kept secrets of BMC CHANGE MANAGER for DB2 is the IMPORT function.


The idea behind IMPORT is that sometimes is more easy to specify changes with any of those languages than using the product panels. This function also helps you to create automated procedures to implement changes, for example coming from a design tool in DDL format or from a COMPARE process in CDL format. You can IMPORT into CHANGE MANAGER for DB2 text files containing change specifications written either in DDL, CDL or DML.


DDL (Data Definition Language) is the DDL standard DB2, that can be created manually, extracted from any design tool or any product generating DDL (for example, HDDL function from BMC Catalog Manager for DB2) or from a BASELINE Report created with BMC CHANGE MANAGER for DB2.


CDL (Change Definition Language) is a proprietary language for change specifications used by BMC CHANGE MANAGER for DB2. This language is the output from the COMPARE process, but you can also generate manually text files containing DDL, as in the following example:


-CDL  nnnn ALTER DATABASE old_name NAME new_name.


DML (Data Manipulation Language) is another proprietary language from BMC, used as change definition language within the CM/PILOT component of BMC CHANGE MANAGER for DB2.  You can also use two CM/PILOT scripts to help you create SQL-like Data Manipulation Language (DML) statements to update, delete, and migrate data structures. This language can be generated from the CM/PILOT panels or also manually and imported into a WORKID. An example could be:



       SET NAME = 'new_name'

       WHERE NAME=’old_name’


The content of these files is validated by BMC CHANGE MANAGER for DB2 and converted into an ALTER WORKID. After the statements are imported, BMC CHANGE MANAGER for DB2 creates entries in the CD tables as if they had been requested in the Specification component. This WORKID can be browsed, modified, analyzed and executed.


In the “ALTER and CHANGE MANAGER for DB2® User Guide” there is a full section dedicated to “Importing files”, in the "Altering data structures in a database environment” chapter.


In the “ALTER and CHANGE MANAGER for DB2® Reference Manual” there are several sections with examples, either of CDL or DML.

In the HLQ.DBCNTL data set there are several examples (ACMDMLxx) of pregenerated DML files that can be edited and adapted to the user needs.


For DDL or CDL the Import component can also use Inbound Migrate Profiles to make input from another system compatible with the receiving subsystem’s version of the application. Inbound migrate profiles contain only change rules that modify imported data structure definitions. The change rules are applied as the CDL file or DDL file is imported.


However, DML does not use Migrate Profiles and you will get a message BMC70372W - Migrate profile invalid for DML


The Import process can be run either in foreground or in batch, find attached examples of different IMPORT processes:


For DDL:


//IMPORTIN DD DISP=SHR,                               

//         DSN=ISPRXM.BMCPROD.JCL(DDL)               

//ALUIN    DD *                                       

  SSID DJJ1                                           

  WORKID ISPRXM.TESTDDL                                  

  SOURCETYPE DDL                                      



For CDL:


//IMPORTIN DD DISP=SHR,                                 

//         DSN=ISPRXM.BMCPROD.JCL(CDL)                  

//ALUIN    DD *                                         

  SSID DJJ1                                             

  WORKID ISPRXM.TESTCDL                                   

  SOURCETYPE CDL                                        



For DML:   


//AUCIN    DD DISP=SHR,                             

//         DSN=ISPRXM.BMCPROD.JCL(DML)              

//ALUIN    DD *                                     

  SSID DJJ1                                         

  CMPILOT REUSEWORKID                               

  WORKID ISPRXM.TESTDML                               




To facilitate the IMPORT process, there are additional syntax for managing the target WORKID:


NEWWORKID creates the WORKID as part of the IMPORT, you can use a template for generating the WORKID name.


REPLACEWORKID imports into an existing WORKID and replaces its previous content or creates a new one if it does not exists


WORKIDMERGE combines the imported specifications with any other specifications that could exist in the WORKID.


I hope you will find this function useful for your advanced change management needs in DB2.