z/OS Service Package: X2022011
SMP/E SYSMOD:
Component:
Operating System:
Publish Date:
APAR & Description:
RS34009
SELCOPYi
z/OS
2022/01/26
- IQ005379, IQ005378, IQ005376, IQ005375, IQ005374, IQ005368,
IQ005366, IQ005361, IQ005360, IQ005277:
- SELCOPYi REPORT Utility enhancements and fixes:
- Report Definition INPUT/OUTPUT Sections
Sections INPUT: and OUTPUT: introduced to define
default input source and output data set
destination respectively. Entries specified in
these sections may be overridden using REPORT
command parameters or values entered in REPORT
utility panel input fields.
- Report Definition MAP Section
The MAP: section has been updated to support field
definitions specified using SELCOPYi CREATE
STRUCTURE command syntax. This provides a more
comprehensive alternative to the SYMNAMES format
currently supported.
- Built-In Functions
The following built-in REXX functions have been
introduced for use in the COMPUTE: section:
BYPASS()
Skip reporting on the record or record segment currently being processed.
DATEINC()
Increment (or decrement) a date value by a number of days, months or years.
EOF()
Force end of input to skip reporting on the current record or record
segment, and all records that follow.
MONTHBEG()
Return the ISO format date for the first day in the month of the current
or specified date.
MONTHEND()
Return the ISO format date for the last day in the month of the current
or specified date.
TIMEINC()
Increment (or decrement) a time or timestamp (date & time) value by a
number of hours, minutes or seconds.
- Report Definition OPTIONS Section
Support has been included for the following OPTIONS: section options:
- DETAIL(nlines[,ALL|DISPLAY])
ALL or DISPLAY options indicate whether generated statistics values
are derived from all detail lines in a control group or only those
displayed. The DETAIL option is now also obeyed for CSV, JSON and XML
report output.
- FIELDNAME([SHORT] | [LONG])
For input fields, forces REPORT to assign field values to the
unqualified (SHORT) format of the field name variable, the qualified
(LONG) format of the field name variable, or both.
- FIND(string [, ...])
For non-DB2 type input, specifies search strings to be used for record
selection. For SMF type input, FIND is one of the SMF record content
match criteria options.
- HEADWIDTH(int)
Specifies the width of header and footer lines within a printed report.
- ILIM(int)
Specifies the input limit, maximum number of records or DB2 rows to
be read from the data source.
- NUMTRUNC(YES|NO[,char])
Specifies whether numeric value truncation is tolerated (and so partial
numeric values displayed) or if the overflowing field value is to be
substituted with repeating truncation filler character (char) filling
the display field width.
- OLIM(int)
Specifies the output limit, maximum number of detail report lines that
may be written to the output report.
- PAGEDEPTH(int)
Specifies the number of lines written to each page of the printed report
output.
- REPORT(DB2|SDE|SMF)
Specifies the type of input source data.
- SHORTSTATS(YES|NO)
Specifies whether statistics values that overflow the display area width
will be shortened to a value with a multiplier suffix and possible
"greater than" (">") prefix, or will be substituted with repeating
truncation filler characters as defined by option NUMTRUNC.
- SMFDATEHI(timestamp | -days)
For SMF type input only, specifies the latest SMF record timestamp to be
processed.
- SMFDATELO(timestamp | -days)
For SMF type input only, specifies the earliest SMF record timestamp to
be processed.
- SMFJOBNAME(jobname [, ...])
For SMF type input only, specifies jobname masks for SMF record content
match criteria processing.
- SMFLOGIC(OR|AND)
For SMF type input only, specifies the logical operation performed between
SMF record content match criteria.
- SMFONLINE(YES|NO)
For SMF type input only, specifies whether SMF records are processed
directly from an online SMF log data set or from SMF archive data sets.
- SMFSID(sid [, ...])
For SMF type input only, specifies system identification masks for SMF
record content match criteria processing.
- SMFTYPES(rectype | rectype:rectype | {rectype-subtype | rectype#subtype} [, ...])
For SMF type input only, specifies record type/subtype masks for SMF
record content match criteria processing.
- SMFUSER(username [, ...])
For SMF type input only, specifies user name masks for SMF record
content match criteria processing.
- Input Field Value RESET
The RESET: section will reset all input field values to null after
processing a record or record segment of the specified record type
mapping. RESET of individual input field values can now be further
controlled using the following field definition operands in COLUMNS:
and REQUIRED: sections:
- NORESET
Suppresses reset of the field value that would occur as a result
of a RESET: section specification.
- NORESETBREAK
Suppresses reset of the field value that would occur as a result
of a RESET: section specification only if the field value is to
be displayed in the first line of a control group. Only applicable
to entries in the COLUMNS: section.
- NORESETPAGE
Suppresses reset of the field value that would occur as a result
of a RESET: section specification only if the field value is to be
displayed in the first line of a new page. Only applicable to
entries in the COLUMNS: section.
- External Field Values
In the previous release, fields identified as a SORT key, BREAK key
or a variable value in a print-expression would inherit an external
formatted value defined by the matching field name entry in the
COLUMNS: or REQUIRED: section.
To overcome this restriction, the external field value format may
now be controlled independently on entries in the BREAK: and SORT:
sections, as well as on individual elements of a print-expression.
Any of the following optional operands may be specified on an entry
in the COLUMNS: or REQUIRED: sections, on a BREAK: or SORT: section
key field definition, or on a print-expression element:
- SUBSTR
Specifies the start character number and optionally the length
of the field data to be used as the field value. This occurs
before any STRIP operation takes place.
- STRIP
Specifies that leading and trailing blanks are to be stripped
from the field value. This occurs before field alignment takes
place.
- <width>:
The width of the field value text. The field value will be
aligned within this field width and blank padded or truncated
accordingly. If not specified, the defined maximum width of the
built-in or input field is used. Otherwise, for compute fields
a default width of 9 is used.
- CENTER | CENTRE | LEFT | RIGHT
The alignment of the field value within the field width.
Alignment will occur after any STRIP keyword operation has taken
place.
- Statistical Values
The following enhancements have been introduced relating to the display
of statistical values:
- Entries in the COLUMNS: and REQUIRED: sections now support operand
NBTOTAL which will generate total numbers of Non-Blank field values
for each control group. By default, this value is reported in the
control break totals line.
- Break line print-expression field elements may now specify one of
the statistics based operands: AVERAGE, MAXIMUM, MINIMUM, NBTOTAL,
NZAVERAGE, NZMINIMUM or TOTAL. Instead of inserting the prevailing
field value in the break line, the relevant statistics value will
be inserted for the current control group.
- The default statistics columns now include columns defined with
compute fields if these fields are recognised as containing numeric
data. Previously, compute fields were always treated as being
non-numeric unless a datatype specification was provided on the
COLUMNS:/REQUIRED: section field reference.
- Restrictions Removed
The following restrictions no longer apply:
- The REPORT command syntax now supports specification of a report
definition source file only with no other operands, i.e.
REPORT report_ctl.
This is equivalent to specifying "REPORT RUN RPTDEF(report_ctl)".
Supporting this syntax, enables foreground execution of a report from
a SELCOPYi list of report definition source library members. Simply
type REPORT against the required report definition member in the list
prefix area. An INPUT: section in the report definition is mandatory
when using this method to execute REPORT.
- Input fields and compute fields used as a key field in the SORT: or
BREAK: sections, or referenced within a print-expression, no longer
need to be explicitly defined in the COLUMNS: or REQUIRED: sections.
However, an input field must still be defined in the COLUMNS: or
REQUIRED: section if it is to be referenced as a REXX variable within
the COMPUTE: section routine.
- Repeating Segments
Obtaining input field values from repeating, secondary segments is only
possible if the secondary segment record-type mapping is named in the
REPEAT: section.
However, output of a report detail line is triggered whenever the current
input segment matches a record-type mapping named in the REPEAT: section.
This may not be desirable if the next report output line requires further
field values to be obtained from a subsequent segment.
To allow for this situation, operand "INPUT" may be entered following a
record-type name specification in the REPEAT: section, to identfy the
record segment as being for input only. Segments with this record-type
mapping will not trigger output of a report detail line.
Reporting on segmented records, and thus use of a REPEAT: section, is
most common for SMF record processing.
- Various Fixes
The following fixes have been implemented:
- No longer print only the last line of column
headers when no input field entries are
specified in the COLUMNS: section and column
headers for compute field columns are split over
multiple lines using the header break symbol
("|").
- When a field is referenced in a print-expression
or used as a key field in the SORT: or BREAK:
section, use its value prior to being reset to
null.
- IQ005369, IQ005422, IQ005421, IQ005416, IQ005414, IQ005389,
IQ005357, IQ005348:
- SELCOPYi SMF Utilities enhancements and fixes:
- Support added for SMF record Type 200: CA-SPOOL.
- New fields added to existing SMF record types 30, 82, 89, 92 and 123 for
latest z/OS release.
- Description of timestamp field zTME corrected in all SMF record mappings.
- SMF records BROWSE and EXTRACT utilities updated for non-standard
location of the subtype field in SMF record types 84, 90 and 200.
- IQ005435, IQ005423, IQ005413, IQ005409, IQ005408, IQ005386,
IQ005381, IQ005377, IQ005372, IQ005347, IQ005362:
- SELCOPYi Data Editor and Record Mapping enhancements and fixes:
- LOCATE <fieldname> corrected so that it successfully scrolls to the
next, previous, first or last field whose name matches (or is an
abbreviation of) <fieldname>, and when the field is an element of an
array (i.e. a field defined with dimensions).
- INSERT, REPLACE and SELECT commands can now determine whether a field name
specification is unique and then proceed accordingly. Previously,
operations could give wrong results for non-unique field name
specifications.
- FILTER operand specified via the BROWSE or EDIT primary commands no longer
fails when a LIMIT value is specified following the WHERE expression.
- FIND, EXCLUDE, WHERE, LOCATE and other commands that test field data, may
now use a character format search string in order to test fields of data
type IPADDR (IP address). The character search string will be compared
against the interpreted external field value (format "nnn.nnn.nnn.nnn" for
IPv4 and "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx" for IPv6).
If a hexadecimal search string is specified, this will will be compared
against the internal (raw) format of the IPADDR source field.
- DOWN CURSOR command (default on F8) when the cursor is positioned on the
first line displayed in the current data view has been corrected so that the
display scrolls 1 page. PTF RS33005 to SELCOPYi 3.30 introduced an error so
that no scrolling took place for this condition.
- For data edit or browse of formatted record data, any array field defined as
having only 1 (or a maximum of 1) dimension will be displayed without the
dimension number suffix "(1)".
In expressions, the field may be referenced with or without the "(1)"
suffix. Similarly, EXTRACT FVALUE will generate 2 REXX variables for the
field, one with and one without the ".1" tail.
- EXTRACT FVALUE, FVALUEQP and FVALUEQF now also generate REXX compound
variables FVALUE.i, FVALUEQP.i and FVALUEQF.i respectively, where each
indexed variable corresponds to a field selected for display. The value
of each of these variables is the index field name in the display.
- EXTRACT FIELDQP and FIELDQF supported to assign REXX variables for partially
qualified and fully qualified field names respectively.
- Correct field alignment for the first child field in an aligned parent field
of data type UNION or STRUCTURE. Subsequent child fields defined as ALIGNED
are correctly aligned on the appropriate boundary.
- Correct aligned field offset within structure value caused by an incorrect
number of generated slack bytes.
- Data Edit QUERY/EXTRACT LASTMSG is no longer dependent on the presence of a
Data Editor view.
- IQ005412, IQ005405, IQ005400, IQ005399, IQ005397, IQ005395,
IQ005393, IQ005391, IQ005388:
- SELCOPYi File COMPARE utility enhancements and fixes:
- LIST=TEXT/FMT operands introduced to determine the format of the output
report. For both formats, an interactive execution of the utility will
open a Data Editor browse view to display the report output.
FMT will display the report output as formatted records where different
record type mappings are used to display fields in the report. LIST=FMT
is default for interactive execution.
TEXT will display the report as a formatted plain-text document containing
ASA print control characters. The text report is split into pages as
determined by the prevailing SELCOPYi Data Edit PAGEDEPTH value. Each page
has a standard page heading which includes a timestamp and page number.
LIST=TEXT is default for batch execution of the COMPFILE command.
- New columns "zNewValue", "ZOldValue" and "zOffset" in formatted report
output record type "Field".
For compare of field values in formatted new file and old file records,
the report output records of record type "Field" are included by default
when record pairs are identefied as having "changed" data. The "Field"
record type identifies the names of the new record field and record type
mapping in which the data has changed. The "zNewValue" and "zOldValue"
columns contain the new and old values of the field. By default, the
column width for each of these columns is 50.
If one or both of the new and old field values exceeds 50, then the value
will wrap and be displayed on a second and, if necessary, subsequent line
of the report. The "zOffset" column displays the offset value of the first
data character displayed in each "Field" type report line.
- FCHUNK operand supported on COMPFILE primary command to specify the length
of "zNewValue" and "zOldValue" data displayed in each "Field" type report
line. (Default is 50.) Applicable only to LIST=FMT output.
- INCFIELDS operand supported on COMPFILE primary command to force output of
"Field" record type report lines for record pairs identified as "matches",
"inserts" or "deletes". This is in addition to those record pairs
identified as "changed". Applicable to both LIST=FMT and LIST=TEXT output.
- NEWPAGE=n operand supported on COMPFILE primary command for LIST=TEXT output
only. The NEWPAGE value specifies the number of lines that must exist on the
current page before starting output of the current record pair report
information records. If the number of lines remaining on the current page is
less than the NEWPAGE value, then blank lines are inserted up to the end of
the current page and a new page started.
- Improve efficiency and so reduce time taken to open the Compare Files Utility
panel. Delay caused by existing file verification for file names already
entered in utility panel input fields.
- Support compare on spanned (RECFM=VS/VBS) records of length greater than 32K
(LRECL=X).
- SYMNAMES syntax introduced to define record fields for basic record mapping.
SYMNAMES may be used in place of a structure (copybook or SELCOPYi SDO)
specification.
In the following example, a field name "RECNO" is defined as a 4-byte binary
numeric value at position 1 of each input record of the new and old data sets.
Since only mapped record fields are compared and no other fields are defined,
matching will occur only on the values in this one field. The contents of the
rest of the old/new record pair are not tested.
COMPFILE 'NBJ.DATA.NEW' 'NBJ.DATA.OLD'
USING SYMNAMES ( RECNO,01,4,BN )
- Unix file (HFS/ZFS) compare improved so that the format of the file records
(end-of-line characters, etc.) may be specified by the user. HFS file specific
parameters are as follows:
+-- STD -----+
| |
+- EOL ---+------------+---------------+
| | | |
| +-- CR ------+ |
| +-- LF ------+ |
| +-- NL ------+ |
| +-- CRLF ----+ |
| +-- LFCR ----+ |
| +-- CRNL ----+ |
| +-- string --+ |
| |
>-+--------------------------------------+------>
| |
+- RECFM -+- F ------------------------+
| |
| +- (0,2,0) ----------+ |
| | | |
+- V -+- (off,len,origin) -+-+
>-+---------------+-+-----------+-+-----------+->
| | | | | |
+- LRECL lrecl -+ +- RECURSE -+ +- CASEIgn -+
- NARBC, OARBC and ARBC operands supported to identify an arbitrary character
for the new file, old file or both. An occurrence of an arbitrary character
will match any character in the corresponding location in the other record of
the new/old record pair.
For example, if OARBC='?' is set, then any occurrence of question mark ('?')
in the old file will always match the corresponding character in the new file
record.
- NDELC, ODELC and DELC operands supported to identify a delete character for
the new file, old file or both. For the purposes of the compare only, all
occurrences of a delete character will be removed prior to doing the record
data compare. Record data that follows occurrences of a delete character is
shifted left and, if necessary, the end of the record is blank padded.
For example, if NDELC='-' is set, then all occurrences of hyphon ('-') in the
new file records will be changed to a null string prior to the compare with
the corresponding old file record.
- Improve formatted record compare of fields defined as having data type BIT.
- Correct program defect where command line operands following RECFM operand
were not processed.
- Correct program defect where records failed to re-synchronise properly when
both the new and old file records are defined as having unsorted key fields.
- IQ005426, IQ005417, IQ005415, IQ005411, IQ005410, IQ005406,
IQ005394, IQ005392, IQ005390, IQ005387, IQ005384, IQ005383,
IQ005382, IQ005380, IQ005364, IQ005363, IQ005262:
- SELCOPYi General enhancements and fixes:
- FSU Change data and Copy to new file no longer sets the target file "last
changed" timestamp to the current timestamp value when no changes have
been made to the record data.
- "http://" removed from CBL web page references. CBL web server now uses
secure connections.
- FCOPY, FSU and COMPFILE utilities now support reference to GDG generation
data sets realative generations. Also includes support for GDGName(+1)
on output.
- Increase number of SELCOPY control statements supported by the RUNSELC
and RUNSLC utilities.
- Correct missing "==EOL>" Data Editor line flags for HFS/ZFS file BROWSE
and EDIT.
- Correct failure to execute FSU when primary command is the parameter on
a VIGNORE command.
- Correct possible abend that may occur when executing the FSU utility with
an input file mask following a volser specification. e.g.
FSU INP('CBLM01:*.**.*INI') FIND('(SDE)')
- SRCHFOR list window primary command now supported in a List Path (HFS/ZFS
Unix files) entries list panel.
- CBLAVCII no longer returns VCII019E RC=8, "Module not found in static or
dynamic LPA" for z/OS 2.3 and later.
- FCOPY of PDSE V2 members and member generations, performed when a member
generation mask is specified on the source fileid, will now also copy
member aliases where applicable. Members and their aliases are copied if
either the member name or one of its alias names matches the source fileid
member mask.