Report Controller
Report Controller
SC33-1941-01
CICS Transaction Server for VSE/ESA IBM
Report Controller Planning Guide
Release 1
SC33-1941-01
Note!
Before using this information and the product it supports, be sure to read the general information under “Notices” on page 87.
This edition applies to Release 1 of CICS Transaction Server for VSE/ESA, program number 5648-054, and to all subsequent
versions, releases, and modifications until otherwise indicated in new editions. Make sure you are using the correct edition for the
level of the product.
The CICS for VSE/ESA Version 2.3 edition remains applicable and current for users of CICS for VSE/ESA Version 2.3.
Order publications through your IBM representative or the IBM branch office serving your locality.
At the back of this publication is a page entitled “Sending your comments to IBM”. If you want to make any comments, please use
one of the methods described there.
Copyright International Business Machines Corporation 1982, 1999. All rights reserved.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Contents
Programming interface information . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
What this book is about . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Who should read this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
What you need to know to understand this book . . . . . . . . . . . . . . . . vii
How to use this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Notes on terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Determining if a publication is current . . . . . . . . . . . . . . . . . . . . . . . x
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Books from VSE/ESA 2.5 base program libraries . . . . . . . . . . . . . . . . . 82
Books from VSE/ESA 2.5 optional program libraries . . . . . . . . . . . . . . . 84
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Trademarks and service marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
This book is intended to help you to migrate from an earlier release of CICS to
CICS Transaction Server for VSE/ESA Release 1.
Contents v
vi CICS Transaction Server for VSE/ESA Report Controller Planning Guide
Preface
viii CICS Transaction Server for VSE/ESA Report Controller Planning Guide
Table 1 (Page 2 of 2). Commonly used words and abbreviations
Term Definition (and abbreviation if
appropriate)
ESM ESM is used to indicate a
RACROUTE-compliant external security
manager that supports some or all of the
following functions:
Signon security
Transaction attach security
Resource security
Command security
Non-terminal security
Surrogate user security
MRO/ISC security (MRO, LU6.1 or
LU6.2)
FEPI security.
FOR (file-owning region)—also known as A CICS region whose primary purpose is
a DOR (data-owning region) to manage VSAM and DAM files, and
VSAM data tables, through function
provided by the CICS file control program.
IBM C for VSE/ESA The Language Environment-conforming
version of the C programming language
compiler. Generally referred to as
“C/VSE”.
IBM COBOL for VSE/ESA The Language Environment-conforming
version of the COBOL programming
language compiler. Generally referred to
as “COBOL/VSE”.
IBM PL/I for VSE/ESA The Language Environment-conforming
version of the PL/I programming language
compiler. Generally referred to as “PL/I
VSE”.
IBM Language Environment for VSE/ESA The common runtime interface for all
LE-conforming languages. Generally
referred to as “LE/VSE”.
PL/I The PL/I programming language
VSE/POWER Priority Output Writers Execution
processors and input Readers. The
VSE/ESA spooling subsystem which is
exploited by the report controller.
VSE/ESA System Authorization Facility The new VSE facility which enables the
new security mechanisms in CICS,
generally referred to as “SAF”
VSE/ESA Central Functions component The new name for the VSE Advanced
Function (AF) component
VSE/VTAM “VTAM”
Preface ix
Determining if a publication is current
IBM regularly updates its publications with new and changed information. When
first published, both the printed hardcopy and the BookManager softcopy versions
of a publication are in step, but subsequent updates are normally made available in
softcopy before they appear in hardcopy.
For CICS Transaction Server for VSE/ESA Release 1 books, softcopy updates
appear regularly on the Transaction Processing and Data Collection Kit CD-ROM,
SK2T-0730-xx and on the VSE/ESA Collection Kit CD-ROM, SK2T-0060-xx. Each
reissue of the collection kit is indicated by an updated order number suffix (the -xx
part). For example, collection kit SK2T-0730-20 is more up-to-date than
SK2T-0730-19. The collection kit is also clearly dated on the front cover.
For individual books, the suffix number is incremented each time it is updated, so a
publication with order number SC33-0667-02 is more recent than one with order
number SC33-0667-01. Updates in the softcopy are clearly marked by revision
codes (usually a “#” character) to the left of the changes.
Note that book suffix numbers are updated as a product moves from release to
release, as well as for updates within a given release. Also, the date in the edition
notice is not changed until the hardcopy is reissued.
The report controller provides distributed control over printing and printer devices.
It is designed so that anyone, with little data processing skill and with no previous
knowledge of CICS, can control the printing of reports. (By reports, we mean
any spool files managed by the report controller.)
End-user departments, operations staff, and programmers can use the report
controller in different ways to manage report production. Control over when, where,
and how reports are printed, and which printers are used, can be given to the
people concerned with those reports and printers. Printers can be owned either by
CICS, or by VSE/POWER.
The report controller is part of CICS for VSE/ESA. You need to have
VSE/POWER installed, to be able to use the report controller. The report controller
provides:
Special options of the EXEC CICS SPOOL... commands, for writing programs
to create reports
An online tool for managing reports created either by using these commands,
or by batch programs
An interface that transfers reports to CICS printers.
All of these use an interface with VSE/POWER, which comes with CICS. For
programming information about the CICS interface to POWER, see the CICS
Application Programming Guide manual.
The report-controller transactions present the user with a series of panels on which
they select listed options. Some of the panels are “form” or “data entry” type
panels, on which the user can enter information. Others are “list” type panels, that
allow options to be selected against the names of reports, jobs, queues, or printers.
Recovery of reports, following a failure during creation or printing, is provided.
Security of reports, printers, transient data queues and jobs is controlled by an
external security manager. For more information, see Chapter 7, “Report controller
security” on page 57.
Using the EXEC CICS SPOOL... commands, you can create reports, that can be
managed using the report controller transactions. All reports are created as
POWER spool files. Command options allow you to:
Identify the report and specify how it is to be created.
Control the formatting and appearance of the report.
Influence how, when, and where it is to be printed.
Provide for security and report recovery.
Some of these options can also be specified in the job control language (JCL) for
reports created by batch programs. To handle nonstandard data streams of
batch-generated reports, you can specify the name of an ESCAPE program in the
JCL for the report. The named ESCAPE program is invoked when the report is
printed.
If you use the POWER PNET feature, reports can be routed to and from other
nodes using a network job entry (NJE) connection. The remote nodes can be
VM/RSCS and MVS/JES systems. as well as other VSE/POWER systems.
VTAM
CICS SYSTEM
SPOOLING INTERFACE
POWER
LST
REPORTS
SYSTEM PRINTER
KEY CONTROL
BY END USERS
INFORMATION
TO END USERS
MOVEMENT OF
REPORT DATA
PRINTER
Important
You can use the report controller EXEC CICS SPOOL... commands in
command-level assembler-language, COBOL, or PL/I programs.
You can use the command interpreter CECI to try out the EXEC CICS SPOOL...
commands, but this is not recommended as a means of creating real reports. You
can use CECI to view the commands even if the report controller is not installed.
(You cannot execute the commands unless you have the report controller installed.)
You can use the execution diagnostic facility CEDF to debug application programs
that use the EXEC CICS SPOOL... commands.
The report controller can also manage reports created by batch programs, and it
can be used to create reports from transient data queues. See “Managing reports
created by batch programs” on page 43, and “Managing transient data queues” on
page 41.
A standard report is created by a single CICS task. This is the same as a normal
VSE/POWER LST queue file.
A resumable report can be created by a series of CICS tasks, each of which can
append one or more records to it. VSE/POWER refers to this type of report as
appendable.
A log report may be created by several CICS tasks running concurrently. Records
written by each CICS task are interleaved, but this type of report appears to
VSE/POWER as a standard report.
You need to open a log report only once, and then close it when all records have
been written. The log report can be closed either by the task that opened it or by
another task.
Report options
Some of the options you can specify when you open a report for the first time
provide very useful functions:
USERDATA is a 16-character field that appears on the report list panel. You can
use it to provide reference information for the end user.
The DESTINATION of the report refers to the logical identifier for a printer device,
or a group of printers. It can be defined as SPOOLDEST in the TERMINAL
definition for each printer, but it can also be set when the printer is started, or
changed by an authorized CEMS or CEOS transaction user. Using
DESTINATION avoids coding a specific printer name in your program, or
associating a particular printer with a display device. (However, you can set a
default destination for a display device, using the SPOOLTO attribute in the
TERMINAL definition for the device.)
You can specify a resource security level, RSL. This can be either PUBLIC, or a
value in the range 1 through 24. This value determines:
– Which users can control the printing of the report
– Which users can write to a resumable or log report
– Which printers can print the report
Note: Although CICS internal security is not supported in CICS Transaction
Server, the RSL specification is retained, for compatability, for use by existing
applications and the routing of reports to earlier releases of CICS/VSE. For
more information, see Chapter 7, “Report controller security” on page 57.
An additional security option is PRINTFAIL, which prevents a report from being
reprinted automatically after a failure during printing.
The HEAD and FOOT options allow you to specify a single line of text to be
printed at the top or bottom, or at both the top and bottom, of each page.
The report controller takes care of the page numbering as you require it. You
can specify one of the following:
– NONUM, if you do not want automatic page numbering
– HEADNUM, if you want the page number in the top right-hand corner of each
page
Identifying a report
The report name is the primary means of identifying the report. It is probably the
name by which the end user knows the report. Your naming conventions for
reports can influence the end users’ efficiency, because they can use partial (or
generic) names to request information about reports. If you allocate two or three
characters to a user or group of users, and then start all their report names with
those characters, it is easy for them to list all their reports by typing only those
characters.
You identify the report by name in the REPORT option of the EXEC CICS
SPOOL... commands. This option makes the report you are creating into a report
that the end user can print using the report controller transactions CEMS or CEOS.
You must use the REPORT option on each command; if you do not, the command
is not recognized as a report controller command.
Report title
You can provide a 32-character title for the report. If you do not, the report name
is used. The title appears on the CEMS and CEOS report characteristics panel.
Userdata
You can provide a 16-character description known as userdata. If you do not, the
first 16 characters of the title are used. If you do not provide either title or
userdata, the report name is used.
The userdata appears on the report controller report list panel. This is quite
significant from the point of view of security, because any report controller user can
see the contents of userdata for all reports. So, do not put any sensitive
information in userdata. If you do not put anything in userdata, be careful about
sensitive information in the title.
You can put whatever information you want in userdata. You may want to use it:
To provide a reference number or other code, so that whoever created a report
can recognize it on the report controller list panel. (You may have many users
creating reports with the same name, or one user may create many versions of
the same report. The reference number could be supplied by them to your
application program, or generated by the application and displayed back to
them.)
To provide a reference number or other code, in the text of a report, so that
whoever is controlling printing can relate the output back to the report controller
list panel. (They may have several versions of the same report: this will help
them to see which versions have been printed.)
Token
A token is an 8-byte identifier that is used by each EXEC CICS SPOOL...
command so that the CICS task can recognize which report is being created.
When a report is first opened for input, CICS allocates a token to it. This token
must be stored by the application program, to be used when the report is written to
and when it is closed.
When a resumable or log report is closed, the token must be preserved and used
when the report is opened again.
Report number
You have no control over the report number in your program. The report number is
allocated by POWER. It is shown on the CEMS and CEOS report list and report
characteristics panels, and so can be used to distinguish between reports of the
same name that are waiting to print. It is also printed on the separator pages
preceding and following each report, if you choose to have them.
This chapter describes the types of report that you can create and the command
options used to create them. For details of the EXEC CICS SPOOL... commands,
refer to the CICS Application Programming Reference manual.
Creating a report
You can create three different types of report: standard, resumable, and log reports.
They are described in detail here, together with examples of coding to create each
type.
Standard report
A standard report is created by a single execution of a CICS transaction (a single
task). A standard report is opened, written to, and then closed. If your program
has all the data it needs to create the whole report before opening, the report can
be standard.
TRN1:
EXEC CICS SPOOLOPEN
REPORT(N212)
TOKEN(TOK2)
ASA
TRN2:
EXEC CICS SPOOLOPEN RESUME
REPORT(N212)
TOKEN(TOK2)
You must also create a resumable report if you want to issue a syncpoint during
report creation. This is because a syncpoint closes any report that is open, and
The following coding shows how to create a resumable report, in a program that
includes a syncpoint:
EXEC CICS SPOOLOPEN
REPORT(N213)
TOKEN(TOK3)
RSL(5)
LOGICAL
NOCC
Notes:
1. You cannot create a resumable report in JCL format; see “JCL format” on
page 29.
2. You cannot direct a resumable report to a destination at a different node.
3. When the EXEC CICS SPOOLOPEN RESUME command is issued, a resource
security level check is performed. The operator must have READ access to the
FACILITY resource CICSRCF.RSLnn where nn is the RSL value that is
specified on the first EXEC CICS SPOOLOPEN command.
4. Any number of resumable reports with the same name may be opened at the
same time.
You need to open a log report only once, and then simply close it when all records
have been written. The log report can be closed either by the task that opened it
or by another task.
A log report can be created in any format. For any particular report name, only one
log report may be open at one time with that name. An attempt to open a log
report that is already open results in the NAMEERROR condition being raised.
Task 1:
EXEC CICS SPOOLOPEN
REPORT(N214)
TOKEN(TOK4)
LOG
ASA
Task 2:
EXEC CICS SPOOLWRITE
REPORT(N214)
TOKEN(TOK4)
FROM(IO4)
LOG
.
Task 3:
EXEC CICS SPOOLWRITE
REPORT(N214)
TOKEN(TOK4)
FROM(IO4)
LOG
.
Task n:
EXEC CICS SPOOLWRITE
REPORT(N214)
TOKEN(TOK4)
FROM(IO4)
LOG
Here is an example of the command that opens a report for the first time:
EXEC CICS SPOOLOPEN
REPORT('MKT1A')
TOKEN(TOKENC)
NOCC
TITLE('MARKET ANALYSIS A')
HEAD(HEADC)
USERDATA(USERC)
DATETIME
SEP
HEADNUM
When you use EXEC CICS SPOOLOPEN RESUME REPORT, the next EXEC
CICS SPOOLWRITE REPORT command appends a record to the report with the
same token. (The report must previously have been closed with the RESUME
option.)
You can write any number of lines in one EXEC CICS SPOOLWRITE REPORT
command. CICS calculates in different ways how many lines to write, depending
on the report format. For more detail, see “Formatting a report” on page 19.
You can specify the length of each line using the LINELENGTH option of EXEC
CICS SPOOLOPEN REPORT. If LINELENGTH is omitted, the line length defaults
to 132 (NOCC, SCS, and T3270 formats) or 133 (ASA and MCC formats). The
number of lines written by each SPOOLWRITE is calculated by dividing the
FLENGTH value by the LINELENGTH value, any remainder being padded with
blanks and considered as one line. This results in a report consisting of lines of
fixed length. This applies to ASA, MCC, NOCC, JCL, and sometimes to SCS and
T3270 report formats.
For ASA and MCC, the number of lines written also depends on any valid control
characters found in column 1 after the FROM area has been split up into lines by
dividing FLENGTH by LINELENGTH.
For JCL, the LINELENGTH is always 80. You must ensure that each JCL
statement begins in column 1 and ends in column 80, after the FROM area has
been split up into lines.
With other report formats, each EXEC CICS SPOOLWRITE REPORT command is
assumed to be for a page. With BMS-mapped reports, the map determines how
many lines are written. With SCS and T3270, all of the data can be considered as
a single unit and written as one record. (Control orders within the data stream
control the number of lines to be written.) With ESCAPE format, you must control
the lines and pages in your escape program.
Closing a report
You use the EXEC CICS SPOOLCLOSE REPORT command to close a report. In
addition to the mandatory options REPORT and TOKEN, there are some other
options that you can use with the EXEC CICS SPOOLCLOSE REPORT command.
When you close a report for the last time, you can specify DISP(data-value)
DELETE, HOLD, KEEP, or RELEASE.
The DELETE option is used only when you do not, after all, want already-written
report records to remain as a spool file on the POWER LST queue.
When you close a resumable report, you specify the RESUME option. This option
indicates that the report has not been closed permanently: writing to it may be
resumed by a later CICS task. You must preserve the token and use it when you
code the EXEC CICS SPOOLOPEN RESUME REPORT to reopen the report.
The following coding shows examples of the EXEC CICS SPOOLCLOSE REPORT
command:
EXEC CICS SPOOLCLOSE
REPORT(N214)
TOKEN(TOK4)
DISP('L')
This chapter describes the various formats for reports and the command options
that determine the format of a report.
Formatting a report
You can create a report in a number of different formats, which you specify on an
EXEC CICS SPOOLOPEN command using one of the following options:
NOCC No carriage control characters.
ASA ASA control characters.
MCC Machine code carriage control.
SCS SNA character string.
T3270 3270 data stream.
MAP BMS mapping.
ESC Escape mapping, for special things like graphics.
JCL Job control language format. The report is placed on the POWER RDR
queue to be input to a batch job.
The format of a report dictates whether certain formatting options are valid; for
example, headings or footings are not supported for a BMS map.
Format conversion
Whether you specify ASA, MCC, NOCC, SCS, or T3270, the report controller
arranges that the report can be printed on a system printer, on an SCS printer, or
on a 3270-type printer, with the same results.
It does this by converting all these formats to MCC. If you do not want the
conversion, because you want to use the special features of a 3270-type or SCS
printer, for instance, color, you can specify NOCONV (see page 27). If you do this,
you get the special features if you use the appropriate printer. However, the report
cannot be printed on a different kind of terminal printer, or directly through POWER
to a channel-attached system printer.
NOCC and ASA reports created using an EXEC CICS SPOOLOPEN REPORT
command are always converted to MCC. ASA reports created by batch programs
can also be printed on SCS or 3270 printers.
ESC, MAP, and JCL reports are not converted, but remain fixed for the lifetime of
the report.
NOCC data is always converted to MCC format. The machine code characters are
inserted as the lines are inserted. Do not allow for them in your LINELENGTH.
If you want to be able to specify unconditional line skips or page breaks in your
program, you should choose ASA format. You can also make use of the LINES
option to have an automatic page break wherever a page is filled.
Using ASA format all you do is code one of the following characters in the first
position of each line that you want to print:
blank Space 1 line before writing the data.
0 Space 2 lines before writing the data.
− Space 3 lines before writing the data.
+ Suppress space, that is, print on same line as previous line.
1 Skip to channel 1 (new page) before writing the data.
ASA data is always converted to MCC format. You can improve performance by
writing several ASA lines in one EXEC CICS SPOOLWRITE REPORT command.
The resulting increase in speed may, however, be offset by the increased storage
needed for buffers.
If you write more than one ASA line in one EXEC CICS SPOOLWRITE REPORT
command, the LINELENGTH value is divided into the FLENGTH value to calculate
the number of lines. You must ensure that, after this calculation is made, the ASA
control characters are in column 1. The total number of lines printed is FLENGTH
divided by LINELENGTH adjusted to take account of the ASA characters. The
default LINELENGTH is 133 (allowing for the ASA character and 132 characters of
data).
During report printing, invalid characters (in the range X'00' through X'3F', or
X'FF') within ASA and MCC data records are converted to blanks to prevent
terminal errors. However, if the printer is defined to support a double-byte
character set (DBCS), records are printed as they are received from POWER, if the
invalid characters are framed with shift-out/shift-in (SO/SI) control sequences.
Machine control character (MCC) format provides a similar function, but the order of
the printing and paper movement is generally reversed; for example, an ASA
character of 0 would first advance the paper position by two lines and then print the
data line, the equivalent MCC control of X'11' would first print the data line and
then advance the paper position by 2 lines. Further details about ASA and MCC
(including the full range of codes) can be found in the VSE/ESA System Macros
Reference.
Hex Result
0B Space 1 line immediately (no printing occurs).
13 Space 2 lines immediately (no printing occurs).
1B Space 3 lines immmediately (no printing occurs).
09 Space 1 line after writing the data.
11 Space 2 lines after writing the data.
19 Space 3 lines after writing the data.
89 Skip to channel 1 (new page) after writing the data.
8B Skip to channel 1 (new page) immediately (no printing occurs).
01 Suppress space, that is, print on same line as previous line.
Note: There may be a slight performance improvement if you use MCC format,
because no conversion takes place.
The options you can use for formatting NOCC, ASA, and MCC reports are as
follows:
LINES
Specifies the page length in terms of number of lines on the page.
LINELENGTH
Specifies the page width in terms of number of characters in the line.
DATETIME
Specifies date and time.
1 The channel codes 1 through 12 each identify a position in a forms control buffer or in a page definition.
The number of lines per page is counted according to the report format, as follows:
A heading counts as two lines (that is, one header line and one blank line).
A footing counts as two lines (that is, one blank line and one footing line).
If the carriage control character specifies skip to line one on new page, the
line count is reset.
NOCC
The line count is calculated as follows:
Line length
LINELENGTH can be specified at EXEC CICS SPOOLOPEN for ASA, MCC, or
NOCC format reports. LINELENGTH can also be specified at EXEC CICS
SPOOLOPEN for reports with SCS or T3270 format if NOCONV is not specified.
During creation, the report controller inserts new-line (NL) carriage control
characters when the output of the EXEC CICS SPOOLWRITE command reaches
the line length specified.
Headings
A heading (defined as the top line of each new page) is supported for reports of
ASA, MCC, and NOCC format. The heading is supplied on the EXEC CICS
SPOOLOPEN REPORT command and appears as the first line of each printed
report page.
The bottom line is calculated from the LINES option or by implying the system
default.
Page numbering
Automated page numbering is requested by specifying the NONUM, HEADNUM,
FOOTNUM, or BOTHNUM options of the EXEC CICS SPOOLOPEN REPORT
command.
NONUM
No page number appears. This is the default.
HEADNUM
The page number appears as the last 6 characters (leading zeros suppressed)
of the heading line. (If no heading line is supplied on the EXEC CICS
SPOOLOPEN REPORT command, a blank heading line is produced.)
FOOTNUM
The page number appears as the last 6 characters (leading zeros suppressed)
of the footing line. (If no footing line is supplied on the EXEC CICS
SPOOLOPEN REPORT command, a blank footing line is produced.)
BOTHNUM
Page numbers appear as specified for both HEADNUM and FOOTNUM.
The date and time appear 20 characters before the end of the line in one of the
following system-defined formats:
DD/MM/YY HH:MN
MM/DD/YY HH:MN
YY/MM/DD HH:MN
The format used is as that defined with the DATFORM parameter of the system
initialization table.
Usually, when you send SNA character string (SCS) data or a 3270 data stream to
a printer, you do not send it as individual lines, but as one long string containing
SCS or 3270 control orders as well as data. It is the printer that acts upon these
control orders and formats the data accordingly. You can do this to create reports
using the EXEC CICS SPOOL... commands, but the report controller provides
another option: by default, the report controller converts SCS and T3270 reports
into MCC format just as it does for NOCC reports, dividing LINELENGTH into
FLENGTH. For example, if your report is based on a screen width of 80
characters, you specify LINELENGTH(80) to ensure correct format conversion.
Any unsupported SCS orders are treated exactly as they are by printers that do not
support them: if recognized as architected SCS orders, their default actions are
taken as specified in Systems Network Architecture: Sessions Between Logical
Units.
Other 3270 orders are deleted from the data stream. Blanks are inserted where
necessary to maintain correct format. The orders deleted from the data stream are:
The following format control orders are honored when carrying out format
conversion:
CR Carriage return.
NL New line.
FF Form feed.
EM End message.
GRE Graphics escape (Defaulted to “–”).
Everything else is treated as data and included in the data part of the MCC report.
The 3270 data stream is converted to MCC in two stages, as shown in Figure 2.
3270 data
Stage 1
Simulated printer
buffer (modified 3270)
Stage 2
MCC
Output
buffer
To POWER
The first stage emulates the data arriving at a printer buffer. Buffer control orders
are resolved as the data is placed in the buffer.
The second stage creates an MCC report from this data. The format of this report
is such that, if printed on a system printer, it would be as near as possible to the
format of the original 3270 data stream as printed directly on a 3270 printer—that
is, the format control orders are resolved.
Conversion starts from the start of the simulated print buffer, and continues until an
EM order or the end of the buffer is reached. Note that, to prevent unwanted data
being included in this conversion, you must include an EM order with each EXEC
CICS SPOOLWRITE REPORT command.
Any unsupported 3270 orders are replaced by blanks where necessary, or are
merely ignored. For example, start field (SF) occupies one character position in the
print line, so it is replaced with one blank character. You can print reports in these
You cannot have automated headings and footings, page numbering, or the
DATETIME option with SCS or T3270 formats.
If you specify invalid control characters in a report that has the NOCONV option,
the printer task abends.
You cannot use the LINES and LINELENGTH options when you use the NOCONV
option.
BMS-mapped reports
If you have reports that include a lot of constant text, you can use BMS to format it.
BMS-mapped reports are opened using the EXEC CICS SPOOLOPEN MAPNAME
command. You could use BMS-mapped reports instead of preprinted forms. The
data that is usually preprinted could be held as constants in the map.
You could use the MAPONLY option of the EXEC CICS SPOOLWRITE MAPNAME
command to include a page of text that never varies, for example, a page of
purchase conditions, or instructions.
You can use all the options for controlling printing, and for security and recovery.
However, the automated formatting features available for NOCC, ASA, and MCC
formats are not available for BMS-mapped reports. This includes automatic page
breaks, headings and footings, page numbering, and the DATETIME option. All
your formatting must be specified within the map itself.
The length of the data is calculated from the length of the physical map.
Remember that the map set and maps that you specify must be available to format
the report at the time it is printed. When the report is being printed, however, you
cannot disable a map until after the printer has been stopped.
ESCAPE format
To create reports in any format other than those described above, you must provide
an escape program to be invoked at printing time to format the report. You can
use this for graphics, or graphics and text on the same page, for instance. These
reports cannot be printed on a system printer, but they can be printed on CICS
printers.
You can specify the name of an escape program using the ESCAPE option on the
EXEC CICS SPOOLOPEN REPORT command. You must ensure that this
program is locatable at printing time. You can use several different escape
programs for different reports.
You can use all the options for controlling printing, and for security and recovery.
However, the automated formatting features available for NOCC, ASA, and MCC
formats are not available for ESCAPE format. This includes automatic page
breaks, headings and footings, page numbering, and the DATETIME option. All
your formatting must be specified within the escape program itself. You can also
create ESCAPE reports in a VSE batch program by specifying an ESCAPE
program name on the CICSDATA (or equivalent) keyword on the VSE POWER A
$$ LST statement. For more information, see Chapter 5, “Managing reports and
printers” on page 31.
On output link
The COMMAREA contains one or two fields. For all ESCAPE reports, a single
temporary storage queue name is provided in the first 8 positions. The name is
a concatenation of the hexadecimal characters X'FB00', the characters PS,
and xxxx, where “xxxx” is the termid of the printer serving the destination. For
ESCAPE reports which were created in batch, a second queue name is
provided in the second 8 bytes of the COMMAREA. The first two characters of
this queue are X''FB01''. The rest of the name is identical to the first queue.
For each data record in the first queue there is a single byte record in the
second queue, which is the MCC control character associated with the record
on the spool. This queue can be used to determine how to format the data.
On return
A single byte return code followed by 79 bytes of user message text. If the
return code is X'00', the escape report is set to its normal disposition (that is,
it is held or deleted). If the return code is not X'00', message DFH5467 is
sent to the CSPW transient data queue, containing the return code and any
message text that you may insert in the trailing 79 bytes of the COMMAREA.
The report on the POWER queue is then set to ERRPRT status.
When control is returned from the escape routine, the temporary storage queue is
deleted.
JCL format
Using the EXEC CICS SPOOL... commands, you can create a file of input to a
batch program. JCL format forces a LINELENGTH of 80, to create a file of 80-byte
card images. These files are known as JCL reports, or jobs, and are written to the
POWER RDR queue (not to the POWER LST queue). The options available for
creating JCL reports are different from those available for creating printable reports.
In fact, there are very few options.
Even the job status is derived from the JOB statement you write to the file, and not
from the EXEC CICS SPOOLCLOSE REPORT command. The EXEC CICS
SPOOLCLOSE REPORT command looks like this:
EXEC CICS SPOOLCLOSE
REPORT(REP1)
TOKEN(TOKC)
The class, priority, and status of JCL reports can be changed by any authorized
user of the CEMS transaction, if the user has the RSL value of 1 included in the
RSLKEYs in their signon table entry. If the user is not signed on to CICS, the RSL
value of 1 must be included in the OPERRSL keys defined for the display device.
If the JOB statement is missing, the report name is AUTONAME, the class is A,
and the POWER defaults are used.
If a report submitted to POWER does not contain POWER JECL, the required
JECL is inserted by POWER, and the characteristics of the JCL report default to
those allocated by POWER. You must ensure that the syntax of the JCL is correct,
because CICS does not check it.
When creating JCL reports, if a POWER EOJ statement is output, the POWER job
is made available for running before the EXEC CICS SPOOLCLOSE is issued.
This means that EXEC CICS SPOOLCLOSE REPORT DELETE only deletes the
last POWER job and not the complete JCL report (job).
This chapter describes how you use the report controller to control and print
reports.
Managing reports
Using the CEMS and CEOS transactions, you can list reports and do various other
things to them. You can list all reports, one report, or those reports that satisfy the
selection criteria that you type on the selection panel. You can type a partial name
as the report name, to list all those reports whose names begin with those
characters.
The report list panel shows you the following information about the reports:
Name
Userdata (which may contain a short description of the report)
Number
Current status (for example, HELD(L), READY(K), IN USE, RESUME,
ERRCRT, ERRPRT)
Forms type
Class
Number of pages
Number of copies
Priority
Destination
The report number is allocated by POWER when the report is created. You can
use it to distinguish between reports of the same name. All the other
characteristics are allocated by the program that created the report.
The report characteristics panels show you more information about a single report.
All these characteristics can be altered by the CEMS or CEOS transaction. You
can set the number of copies and whether the report has separator pages (SEP or
NOSEP), and the end user can also alter these. What the end user cannot alter is
the RSL value. The RSL value also determines whether a report can be printed by
a particular printer.
Destinations
The report controller uses logical printer destinations. The destination associated
with a printer is the means by which you can direct reports to a printer without
naming the printer explicitly in your program. A destination can have a number of
printers associated with it. The destination for a printer can be specified as the
SPOOLDEST in the TERMINAL definition (or as SPLDEST in the DFHTCT macro).
This destination can be overridden when the printer is started (either by using
CEMS or CEOS, or by using the POWER PSTART command). This destination
can also be changed temporarily by using CEMS or CEOS.
You must always ensure that the names you give to your CICS destinations
are not reserved by POWER and are not being used by POWER for some
other purpose.
Report status
When you close a report for the last time, you specify a POWER disposition for the
report with DISP(name), HOLD, KEEP, or RELEASE (see “Closing a report” on
page 16).
This results in a change in the status of the report on the POWER LST queue.
A report closed with DISP(‘L’) or HOLD appears to report controller end users as
HELD(L) when displayed on the report controller panels. The end user has to reset
this status to READY(K) before the report can be printed. When the report has
been printed, the status is reset to HELD(L) again. This means that the report can
be printed again, possibly by mistake. You may therefore prefer to use the
DISP(‘H’) option for some reports. On the other hand, DISP(‘L’) and HOLD do
have the advantage that a report lost because of a printing failure can be reprinted
without being created again. This gives end users the most complete control over
their reports, if that is what they want. They always have to intervene before a
report is printed, and they always have to delete their reports from the queue when
they no longer need them.
A report closed with DISP(‘H’) appears to the end user as HELD(H) when displayed
on the report controller panels. The end user has to reset this status to READY(D)
before the report can be printed. When the report has been printed, it is deleted
automatically.
A report closed with DISP(‘D’) or RELEASE appears to the end user as READY(D)
when displayed on the report controller panels. It is printed as soon as a printer is
available for the appropriate destination and output class. After being printed, the
report is deleted from the POWER LST queue and is not available for reprinting. If
A report closed with DISP(‘K’) or KEEP appears to the end user as READY(K)
when displayed on the report controller panels. It is printed as soon as a printer is
available for the appropriate destination and output class. After being printed, the
report is retained on the POWER LST queue in HELD(L) status, and is available for
reprinting. This provides a means of reprinting a report lost because of a failure
during printing.
If you decide to have all reports created so that they are ready to print, but still
want to be able to control when they are printed, you have several options. You
can use priorities as appropriate or, if this is not sufficient control, you can use a
special destination name as a holding destination, or a special output class as a
holding class.
Output class
Each report is assigned to one of 36 output classes. Each printer is also assigned
to one of the 36 output classes. A report can only be printed by a printer assigned
to the same output class. The default output class for reports is specified in the
SPOOL system initialization parameter.
A printer prints reports according to priority for the destination, output class, and
RSL values it is assigned to. If the ready-to-print reports all have equal priority, all
those of one forms type are printed before going on to the next forms type.
However, where different priorities are used, extra work for the end user who has to
change the paper would result, unless the forms types are kept in separate output
classes. The output class can be changed by using the CEMS or CEOS
transaction.
Priority
Each report is assigned a priority value 1 through 9. For a particular destination
and class, reports with priority 9 are printed first, followed by priority 8, and so on,
down to 1. The default priority value is 3. The priority can be changed by using
the CEMS or CEOS transaction.
SYSID
In a shared spooling environment, a report can have a VSE/POWER SYSID
associated with it. This can be useful when a particular VSE/ESA system
processes a particular file. PWRSYSID can be specified on the SPOOLOPEN
command when creating a report. CEMS or CEOS support selection by SYSID,
and allow it to be changed. Note, however, that the report controller print
component does not use PWRSYSID as a selection criteria.
Before a report can be printed, the forms type specified for the report must match
the forms type specified for the printer. The forms type for the printer can be
altered by using the CEMS or CEOS transaction. However, no check is made on
the physical size of the paper that is actually loaded. The report is printed when
the names of the forms types match.
Number of copies
You can specify how many copies of a report are to be printed. The default
number is 1, and can be changed by using the CEMS or CEOS transaction.
Separator pages
A separator page is a cover page to be printed with a report. It makes it easier to
see where one report ends and the next begins, and also gives some information
about the report. You can specify whether or not separator pages are to be printed
with a report. If you specify SEP, two separator pages are printed preceding the
body of the report, and two following it. If you specify NOSEP, no separator pages
are printed.
The size and content of the separator pages are determined by the DESTINATION
name of the printer on which the report is printed. If the DESTINATION is
**SYSPRT, the separator pages are the standard POWER separator pages. If the
DESTINATION is anything else, the separator pages are written by the report
controller itself.
The width of the report controller separator pages depends on the width
(LINELENGTH) of the report that they accompany (which, if the correct forms type
is loaded, is less than or equal to the width of the paper).
Each report controller separator page may show the following information:
The contents of the USERDATA field
The CICS USERID of the user who created the report (AUTHOR)
The date and time the report was printed
The DESTINATION the report was printed at (DEST)
The TERMINAL name (TRMIDNT) of the printer (PRT)
The output CLASS (CL)
The FORMS type (FNO)
The FCB (forms control buffer) code
The network NODE at which the report was printed
The network NODE at which the report was created (O-NODE)
The name of the CICS system that created the report (O-USR: always
SYSCICS followed by the identifier specified in the SPOOL system initialization
parameter)
Users of the CEMS or CEOS transactions can decide whether to have separator
pages or not, and can override what you code. For more information about
separator pages, see the CICS Report Controller User’s Guide.
Multiformat reports cannot be generated under VSE/ESA, but can be imported from
MVS systems.
When multiformat reports are printed on CICS printers, the same results are
obtained as on system printers.
Browsing reports
You can view online certain types of report that you have created in batch or using
the report controller.
The browse option is selected from the report list panel invoked by the CEMS and
CEOS transactions. The disposition of the spool file to be browsed can be A, D, K,
L, or H. The panel displays the name of the report you are browsing and the
number of pages. Using PF keys, you can move backward and forward, page by
page or within a single page. You can also go directly to a certain page in the
report. If a report page is wider than the screen display area, you can use PF keys
to scroll right and left. You can also search for strings within a report.
When shift-out/shift-in control data sequences appear in an SCS data stream, they
do not occupy a display or print position, but in a 3270 data stream they do (a
blank is inserted). This means that application programmers would need to know
To solve this problem, the shift-out/shift-in attribute can be indicated through two
mutually exclusive options on the EXEC CICS SPOOLOPEN REPORT command:
1. SOSI1 indicates the application programmer’s intent that the shift-out/shift-in
sequences are to take up a print position.
2. SOSI2 indicates that the shift-out/shift-in sequences are not to take up a print
position.
There is no default. The attribute is stored with the report and can be transmitted
with the report within an Network Job Entry (NJE) job network.
Managing printers
You can use the report controller for the following tasks:
Listing the printers and getting information about their current usage. You see
only the printers that you are authorized to control. You can select the ones
you want to see on the list, by using a partial name on the Printer Selection
panel.
Changing the usage of a printer.
The characteristics you can change are:
– Destination.
– Output class.
– Forms type.
– The number of pages that are to be used for alignment.
– Whether printer messages are to be printed, as well as displayed on the
printer list panel. (You might not want printer messages on your preprinted
forms.) See “Printer status messages” on page 38.
– Default forms control buffer.
– The actions to be taken when a report does not start with a skip to channel
1.
Starting report printing.
Pausing and resuming or restarting report printing.
Aligning forms on the printer.
The report controller stops printing when a report needs a different forms type,
so you know when the paper needs changing. The forms type for a report can
be specified when the report is created. The forms type for the printer can be
specified when the printer is started. The printer prints only those reports with
a matching forms type. This reduces the danger of printing a report on the
wrong paper.
The printing of status messages is specified for individual printers using the
PRTDMSG operand of the DFHTCT TYPE=TERMINAL or the PRINTEDMSG
option of the TERMINAL resource definitions. The default value for both of these is
NO.
The printing of status messages for the current CICS session can be enabled and
disabled on the CEMS and CEOS printer characteristics panel.
Suppression of printer status messages is useful if you print on special forms, for
example, receipts or invoices. It is essential that such forms are not misaligned
because of status messages sent to the printer.
Printer sharing is enabled by specifying a time-out period for the printer. If the
printer is in WAITING status for longer than the specified period, it is released
(RELEASED status) and becomes available for other applications. If more work
becomes available for the printer after it has been released, it is restarted
automatically as soon as it is free.
The time-out period is specified as the number of minutes (1 through 59) the printer
can remain idle (that is, performing no report controller printing) before it is freed for
use by other CICS or VTAM applications. The time-out is specified by defining a
value for SPOOLPRTTO in the RDO TERMINAL definition. For more information
see the CICS Resource Definition Guide.
If a value of zero is specified (the default), this means that the printer is not capable
of being shared with other applications.
Note: Although the printer device is freed after the idle period has expired, the
print task (CEPW) remains active in order to monitor the arrival of more work for
the printer. When work arrives, the appropriate actions to reacquire and start
printing again are taken.
Printer states
The following printer states are relevant to the printer sharing facility, and are
displayed in the CEMS and CEOS Printer List panels.
RELEASED The printer has remained idle for longer than the specified
time-out period and has been released for other CICS or
VTAM applications to use, but none is doing so at this time.
If more work arrives for the task, printing resumes. The
printer can be stopped at this point if required.
RELEASED (IN USE) The printer has been released and another application has
acquired the printer and is currently using it. If more work
arrives for the print task, printing of reports resumes when
the printer becomes free. The printer can be stopped at this
point if required.
STARTING More work has arrived for a printer that has been in the
RELEASED state. CICS is in the process of reacquiring the
printer and recommencing printing. No operator actions can
be performed against a printer in this state.
STARTING (IN USE) As with STARTING, this indicates that CICS is in the process
of reacquiring the printer and recommencing printing, but
another application has control of the printer. When the
printer becomes free, report controller printing resumes. No
operator actions can be performed against a printer in this
state.
Note: Typically, this state occurs only if the printer is in use
by another VTAM application (which could be another CICS
system) rather than another CICS application in the same
CICS address space as the report controller
The STARTING (IN USE) state is shown when the printer is
started initially if, at that time, it is in use by another
application.
Figure 3 shows the components involved in creating and controlling input for batch
jobs (JCL reports).
EXEC CICS SPOOL... commands and batch programs can be used to create input
for batch jobs (JCL reports). The figure also shows that JCL reports are written to
the POWER RDR queue and are managed by the report controller.
CICS SYSTEM
SPOOLING INTERFACE
RDR POWER
JOBS
Report Controller
CEMS
CONTROL
COMPONENT
KEY CONTROL
BY END USERS
INFORMATION
TO END USERS
MOVEMENT OF
REPORT DATA
Figure 1 on page 3 shows that a report created from a transient data queue can
be sent to a system printer. The figure also shows the components involved in
creating a report from a transient data queue, and the role of the report controller in
controlling the printing of the report.
CICS SYSTEM
SPOOLING INTERFACE
TRANSIENT
POWER LST DATA
REPORTS QUEUES
KEY CONTROL
BY END USERS
INFORMATION
TO END USERS
MOVEMENT OF
REPORT DATA
From the report-creation view, you can use your existing application programs, but
you may have to modify the JCL slightly to enable CEMS or CEOS users to control
printing. Table 2 on page 44 shows the report characteristics that correspond to
keywords, which come from the VSE/POWER JECL, or from A $$ JOB and $$ LST
statements (from POWER JECL or VSE SEGMENT segmentation macros). The
START and END pages of a report are always the first and the last; you cannot
change them using CEMS or CEOS. No other report characteristics exist for
reports created by batch programs.
// EXEC POWER
..
.
DEFINE L,CICSDATA,3F,2,255,A
A $$ LST CLASS=a,keyword=(rslvalue),...
For example:
A $$ LST CLASS=C,CICSDATA=(RSL=5),...
You can also use the CICSDATA keyword to name an escape program.
If you use the VSE SEGMENT segmentation macro, you can change the RSL
for each segment of a LST report. In this way you can use segmentation to
split a report for multiple destinations (by using multiple USERID values), with a
different RSL value for each destination.
For more information about CICS resource security level (RSL) checking, see
Chapter 7, “Report controller security” on page 57.
3. Using CEMS or CEOS, you cannot change SEP to NOSEP, or NOSEP to SEP,
for reports not created by CICS.
4. For more information, see “Forms control buffers (FCBs) and printing” on
page 47
5. When a DISP=D report has been printed using the report controller, it is
deleted. When a DISP=K report has been printed, it is held on the POWER
LST queue as DISP=L.
If you use CEMS and CEOS to hold DISP=D or DISP=K reports before printing,
then DISP=D reports are set to H, and DISP=K reports are set to L.
If you use CEMS and CEOS to PRINT DISP=H or DISP=L reports, they are set
to READY: DISP=H reports are set to D, and DISP=L reports are set to K.
DISP=4, DISP=X, and DISP=Y are set internally. They cannot be specified on
POWER JECL.
When a report is created with the report controller, CICS-specific attributes of that
report are recorded in an extension to the spool file header called the output
parameter text block (OPTB). (This is maintained by VSE/POWER, according to
Network Job Entry protocols.) The OPTB is made up of a number of text units
(TUs). CICS has a TU called CICSDATA (TU key X'3F00'), in which the
CICS-specific attributes are saved. VSE/POWER provides services to build and
retrieve TUs through the Spool Access Services (SAS) interface.
In addition, POWER allows you, using the autostart DEFINE statement, to specify
your own keywords to be used on JECL statements in a batch job. You can use
such a keyword to build the CICSDATA TU with the data specified on the keyword.
The data can contain the name of an escape program to be invoked when the
report is ready for printing. To do this you must include a DEFINE statement in the
POWER AUTOSTART deck, as follows:
// EXEC POWER
..
.
DEFINE L,keyword,3F,2,255,A
The keyword can be any eight characters. However, you are recommended to use
CICSDATA. (Note that X'3F' is the keyword ID for CICSDATA.) For example:
// EXEC POWER
..
.
DEFINE L,CICSDATA,3F,2,255,A
You refer to the keyword on the POWER LST statement in the batch job, as
follows:
A $$ LST CLASS=a,keyword=(cicslist)
Where cicslist contains strings that are passed directly to CICS. CICS recognizes
two strings: RSL=nn for the resource level, and ESCAPE=progname for the name
of the ESCAPE program (progname can be up to 8 characters in length). For
example:
A $$ LST CLASS=C,CICSDATA=(ESCAPE=BATREP,RSL=5)
If an FCB is specified in this way, the name is checked for the presence of $$$$ as
the first four characters, indicating a generic FCB (for example, $$$$RC01). If the
name is a generic name, the $$$$ characters are converted to the default, FCB3.
At report print time, the report controller tries to load the named FCB. If the load is
successful, it is used during printing (as described), and its name appears on the
separator pages. If a named FCB is not loaded, or the FCB name is allowed to
Note that, at the time the output is created in batch, POWER tries to load the FCB
to simulate channel 9 and 12 posting. If the FCB is not found, POWER nullifies the
name and it is not passed to the report controller at print time. It is, therefore,
essential that FCB phases reside in a sublibrary that is accessible to both POWER
and CICS.
FCB hierarchy
Table 3 shows the sequence in which the FCB is used.
Device-independent FCBs
If the FCB name on the POWER A $$ LST statement is in the form $$$$xxxx
(where xxxx is a string of characters of your choosing), the $$$$ will be replaced by
a device-dependent string. When print output is being created in batch, POWER
replaces the $$$$ with a string representing the printer device that the program is
assigned to by the VSE/ESA // ASSGN command at that time. When printing the
data, the replacement reflects the physical output device to which POWER is
printing. When a report with a device-independent FCB is passed to the report
controller for printing, $$$$ is always replaced with FCB3.
Multi-segment reports
A report on the POWER LST queue might contain segments. These segments
appear as separate reports on the report selection panel. Segments are viewed
and managed as separate reports by the report controller feature.
Audit trail
Changes to the characteristics or status of reports and printers, and the reports
printed on each printer, are recorded in transient data queue CSPA.
Action messages for the print task CEPW and severe error messages are written to
transient data queue CSPW. The following events are recorded:
Request for change of forms
Completed change of forms
Printer interruption
Abend when a report in escape format is being printed
You can use CEMS to create a printable report out of either of the transient data
queues. For instance, the system administrator or supervisor can create a report
from CSPA each day. Following a printing failure, they could create and print a
report from CSPW, to find out which reports might need reprinting.
To use the audit trail facility you must include entries for CSPA and CSPW in the
destination control table (DCT).
The report controller error messages for English, Kanji, German, and Chinese are
contained in the load modules DFHPSEE, DFHPSEK, DFHPSEG, and DFHPSEC
defined to CICS as programs. This and changes to the report controller mapsets
are supplied in the CICS upgrade resource definition list DFHCU23F.
Also, the report controller panels provide many of the functions currently invoked by
operations staff using POWER commands at the console. Operations staff can be
authorized to use the report controller for these functions to give centralized control
over printing devices owned by CICS. In this way, operations workload can be
reduced. The report controller functions that can be used instead of equivalent
POWER commands are summarized in Table 4 on page 52.
PSTART DEV,name,SYSCICSa,b,PARM='destname'
Where:
destname is the name of the destination
name is the TERMINAL name or TRMIDNT of the printer
SYSCICS identifies the CICS system to POWER
a is the specification in the SPOOL system initialization parameter
b is the class of reports that the printer is to print
If PSTART is used to start a printer, you cannot specify the forms type to be loaded
on the printer. Users of the CEMS or CEOS transactions can print only those
reports for which no particular forms type has been specified.
If your CICS system is running as a guest system under VM, do not use the same
output class identifiers for reports destined for CICS printers and for reports
destined for VM. If you do, then when you start output for VM, any reports for the
same class, created by CICS programs and in READY status, are routed to the VM
output class. If VM can find a destination of the same name as the report
destination, it sends the report there. If VM cannot find a destination of the same
name, it puts the report back on the POWER LST file, in HELD status, and writes a
message to the console.
System printers
You can use the report controller to control fast, locally attached system printers.
You must define the printer to CICS, using RDO. There is a special destination
name **SYSPRT, which you must use. This identifies the printer as a system
printer, and allocates a larger buffer (2KB) to be used to get data from POWER
through the XPCC calls, giving better performance for fast printers.
You can use the destination name **SYSPRT for CICS terminal printers and
POWER system printers. You still get the 2KB buffer. This is intended for fast
system printers attached to CICS.
The first report printed on a non-SCS printer that has been started to the report
controller is preceded by a formfeed (blank page) when the first control character of
the report is a formfeed. This is a precautionary measure against overtyping in
particular circumstances.
You can suppress the production of a formfeed by changing the trailing YES|NO
option on the SPOOL system initialization parameter. Coding NO means that a
formfeed does not precede the first report printed on that printer.
However, you should be aware that coding NO (and therefore suppressing the
blank page) means that there may be a risk of the last line of the previous output
being overtyped when the printer is started to the report controller.
EPC works by signaling end of print before the data is actually committed to paper.
However, this can introduce an integrity exposure because errors may be indicated
after the data (which may have failed to print) has been discarded by the report
controller.
When printers defined as EPC-capable are started, a test is made of whether the
device and control unit support the architected method of EPC control. If this
capability is present, then dynamic enabling and disabling of the feature is
performed to ensure report integrity. If the architected method is not supported, a
dummy block (consisting of carriage return only) is sent to the printer at the end of
each copy, and at the end of each report. This ensures that most print errors
during the printing of a particular copy or report are detected before that copy or
report is deleted. If an error occurs during printing to an EPC-capable printer, the
last block successfully printed is not known, so the default restart page is page 1.
Because the CICS/VSE print task is long running, the end-bracket does not occur
between reports but at end of task. The effect of this is that the terminal printer
simulation software builds up long queues of reports that will not be printed until the
RCF print task is stopped.
This chapter describes the security aspects of the report controller and how security
checking is implemented.
Security
The report controller provides two possible levels of operator control. There are
two transactions:
1. CEMS, which provides functions suitable for the “computer operator”
2. CEOS, which provides functions suitable for the “end user.”
By protecting the use of these transactions with an external security manager, you
can control the range of report controller functions available to the user.
Users have access only to those reports and printers for which they are thus
authorized, so there is no danger to other departments’ or branches’ reports and
printers. Also, they may use their printer to print only the reports for which it is
authorized. The security values and keys need some careful planning to be used
effectively, however. For instance, you need to avoid giving users control over the
characteristics of a printer that cannot be used to print their reports.
Reports are secured with the DFHRCF.RSLnn resource name where nn is the RSL
value of the report. Whenever a program attempts to append to a report log (log
and resumable reports) or a CEMS/CEOS user attempts to access a report, the
ESM is called to ensure the user has the necessary UPDATE authority.
The report RSL is also used when printing a report on a CICS terminal printer. In
this case, the userid representing the terminal printer must have READ authority for
DFHRCF.RSLnn.
The report RSL is specified on the EXEC CICS SPOOLOPEN REPORT command.
For more information about the EXEC CICS SPOOLOPEN REPORT command,
see the CICS Application Programming Reference manual. You can also specify
an RSL value for a report created by a batch program (see “Managing reports
created by batch programs” on page 43), and when creating a report from a
transient data queue (CEMS option 4). For information about defining resources for
the report controller, see the CICS Resource Definition Guide manual.
Note that jobs and transient data queues are not accessible to anyone who is not
authorized to use CEMS. In addition, if resource checking of transient data queues
is active, (DFHSIT) parameter XDCT=YES, and RESSEC=YES is specified on
transaction CEMS) the signed-on user must be authorized to access the transient
data queue. Any report created without specifying an RSL value is assumed to
have an RSL value of 1, and are therefore accessible to any user of the CEMS
transaction who is authorized to DFHRCF.RSL01.
The USERDATA on a report is visible to all report controller users who look at the
report list panel, so take care how you use this field when creating reports.
When an attempt is made to print a report on a printer whose userid does not have
READ access to DFHRCF.PRSLnn where nn is the RSL value of the report, the
report is set to ERRPRT status.
You are not recommended to allocate RSL values to output classes within
destination, because this is more complicated and error-prone: reports are more
likely to be set to ERRPRT status through user error.
If a user accidentally starts a printer for reports for which the USERID of the printer
is not authorized to the appropriate DFHRCF.RSLnn resource, the reports are sent
to ERRPRT status. A security administrator can change the authority of the
printer's USERID to include access to the required DFHRCF.RSLnn resource.
The security administrator might need to find out the RSL value required for the
report from the application program, because this value is not recorded anywhere
else. Even when the USERID associated with the printer is given access to the
required DFHRCF.RSLnn resource to print the report, the user may still have a
problem. The reports may be reports to which the user has no access, and so
someone else with access to the appropriate DFHRCF.RSLnn resource must reset
the status of the reports so that they can be printed.
In CICS Transaction Server for VSE/ESA Release 1 the user attempting to browse
a report must have READ access to the resource DFHRCF.BRSLnn, where nn is
the RSL value of the report.
This chapter describes the recovery processing that CICS provides for the report
controller.
PHYSICAL
A physically recoverable report is restored to the state it was in immediately
before an abend. Each line is written directly to disk. This type of recovery
makes heavy use of input/output, and its use should be carefully considered
before it is selected.
You must specify PHYSICAL for log reports, if you want them to be
recoverable. When log reports abend they are put in ERRCRT status. This
means that after restart any attempt to write to or close the report results in the
NAMEERROR condition.
Physical recovery is not allowed for JCL reports, and if coded is ignored.
LOGICAL
A logically recoverable report is restored, following an abend, to the state it was
in at the start of the CICS task or at the last syncpoint. In this way you can
ensure that an unfinished report is not created when an abend occurs.
LOGICAL is the default.
You make choices concerning recovery in the EXEC CICS SPOOL... command
options and by operator actions (switching from a failed printer, for example), but
there are no special recovery programming requirements.
If you are using the CICS interface to POWER without the report controller, only
facilities for logical recovery are provided. There is a replaceable terminal error
program for use with the report controller. (For programming information about the
terminal error program, see the CICS Customization Guide.)
Report controller recovery and restart falls into two main areas. Most of these
failures are detected and may be recoverable and restartable:
Failures during report creation—for example, a report writing transaction, on
transaction abend, may be backed out to the last CICS syncpoint using
dynamic transaction backout. The transaction might then be restarted from a
known safe point using transaction restart.
In this example, the recovery action can be automatically invoked.
See the CICS Recovery and Restart Guide for more information about these types
of failure.
Extended records
Records retrieved from POWER which are longer than the carriage width of the
printer wrap onto the next line. Because report formatting is based on counting
input lines, this may cause corruption. Care must be taken not to create spool
records that exceed carriage width if the report controller is to be used to print a
formatted report.
Output to a printer may require up to 10 bytes for carriage control or EOM type
control information, so large POWER spool records are truncated to ensure that
this data can be sent to the printer. The limiting factor is the size of the printer’s
buffer, as defined to CICS in the TCT. If truncation takes place, message
DFH5493 will appear in the CSPW log. Report output continues by printing the
maximum data that can be handled, but formatting may have been corrupted.
Syncpoint
Issuing an EXEC CICS SYNCPOINT command in an application program closes all
reports.
All standard and resumable reports open at the time the syncpoint is issued are
closed and their status set to “ready to print”.
Standard reports with logical recovery for which an EXEC CICS SPOOLCLOSE
REPORT command has been issued before the EXEC CICS SYNCPOINT
command is issued are committed; that is, they are released for print. Only reports
opened after the syncpoint are affected by abnormal termination of the task.
Log reports can be recovered at the physical level only. As a result, each record is
committed to disk.
This chapter describes what you have to do to set up the report controller and
printers to work with the report controller in a CICS Transaction Server for
VSE/ESA system. You may be enabling the report controller for the first time or
you may simply want to add some new printers. References are made to CICS
Transaction Server for VSE/ESA and VTAM books as necessary.
The following steps are necessary to set up CICS Transaction Server for VSE/ESA
to use the report controller:
1. Enabling the CICS spooler interface.
2. Installing the group DFHRCF.
3. Preparing the resource definitions.
You can code macros to set up the terminal control table (TCT), program
control table (PCT), and other tables with the appropriate definitions.
Alternatively, you can use resource definition online to create a CICS system
definition file (CSD) containing the necessary definitions.
4. Defining the VTAM configuration parameters. This is necessary to define the
printers to VTAM.
5. Preparing the startup job stream. You must ensure that the CICS startup job
specifies the correct system initialization parameters for the report controller
and printers.
6. Other preparation work. The signon entries for CICS users must be set up.
7. Overriding the VTAM startup defaults with your own values. This is how the
printers are defined to VTAM.
8. Submitting the CICS startup job. The correct system initialization parameters
must be specified.
TYPETERM definitions
The TYPETERM definition must correspond to the VTAM logon characteristics that
appear in the VTAM logon mode table (see “The logon mode tables” on page 73
and Figure 8 on page 74).
TERMINAL definitions
Each TERMINAL definition refers to a TYPETERM definition, therefore TYPETERM
and GROUP must match those in the TYPETERM definition.
For each of the terminal display units using the report controller, include the
SPOOLTO operand. (This names a destination at which reports created at the
terminal are to be printed.) Refer to the CICS Resource Definition Guide manual
for details of using the CEDA transaction to define resources.
In the example in Figure 6 on page 70, the job VTAMSET is used to catalog the
following members into a sublibrary of PRIV02:
For full details of how to code a job such as VTAMSET, see the VTAM Installation
and Resource Definition Reference manual.
The following sections describe the various start options and statements in the
example in Figure 6 on page 70.
VTAM has a logon mode table named ISTINCLM, which provides generally
accepted session protocols for a basic list of IBM device types. You must write
your own logon mode table to accommodate other device types. The VTAM
Installation and Resource Definition Reference manual describes how to write your
own logon mode tables and include them in VTAM. Each logon mode table must
be assembled and link-edited into the private definition library referenced in the
VTAM startup procedure. Figure 7 contains definitions for non-SNA 3270 devices.
MT3287B MODETAB
A---------------------------------------------------------------------A
A A
A MODE TABLE FOR BSC 3287 AND 3289. A
A A
A---------------------------------------------------------------------A
A A
MT32872 MODEENT LOGMODE=MT32872, 3287/3289 MODEL 2 A
TYPE=1, ONLY TYPE RECOGNIZED A
FMPROF=X'2', NON-SNA A
TSPROF=X'2', NON-SNA A
PRIPROT=X'71', PRIMARY PROTOCOL A
SECPROT=X'4', SECONDARY PROTOCOL A
COMPROT=X'2', COMMON PROTOCOL A
PSERVIC=X'82'
A-------
MT32871 MODEENT LOGMODE=MT32871, 3287/3289 MODEL 1 A
TYPE=1, ONLY TYPE RECOGNIZED A
FMPROF=X'2', NON-SNA A
TSPROF=X'2', NON-SNA A
PRIPROT=X'71', PRIMARY PROTOCOL A
SECPROT=X'4', SECONDARY PROTOCOL A
COMPROT=X'2', COMMON PROTOCOL A
PSERVIC=X'81'
A-------
KANPRT MODEENT LOGMODE=KANPRT, 5553 KANJI PRINTER (NON-SCS) A
TYPE=1, ONLY TYPE RECOGNIZED A
FMPROF=X'2', NON-SNA A
TSPROF=X'2', NON-SNA A
PRIPROT=X'71', PRIMARY PROTOCOL A
SECPROT=X'4', SECONDARY PROTOCOL A
COMPROT=X'2', COMMON PROTOCOL A
PSERVIC=X'81851857F'
A-------
MODEEND
END
Figure 8 shows the relationship between the PSERVIC operand in the MODEENT
macro and the TYPETERM definition. It also shows the relationship between the
TERMINAL and TYPETERM definitions.
TERMINAL Definition
TYPETERM Definition
Interpret tables
VTAM uses the interpret table to determine which application program is to be
notified when a session-establishment request is received. The name (in the
example in Figure 9, INTABAB) must be the same as the name used in the
LOGTAB operand in the VTAM definition file.
In the example, the two LOGCHAR macros allow the logon message to be in
uppercase or lowercase letters. The APPLID operand identifies CICSR1 as the
application with which VTAM establishes a session.
INTABAB INTAB
SEQ1 LOGCHAR APPLID=(USERVAR,CICSR1),SEQNCE='CICSR1'
SEQ2 LOGCHAR APPLID=(USERVAR,CICSR1),SEQNCE='cicsr1'
ENDINTAB
END
LOG
// LIBDEF A,SEARCH=(PRIV2.COWAN,BSFV2.BSF,PRD2.PROD, A
COBOL2.CICS,COBOL2.RUN,COBOL2.DEB, A
C37.RUN)
// UPSI 11
A // PAUSE ENTER LIBDEFS ETC. HERE, EXEC CICS NEXT
// EXEC DFHSIP,SIZE=2M
SIT=1$,GRPLIST=RCFLIST
APPLID=CICSRC
START=COLD,MSGLVL=2
MCT=1$,JCT=1$
PLI=YES,COBOL2=YES
TCT=RC
PCT=1$
PPT=1$
DCT=1$
ISC=NO,DIP=YES
SPOOL=(YES,S,S)
$END
/A
// PAUSE EOJ HERE
// EXEC LISTLOG
NOLOG
/&
A $$ EOJ
Notes:
1. The LIBDEF statement must include the private sublibrary that contains your
resource definitions and other files (PRIV02.COWAN in this example).
2. The GRPLIST system initialization parameter specifies that the list RCFLIST
contains your resource definitions.
3. When you run CICS with VTAM, you must ensure that your CICS system
application identifier (applid) is also defined to VTAM in an APPL statement
(see “The VBUILD statement” on page 72).
4. The system initialization parameter TCT=RC specifies that DFHTCTRC
contains the terminal definitions.
5. The system initialization parameter SPOOL=YES specifies the system spooler
interface, which is necessary for the report controller. The second value
specified by SPOOL is a 1-character identifier for the CICS system. If you plan
to run CICS systems in different VSE partitions, you must use a different
1-character identifier for each CICS system. Otherwise, the VSE/POWER
If you enter LIST=RC at the ENTER VTAM START PARAMETERS prompt, the
supplemental list is ATCSTRRC.B. This allows you to override the default VTAM
configuration parameters, and define your printers to VTAM.
This chapter describes the sample programs that generate reports. These sample
programs are included in source form on the report controller feature tape, and are
executable only when the report controller is installed.
You can invoke each of the five versions of the sample program by entering its
transaction identifier (ARPS, DRPS, 2RPS, and PRPS respectively) on to a clear
screen. The low balance report sample program creates a report called
DFH$ARPS, DFH$DRPS, or DFH$PRPS, that lists all entries in the dataset FILEA
for which the amount is less than or equal to $50.00.
The program shows page building techniques and the use of the terminal paging
facilities of BMS. The report is written to the POWER spool queue, and you can
then control the output of this report using the CEMS or CEOS transactions.
The report names, mapset, and transaction identifiers for this function are:
The program does a sequential scan through the file selecting each entry that
obeys the search criterion. The pages are built from four maps that comprise
mapset DFH$AGD, using the paging option so that the data is not displayed
immediately but is stored instead for later retrieval. The HEADING map is inserted
at the head of each page. The detail map (DFH$AGD) is written repeatedly until
the OVERFLOW condition occurs. The FOOTING map is then written at the foot of
the page and the HEADING map written at the top of the next page. The
command to write the detail map that caused overflow is then repeated. When all
the data has been written, the FINAL map is written at the bottom of the last page
and the transaction is terminated.
The terminal operator then enters paging commands to display the data, clearing
the screen before entering each paging command.
SREP generates a set of reports with the user’s user ID as the report controller
destination. End users can process these reports as they work through the tutorial,
without affecting other users of the report controller, or other users of the tutorial.
The program names and transaction identifiers for this function are:
The TRANSACTION definition and DFHPCT entry supplied for SREP both have the
assembler-language version of the program specified. Therefore, if you want to
use PL/I or COBOL, you need to copy the definition or entry and change it.
If the destination identifier and sample report characteristics are satisfactory for
your installation, you can use the pregenerated assembler-language version,
DFH$ASRE.
However, if you need to modify the sample program, edit the source program of
whichever language you prefer and then translate, compile (or assemble), and
link-edit a new version. (Some guidance on modifying the sample programs is
given in the comments at the beginning of the sample source members.)
If you install an amended version, you should check the resource definitions for the
transaction and program. Note that only the assembler-language version has a
transaction code defined in the CSD by the samples upgrade module DFHCU22F.
Note: If you change any of the report characteristics, remember to note the
changes in the CICS Report Controller User’s Guide tutorial text before you make
them available to any user of the report controller.
The tutorial advises users that they should delete the sample reports when they
have finished.
They need to know the 4-character name of this printer, and they need to be able
to sign on to CICS using CSSN, with a user ID and password. They should sign
on to a 3270-type terminal that is defined to CICS.
General
Master Index SC33-1648
Trace Entries SX33-6108
User’s Handbook SX33-6101
Glossary (softcopy only) GC33-1649
Administration
System Definition Guide SC33-1651
Customization Guide SC33-1652
Resource Definition Guide SC33-1653
Operations and Utilities Guide SC33-1654
CICS-Supplied Transactions SC33-1655
Programming
Application Programming Guide SC33-1657
Application Programming Reference SC33-1658
Sample Applications Guide SC33-1713
Application Migration Aid Guide SC33-1943
System Programming Reference SC33-1659
Distributed Transaction Programming Guide SC33-1661
Front End Programming Interface User’s Guide SC33-1662
REXX Guide SC34-5764
Diagnosis
Problem Determination Guide GC33-1663
Messages and Codes Vol 3 (softcopy only) SC33-6799
Diagnosis Reference LY33-6085
Data Areas LY33-6086
Supplementary Data Areas LY33-6087
Communication
Intercommunication Guide SC33-1665
Internet Guide SC34-5765
CICS Family: Interproduct Communication SC33-0824
CICS Family: Communicating from CICS on System/390 SC33-1697
Special topics
Recovery and Restart Guide SC33-1666
Performance Guide SC33-1667
Shared Data Tables Guide SC33-1668
Security Guide SC33-1942
External Interfaces Guide SC33-1669
XRF Guide SC33-1671
Report Controller User’s Guide SC34-5688
CICS Clients
CICS Clients: Administration SC33-1792
CICS Universal Clients Version 3 for OS/2: Administration SC34-5450
CICS Universal Clients Version 3 for Windows: Administration SC34-5449
CICS Universal Clients Version 3 for AIX: Administration SC34-5348
CICS Universal Clients Version 3 for Solaris: Administration SC34-5451
CICS Family: OO programming in C++ for CICS Clients SC33-1923
CICS Family: OO programming in BASIC for CICS Clients SC33-1671
CICS Family: Client/Server Programming SC33-1435
CICS Transaction Gateway Version 3: Administration SC34-5448
VSE/ICCF
VSE/POWER
VSE/VSAM
Bibliography 83
VTAM for VSE/ESA
DL/I VSE
Bibliography 85
Screen Definition Facility II (SDF II)
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing,
to:
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in
your country or send inquiries, in writing, to:
The following paragraph does not apply in the United Kingdom or any other country where such provisions
are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION “AS IS” WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore this statement
may not apply to you.
This publication could include technical inaccuracies or typographical errors. Changes are periodically made to the
information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without
notice.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of
information between independently created programs and other programs (including this one) and (ii) the mutual use
of the information which has been exchanged, should contact IBM United Kingdom Laboratories, MP151, Hursley
Park, Winchester, Hampshire, England, SO21 2JN. Such information may be available, subject to appropriate terms
and conditions, including in some cases, payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by IBM under
terms of the IBM Customer Agreement, IBM International Programming License Agreement, or any equivalent
agreement between us.
CICS, CICS/VSE, IBM, VSE/ESA, VTAM, CICS Transaction Server for VSE/ESA.
Other company, products, and service names may be the trademarks or service marks of others.
K P
KEEP option, SPOOLCLOSE REPORT command 16 page headings and footings 6
page numbering, report 6, 23
PATH statement 72
L PCT (program control table) 66
LBUILD statement 72 physical recovery 61
line length of reports 22 POWER
LINELENGTH option, SPOOLOPEN REPORT commands provided by report controller
command 16 functions 51
lines per page in reports 22 destinations and printers 52
LIST start option 76 dispositions 45
listing XMT queue 2
printers 37 PPT (processing program table) 66
the job queue 39 printer destination 32
transient data queues 41 printer status messages 68
LOCAL statement 72 printers
LOG option, SPOOLCLOSE REPORT command 16 controlling with the report controller 37
log reports 6, 14 format conversion 19
See also audit trail security characteristics 57
opening and closing 6 suitable for report controller 5
logical recovery 61 use of PRINTFAIL option 58
logon mode table 73 PRINTFAIL option, SPOOLOPEN REPORT
command 6, 58, 63
printing reports 32
M processing program table (PPT) 66
managing program control table (PCT) 66
jobs 39 programming the report controller 5
printers 37 PWRSYSID option 7
reports 31
transient data queues 41
mapping, BMS 27 R
MCC report format 21, 36 recovery level of report
multiformat reports 36 logical recovery 61
no recovery 61
physical recovery 61
RELEASE option, SPOOLCLOSE REPORT
command 16
Index 91
time, report 23
TITLE option, SPOOLOPEN REPORT command 9
TOKEN option, SPOOL commands 10
TOKEN option, SPOOLCLOSE REPORT command 16
TOKEN option, SPOOLOPEN REPORT command 15
tokens, in report creation 10
transient data
reports from queues with the report controller 41
TYPETERM resource definitions 67
U
userdata 9
USERDATA option, SPOOLOPEN REPORT
command 6, 9
V
VBUILD statement 72
viewing reports online 36
VSE/POWER 51
VTAM
configuration parameters 68
interpret table 74
logon mode table 73
overriding startup parameters 76
W
writer task (CEPW transaction) 63
writing to a report 16
SC33-1941-01
If you want to send to IBM any comments you have about this book, please use one of the methods
listed below. Feel free to comment on anything you regard as a specific error or omission in the subject
matter, and on the clarity, organization or completeness of the book itself.
To request additional publications, or to ask questions or make comments about the functions of IBM
products or systems, you should talk to your IBM representative or to your IBM authorized remarketer.
When you send comments to IBM, you grant IBM a nonexclusive right to use or distribute your comments
in any way it believes appropriate, without incurring any obligation to you.
You can send your comments to IBM in any of the following ways:
By mail:
IBM UK Laboratories
Information Development
Mail Point 095
Hursley Park
Winchester, SO21 2JN
England
By fax:
– From outside the U.K., after your international access code use 44 1962 870229
– From within the U.K., use 01962 870229
Electronically, use the appropriate network ID:
– IBM Mail Exchange: GBIBM2Q9 at IBMMAIL
– IBMLink: HURSLEY(IDRCF)
– Email: idrcf@hursley.ibm.com
Whichever method you use, ensure that you include:
The publication number and title
The page number or topic to which your comment applies
Your name and address/telephone number/fax number/network ID.
IBM
SC33-1941-1
Spine information:
IBM CICS TS for VSE/ESA Report Controller Planning Guide Release 1