GitHubContribute in GitHub: Edit online

COBOL Resource Configuration

Before you configure your scanner, make sure you meet the prerequisites. Read our guide on COBOL integration requirements to double-check.

Source System Properties

This configuration can be setup by creating a new connection on Admin UI / Connections tab or editing an existing connection in Admin UI / Connections / Programming Languages / COBOL / specific connection. New connection can also be created via Manta Orchestration API.

Property name Description Example
cobol.dictionary.id Enter the name of a resource representing this COBOL script system (known as the dictionary ID) cobol
cobol.script.encoding Encoding of manually provided COBOL files of this COBOL script system instance. See Encodings for applicable values. UTF-8
jcl.script.encoding Encoding of manually provided JCL files of this COBOL script system instance. See Encodings for applicable values. UTF-8
cobol.script.format COBOL source code formatting used in COBOL scripts in this COBOL script system (see below for details) FIXED
jcl.script.enabled Enables analysis of JCL scripts; the value true enables analysis of JCL scripts along with COBOL script analysis and the value false disables it true
cobol.script.processScriptsWithoutJCL Enables processing of COBOL scripts that are not executed by any JCL job or procedure; if a jcl.script.enabled property is set to false, this setting has no effect true
jcl.sas.dictionary.id (available as of R42.6) The name of a SAS connection that processes the SAS programs that are referenced by an EXEC statement. If JCL does not reference any SAS program, leave the field empty. mySAS

Common Properties

This configuration is common for all COBOL source systems and for all COBOL scenarios, and is configure in Admin UI / Configuration / CLI / COBOL / COBOL Common. It can be overridden on individual connection level.

Property name

Description

Example

cobol.input.dir

Directory with manually provided COBOL/JCL scripts and copybooks (for the analysis phase); this directory represents a base directory for input files, particularly COBOL script system instances

${manta.dir.input}/cobol/${cobol.dictionary.id}

cobol.script.input

Directory with manually provided COBOL scripts and copybooks (for the analysis phase); with this property, it is possible to use a different directory for COBOL files and JCL files

${cobol.input.dir}/

cobol.script.replace

Path to the CSV file with the replacements to be applied to the provided COBOL input files, COBOL copybook files, and JCL input files; see Placeholder Replacement in Input Scripts for details about the replacement file format

${cobol.input.dir}/replace.csv

cobol.script.replace.regex

Flag specifying whether replacements for input files in the provided CSV file specified in the Replacements Configuration File property should be interpreted as regular expressions (true) or simple text (false)

false
true

jcl.script.input

Directory with manually provided JCL scripts and JCL includes (for the analysis phase); with this property, it is possible to use a different directory for COBOL files and JCL files

${cobol.input.dir}/

cobol.script.temp

Directory for storing temporary files from COBOL analyses; this directory will store pre-processed COBOL scripts

${manta.dir.temp}/cobol/${cobol.dictionary.id}

cobol.script.copybookDir

Directory containing COBOL copybooks

${cobol.input.dir}/Copybookfolder

cobol.connections.file

File containing connection definitions in prm format

${cobol.input.dir}/connectionsConfiguration.prm

cobol.call.targets.file

CSV file (in the format PROGRAM;VARIABLE;SUB-PROGRAM-NAME) containing sub-program names for the CALL statement where the sub-program is defined by a variable

${manta.dir.scenario}/conf/cobolCallProgramNames.csv

cobol.script.normalize.sqlVariables

Flag that enables preprocessing of SQL code for EXEC SQL statements to normalize the usage of “-“ in DB2 SQL, which interferes with SQL parsing if “-“ is used for something other than host variables such as in a cursor name.
When set to true, all “-“ are replaced with “_“ in all words starting with [a-zA-Z0-9] in SQL script.
This flag should be enabled when analyzed SQL code embedded in an EXEC SQL statement uses the “-“ character as an identifier other than a host variable. The error this fixes is PARSING_ERRORS ANTLR_PARSING_FAILURE "No viable alternative: '-'".

false

true

filepath.lowercase

Whether paths to files should be lowercase (false for case sensitive file systems, true otherwise)

true

cobol.analyze.showAdditionalDataItems

Toggle to control visibility of additional nodes from the COBOL DATA Division in the data lineage. When enabled, it provides more granular insights into the data structures used in each COBOL program.

false
true

Integrating JCL scripts and SAS programs

As of R42.6, you can create lineage for JCL scripts that execute SAS programs. The lineage shows how the source data in JCL scripts impacts the SAS program and vice versa.

You can configure dataflow only between defined datasets in JCL and SAS infiles and SAS libraries.

For example, in the following snippet, a JCL script executes a SAS program called SASPROGRAM:

//STEP010  EXEC SAS
//SYSIN    DD DISP=SHR,DSN=DWH.SAS.SYSIN.CNTL(SASPROGRAM)

The program SASPROGRAM then is connected to a file SASPROGRAM.sas that is scanned by a SAS connection.
To correctly configure the connection between JCL and SAS, you must provide the name of the SAS connection where the SAS program is referenced. Use the following property:

jcl.sas.dictionary.id

The value of this property is the name of the SAS connection. You can find this name in the dictionaryId property in SAS.