Table of Contents Previous Next PDF


CICS Runtime Preprocessor

CICS Runtime Preprocessor
Overview
Definition
The CICS Runtime Preprocessor prepares COBOL programs to execute underOracle Tuxedo Application Runtime for CICS.
Pre-Requisites
The programs handled by the CICS preprocessor must respect the following conditions, or else run the risk of producing errors at compile- or -run-time.
Note:
1.
CICS Runtime RunTime must be installed. Some technical copy files used by prepro-cics.pl are delivered under cpylib CICS Runtime RunTime module.
2.
The environment variable COBCPY, which indicates to the Micro Focus COBOL Compiler-or Cobol IT compiler where copybooks are stored, must be correctly set to include CICS Runtime RunTime copy files (cpylib) during compilation time.
3.
KIX--INDICS and KIX--ALL-ARGS, always;
KIX--DFHRESP, always;
KIX--DFHVALUE, if the DFHVALUE pseudo-function is used in the program or one of the copy files it includes;
4.
5.
The program must take exactly two parameters, DFHEIBLK (defined by the copy file of the same name) and DFHCOMMAREA, defined as suitable for the application PROCEDURE DIVISION. In other words, the program must look like this:
LINKAGE SECTION.
COPY DFHEIBLK.
01 DFHCOMMAREA.
....
PROCEDURE DIVISION USING DFHEIBLK DFHCOMMAREA.
The case of programs compiled with the NOLINKAGE option of the IBM CICS preprocessor is not (yet) supported by ART and the CICS Runtime preprocessor.
prepro-cics.pl
Name
prepro-cics.pl — A function that reads a Cobol program file from standard input, and outputs it with CICS instructions translated on standard output.
Synopsis
prepro-cics.pl [-type_output <output type>] [-notrec <notrec behavior>]
Description
prepro-cics.pl takes a COBOL program as input, reads it line by line, and output a file with CICS instructions translated.
prepro-cics.pl performs only one pass and processes lines one by one. That is, it reads a line from the standard input, outputs one or several lines (it may output none depending on the output type), and then reads the next input line. This behavior enables it to be compatible for use as a preprocessor inside a compiler, but prohibits using the same file as input and output. Note that it will output lines at the end of the input file.
The preprocessor expects the input COBOL program to have a 6-column left-margin. The output is in fixed format, or an error message should appear.
Options
notrec
notrec specifies the way instructions that are not fully supported are processed. (Some options of the instruction are not recognized, hence the "notrec"). There are two possibilities:
In both cases, a message is displayed on the error output.
type_output
type_output determines the way that output is printed; recognized values are:
debug
Prints every line with its status (untouched, modified, deleted, created). Always outputs at least one line for every line read.
orig
Prints every line, deleted lines are printed as comments. Always outputs at least one line for every line read.
normal (default)
Prints every line, except deleted ones. Does not always output at least one line for every line read.
Any other value will be considered as "normal".
Restrictions
The two words EXEC and CICS must be on the same line for a CICS instruction to be recognized.
Error Messages
Invalid CICS Messages
Error messages printed whenever an Invalid CICS instruction is found use the following format:
Summaries may be:
Instruction invalid (IGNORE and HANDLE instructions),
IGNORE and HANDLE instructions messages are quite straightforward:
IGNORE should be constructed with CONDITION.
When no rules match a CICS instruction, the error message explains, for all commands starting by the same keyword, why this command does not fit.
<command> expects one of <keyword list>, but none is present.
<command> expects <keyword>, but couldn't find it.
<command> does not know about <keyword>.
In <command>, <keyword> expects either: … <keyword> (one of <keyword list>), … but none of them was found.
In <command>, <keyword> is present and not <keyword> even if they must be used at the same time.
In <command>, <keyword> and <keyword> cannot be used at the same time.
Default value of <keyword> is supposed to be computed with value of <keyword>, but its value (<value>) is not a charstring.
If several commands match, the preprocessor lists them all. This will not actually happen, as the preprocessor checks the commands for ambiguity before translation.
Non Supported Error Messages
If a CICS instruction is unknown, or registered as "non supported", or "obsolete", an error message:
Instruction non supported
is generated.
The same error message is printed if there are some non-recognized keywords in an instruction, when the option notrec is set with value stop.

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.