EntireX Version 9.7
 —  Software AG IDL Extractor for COBOL  —

Introduction to the IDL Extractor for COBOL


Introduction

The Software AG IDL Extractor for COBOL inspects a COBOL source and its copybooks for COBOL data items to extract. It can also extract directly from copybooks. In a user-driven process supported by an Extractor Wizard, the interface of a COBOL server is extracted and - with various features offered by a Mapping Editor - modelled to a client interface.

graphics/intro.png

graphics/blue_1.gif Start the wizard, select your server program and make COBOL-specific settings.
graphics/blue_2.gif Optional. This step is not always necessary: it is possible that parameters have already been selected, for example as a result of the COBOL USING clause.
graphics/blue_3.gif Optional. If necessary, you can modify the parameter selection from the Mapping Editor.
graphics/blue_4.gif Fine-tune the COBOL to IDL mapping.
graphics/blue_5.gif Generate an IDL file and a server mapping file. These two related files map the client interface to the COBOL server program and are described below:

Top of page

Extractor Wizard

The extractor wizard guides you through the extraction process. The wizard supports the following tasks:

The extractor wizard is described in a step-by-step tutorial; see Using the IDL Extractor for COBOL - Overview.

Top of page

Mapping Editor

graphics/common_mappingEditor.png

The COBOL Mapping Editor is the tool to select and map the COBOL server interface to IDL. This section gives a short overview of the mapping features provided. These features are described in more detail in the documentation section for the respective interface type.

See COBOL Mapping Editor for more information.

Top of page

Supported COBOL Interface Types

The IDL Extractor for COBOL supports as input a COBOL server with various interface types. This section covers the following topics:

The interface type you are mostly working with can be set in the preferences. See IDL Extractor for COBOL Preferences.

Supported CICS COBOL Interface Types

Analyzing the technique used to access the interface with COBOL and CICS statements is the safest way to determine the interface type. The following CICS COBOL interface types are supported:

There is no clear and easy indication how to identify the interface type of a CICS COBOL server without COBOL and CICS knowledge. Below are some criteria that might help to determine the interface type. If you are unsure, consult a CICS COBOL specialist.

Note:
The most used interface type is the DFHCOMMAREA interface. Large buffer and channel container interfaces are used much less frequently.

CICS with DFHCOMMAREA Calling Convention

The IDL Extractor for COBOL supports CICS programs using the standard DFHCOMMAREA calling convention.

graphics/intro_interfaces_dfh.png

The following illustrates roughly how you can determine whether a COBOL server follows the DFHCOMMAREA calling convention standard:

LINKAGE SECTION.
01 DFHCOMMAREA.
   02 OPERATION                       PIC X(1).
   02 OPERAND-1                       PIC S9(9) BINARY.
   02 OPERAND-2                       PIC S9(9) BINARY.
   02 FUNCTION-RESULT                 PIC S9(9) BINARY.

PROCEDURE DIVISION USING DFHCOMMAREA.
   . . .

Most DFHCOMMAREA programs have a DFHCOMMAREA data item in their LINKAGE SECTION and may address this item in the PROCEDURE DIVISION header. If you find this in your COBOL source it's a clear indication it is a DFHCOMMAREA server program. But even if this is missing, it can be a DFHCOMMAREA program, because there are alternative programming styles. If you are unsure, consult a COBOL CICS specialist or see Supported CICS COBOL Interface Types for more information.

See Step 4: Define the Extraction Settings and Start Extraction for more information on extracting COBOL servers with this interface type.

CICS with Channel Container Calling Convention

The IDL Extractor for COBOL supports CICS programs using the channel container calling convention.

graphics/intro_interfaces_channel.png

The following illustrates roughly how you can determine whether a COBOL server follows the Channel Container standard.

WORKING-STORAGE SECTION.
01 WS-CONTAINER-IN-NAME               PIC X(16) VALUE "CALC-IN".
01 WS-CONTAINER-OUT-NAME              PIC X(16) VALUE "CALC-OUT".
. . .
LINKAGE SECTION.
01 LS-CONTAINER-IN-LAYOUT.
   02 OPERATION                       PIC X(1).
   02 OPERAND1                        PIC S9(9) BINARY.
   02 OPERAND2                        PIC S9(9) BINARY.
01 LS-CONTAINER-OUT-LAYOUT.
   02 FUNCTION-RESULT                 PIC S9(9) BINARY.

PROCEDURE DIVISION.
   . . .
   EXEC CICS GET CONTAINER (WS-CONTAINER-IN-NAME) SET (ADDRESS OF LS-CONTAINER-IN-LAYOUT) ...
   . . .
   EXEC CICS PUT CONTAINER (WS-CONTAINER-OUT-NAME) FROM (ADDRESS OF LS-CONTAINER-OUT-LAYOUT) ...
   . . .

Channel Container programs use EXEC CICS GET CONTAINER in their program body (PROCEDURE DIVISION) to read their input parameters. Output parameters are written using EXEC CICS PUT CONTAINER. There is no clear indication in the linkage or working storage section to identify a channel container program. If you are unsure, consult a COBOL CICS specialist for clarification.

