COBOL Customization

This article describes the REXX Exec and JCL procedure that you can use to integrate modern integrated development environments (IDEs) with COBOL programs running under CA IDMS.
idms19
This article describes the REXX Exec and JCLP procedure that you can use to integrate modern integrated development environments (IDEs) with COBOL programs running under CA IDMS.
2
2
Sample REXX Exec
IDMSEMLC
The IDMSEMLC REXX Exec invokes the CA IDMS DML Precompiler. IDMSEMLC must be configured both within z/OS and IDEs. You may want to move IDMSEMLC to your TSO CLIST library to facilitate its invocation from IDEs.
When coding DML statements that span multiple lines, it is a best practice to code in two or fewer lines for maximum compatibility with the local compiler.
IDMSIMLC
IDMSIMLC is a sample version of the parameter file that is generated by IDEs that can be used as input to the IDMSEMLC exec. IDMSIMLC must be tailored to your site-specific requirements. It can be used in a local invocation of IDMSEMLC, for example, under TSO/ISPF, to validate the proper functioning of the exec.
To invoke the IDMSEMLC exec, type the following code at a TSO prompt. These execs must be in a library that exists within your TSO clist library concatenation.
IDMSEMLC site-specific-idms-samples-lib(IDMSIMLC)
JCL Procedure
IDMSJMLC
IDMSJMLC is a JCL Procedure that invokes the CA IDMS DML Precompiler for programs that either run-under or access CA IDMS. This procedure also invokes the COBOL compiler and Linkage Editor.  IDMSJMLC is invoked when certain menu actions are performed within IDEs, and should be added to one of your system PROCLIBs.
Customizing the Sample REXX Exec and JCL Procedure
The COBOL REXX Exec and JCL Procedure must be configured both within z/OS and IDEs.
z/OS
The following variables must be configured within IDMSEMLC.:
  • cdmslib_dsn1
    Identifies the name of the first Data Set in the CDMSLIB concatenation.
  • cdmslib_dsn2
    Identifies the name of the second Data Set in the CDMSLIB concatenation.
  • cdmslib_dsn3
    Identifies the name of the third Data Set in the CDMSLIB concatenation.
  • sysidms_dsn
    Identifies the default Data Set Name that is used in the SYSIDMS DD statement.
  • syslst_dsn
    Identifies the default Data Set Name that is used in the SYSLST DD statement.
  • unit
    Identifies the UNIT that is used to allocate all DASD files.
Modern IDEs
To make use of the pre-processor exec, modify the following items in the
Remote preprocessor configuration
section within the
Property Group
that is associated with your sub-project.
To locate
Remote preprocessor configuration
, follow this navigation:
  1. Within the IDE window, edit the
    Property Group
    that is associated with your sub-project.
  2. Select the
    COBOL
    tab.
  3. Select
    Editor Configurations
    .
  4. Expand
    Preprocessor Integration
    .
  5. Select
    Use
    remote preprocessors
    .
  6. Expand
    Remote preprocessor configuration
    .
  7. Configure the following items:
    When specifying your DSN, other than the Preprocessor Parameters, do not add more spaces before or after the DSN.
    • REXX or CLIST invoking preprocessor
      Set to the DSN (including member name) where the IDMSEMLC list resides on your mainframe LPAR.
    • Preprocessor output location
      Set to the DSN of the SYSPCH file that is created by the invocation of the IDMSDMLC.
    • precompiler.
    • High-level qualifier for preprocessor data
      Set to the high-level-qualifier (HLQ) that you want to use for all non-explicit DSN references in the exec, for example, the SYS00X work files. Typically, this HLQ is your TSO User-ID.
    • Preprocessor Parameters
      Preprocessor parameters allow you to override the default specification for both the SYSIDMS and SYSLST DSN specifications in the exec. The parameters must be separated using one or more spaces.
      • SYSIDMS=
        Set to the DSN of an existing SYSIDMS file. Example:  SYSIDMS=
        <data set name>
      • SYSPCH=
        Set to the DSN of the SYSPCH file that is created by the DMLC precompiler.  Example:  SYSPCH=
        <data set name>
z/OS
This section describes how to set pre-processor integration preferences, and configure JCL Procedure variables.
Setting Pre-processor Integration Preferences
For the IDE samples, configure the following pre-processor integration preference settings to determine how the pre-processor statements are processed.
To locate the
Preprocessor Integration
, follow this navigation:
  1. Within the IDE, select
    Window
    .
  2. Select
    Preferences
    .
  3. Expand
    COBOL
    .
  4. Expand
    Editor
    .
  5. Select
    Preprocessor Integration
    .
  6. Within the Identifying preprocessor statements, the following configuration is recommended:
    1. Check
      Ignore changes in case.
    2. Check
      Ignore changes to tab and space characters.
    3. Uncheck
      Ignore changes in the sequence numbering areas.
Configuring JCL Procedure Variables
The following variables must be configured within IDMSJMLC:
  • LNGPRFX
    The high-level-qualifier of your COBOL library.  
  • COBOL library.
  • CICSLIB
    The high-level-qualifier of your CICS SDFHLOAD COBOL library.
  • UNITDMLC
    The unit name for all files that are allocated in the DMLC precompile step.
  • UNITC
    The unit name for all files that are allocated in the COBOL step.
  • IDMSLIB1
    The Data Set Name for your Network loadlib or DBA load library.
  • IDMSLIB2
    The Data Set Name for your Custom load library.
  • IDMSLIB3
    The Data Set Name for your complete CA IDMS load library.
  • SYSIDMS
    The Data Set Name for the SYSIDMS DD statement in the DMLC step.
Modern IDEs
To invoke the IDMSJMLC proc, modify the following items in the
Procedures and Steps
section within the
Property Group
that is associated with your sub-project.
To locate the
Procedures and Steps
section,
follow this navigation:
  1. Within the IDE Property Group window, edit the
    Property Group
    that is associated with your sub-project.
  2. Select the
    COBOL
    tab.
  3. Select
    Procedures and Steps
    .
  4. Expand
    Step options
    , and add the following
    Procedure & Steps:
    1. IDMSJMLC -  DMLC
    2. IDMSJMLC - COBOL
  5. Configure the following items for the DMLC step:
    1. Options:
      Specify NOINSTALL.   This setting prevents the storage of the RCM into the dictionary for programs that use SQL DML.
    2. Support Error Feedback:
      Do not check this box.
  6. Configure the following items for the DMLC step:
    1. Listing output data set
      The Data Set Name that is used to store the listing file generated by the compiler.
    2. Object deck data set
      The Data Set Name that is used to store the Object module generated by the compiler.
    3. SYSLIB
      The Data Set Name that is used for the COBOL, SYSLIB DD statement.
    4. Support Error Feedback
      Check this box if you want to use the automated mechanism for reporting compiler errors through the
      Remote Error List
      in CA Development Environment for z Systems.
    5. Data set qualifier for compiler errors
      The Data Set prefix that is used to communicate compiler errors to the IDE.
Using CICS
COBOL programs that run under CICS (and contain IDMS DML statements) can also be maintained using modern IDEs.
To enable CICS support, check mark the CICS button on the
Runtime Environments
window within the COBOL tab, for the Property Group associated with your sub-project.