z/OS Service Package: X2022010


SMP/E SYSMOD:
Component:
Operating System:
Publish Date:
APAR & Description:

RS35001
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.