See Step 4: Define the Extraction Settings and Start Extraction for more information on extracting COBOL servers with this interface type.

CICS with DFHCOMMAREA Large Buffer Interface

This type of program has a defined DFHCOMMAREA interface to access more than 31 KB of data in CICS. The interface is the same as the webMethods WMTLSRVR interface. This enables webMethods customers to migrate to EntireX.

graphics/intro_interfaces_large.png

Technically,

See Step 4: Define the Extraction Settings and Start Extraction for more information on extracting COBOL servers with this interface type.

Micro Focus with Standard Linkage Calling Convention

Standard call interfaces with a given number of parameters are supported. Every parameter addresses a fixed COBOL structure.

graphics/intro_interfaces_batch.png

Technically, the generated COBOL server skeleton contains

See Step 4: Define the Extraction Settings and Start Extraction and Micro Focus with Standard Linkage Calling Convention for more information on extracting COBOL servers with this interface type.

Batch with Standard Linkage Calling Convention

Standard call interfaces with a given number of parameters are supported. Every parameter addresses a fixed COBOL structure.

graphics/intro_interfaces_batch.png

Technically, the COBOL server contains

See Step 4: Define the Extraction Settings and Start Extraction and Batch with Standard Linkage Calling Convention for more information on extracting COBOL servers with this interface type.

IMS MPP Message Interface (IMS Connect)

graphics/intro_interfaces_mpp.png

IMS message processing programs (MPP) get their parameters through an IMS message and return the result by sending an output message to IMS. The IDL Extractor for COBOL enables extractions from such programs.

The COBOL server contains:

See Step 4: Define the Extraction Settings and Start Extraction and IMS MPP Message Interface (IMS Connect) for more information on extracting COBOL servers with this interface type.

IMS BMP with Standard Linkage Calling Convention

IMS batch message processing programs (BMP) with PCB parameters are directly supported. You have the option to specify a PSB list as input to the extractor to locate PCB parameters.

graphics/intro_interfaces_bmp.png

Technically, the COBOL server contains

See Step 4: Define the Extraction Settings and Start Extraction and IMS BMP with Standard Linkage Calling Convention for more information on extracting COBOL servers with this interface type.

What to do with other Interface Types?

Other interface types, for example CICS with non-DPL-enabled DFHCOMMAREA, can be supported by means of a custom wrapper. If you have to extract from such a COBOL server, proceed as follows:

  1. Implement a custom wrapper, providing one of the supported interface types above.

  2. Extract from this custom wrapper.

Compatibility between COBOL Interface Types and RPC Server

To call a server successfully, the RPC server used must support the interface type of the COBOL server. The table below gives an overview of possible combinations of an interface type and a supporting RPC server:

Interface Type Supported by
EntireX Adapter
Supported by RPC Server
z/OS UNIX/Windows BS2000/OSD z/VSE
CICS Batch IMS CICS ECI Micro Focus IMS Connect Batch CICS Batch
CICS with DFHCOMMAREA Calling Convention (Extractor | Wrapper) x x     x       x  
CICS with DFHCOMMAREA Large Buffer Interface (Extractor | Wrapper)   x             x  
CICS with Channel Container Calling Convention (Extractor | Wrapper)   x                
Batch with Standard Linkage Calling Convention (Extractor | Wrapper)     x x       x   x
Micro Focus with Standard Linkage Calling Convention (Extractor | Wrapper)           x        
IMS BMP with Standard Linkage Calling Convention (Extractor | Wrapper)       x            
IMS MPP Message Interface (IMS Connect) (Extractor) x           x      

Top of page

Usage of Server Mapping Files

There are many situations where the RPC server requires a server mapping file to correctly support special COBOL syntax such as REDEFINES, SIGN LEADING and OCCURS DEPENDING ON clauses, LEVEL-88 fields, etc.

Server mapping files contain COBOL-specific mapping information that is not included in the IDL file, but is needed to successfully call the COBOL server program.

graphics/intro_useSvm.png

The RPC server marshals the data in a two-step process: the RPC request coming from the RPC client (Step 1) is completed with COBOL-specific mapping information taken from the server mapping file (Step 2). In this way the COBOL server can be called as expected.

The server mapping files are retrieved as a result of the IDL Extractor for COBOL extraction process and the COBOL Wrapper if a COBOL server is generated. See When is a Server Mapping File Required?.

There are server-side mapping files (EntireX Workbench files with extension .svm) and client-side mapping files (Workbench files with extension .cvm). See Server Mapping Files for COBOL and How to Set the Type of Server Mapping Files.

If you are using server-side mapping files, perform the following tasks:

Note:
For IMS Connect and CICS ECI connections with the webMethods EntireX Adapter, server-side mapping files are not deployed. They are wrapped into the Integration Server connection - the same as client-side mapping files. For RPC connections, deployment to the target RPC server is mandatory. See the EntireX Adapter documentation under http://documentation.softwareag.com > webMethods Product Line.

Top of page