IBM Support

PI62202: (COB V5.2) NUMERIC-EDITED DATA VALUE WITH INVALID SIGN MOVED INTO AN UNSIGNED ZONED-DECIMAL DATA FIELD GIVES IGZ0063S

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • In COB V5, when a numeric-edited data value with an invalid
    sign is moved into an unsigned zoned-decimal data field, the
    following error is received:
    IGZ0063S  An invalid sign was detected in a numeric edited
    sending field in xxxxxxxx on line number nn.
    
    This behavior is different than COB V4.2.
    
    In COBOL V4.2, if both the sender and receiver PIC strings are
    signed, then the sign checking is done and the IGZ0063S error
    occurs when an invalid sign is detected.  However, if the
    sender and receiver are not both signed, then there is no error
    checking and no IGZ0063S message.  COBOL V5 checks the sign
    regardless of whether or not both the sender and receiver are
    signed and issues the IGZ0063S message in all cases if an
    invalid sign is detected.
    
    This APAR will restore the COB V4.2 behavior.
    
    Example:
    
    WORKING-STORAGE SECTION.
    01  WS-CHAR                  PIC X(16) VALUE '123456789012345+'.
    01  FILLER REDEFINES WS-CHAR.
        05  WS-AMT1              PIC 9(13)V99-.
    01  WS-AMT2                  PIC 9(13)V99.
    
    PROCEDURE DIVISION.
        MOVE WS-AMT1 TO WS-AMT2.       <== Failing statement
    
    In the case above, WS-AMT1 is defined as PIC 9(13)V99-, which
    means the expected sign values for the data are a dash
    (negative) or a blank (positive).  But the data value contains
    a "+", which is not valid.  The receiving field, WS-AMT2, is
    unsigned.
    

Local fix

  • Correct the PIC definition to match the sign on the data value
    or correct the data value to match the PIC definition.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 5.2 compiling and  *
    *                 running programs containing MOVE statements  *
    *                 satisfying the following conditions:         *
    *                 1. The sender of the MOVE statement is       *
    *                 numeric-edited and the receiver is numeric   *
    *                 or numeric-edited.                           *
    *                 2. The PIC string for the sender and         *
    *                 receiver data items do not both indicate a   *
    *                 signed data item.                            *
    *                 3. The value of the sender data item at      *
    *                 runtime has a sign value that is             *
    *                 inconsistent with its PIC string (e.g.,      *
    *                 sender PIC is '9(13)v99-' but the sender     *
    *                 value is '123456789012345+').                *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: Program abend with the following        *
    *                      message: IGZ0063S An invalid sign was   *
    *                      detected in a numeric edited sending    *
    *                      field in on line number.                *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    ****************************************************************
    The Enterprise 5.2 COBOL compiler handles this case by calling
    a library routine to de-edit the sender and store the de-edited
    result in a temp which is then moved to the receiver by calling
    an appropriate move routine.  The problem is that the compiler
    was unconditionally considering the temp that holds the
    de-edited result to be signed, which caused the compiler to
    always verify the sign of the sender's value.
    

Problem conclusion

  • To be consistent with previous versions of the Enterprise COBOL
    compiler, the compiler was updated to only verify the sign of
    the sender's value when the sender and receiver of the MOVE
    statement are both signed data items, as indicated by their PIC
    strings.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI62202

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655W3200

  • Reported release

    520

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-05-10

  • Closed date

    2016-05-27

  • Last modified date

    2016-07-04

  • APAR is sysrouted FROM one or more of the following:

    PI58857

  • APAR is sysrouted TO one or more of the following:

Modules/Macros

  •    IGYCRCTL
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655W3200

Applicable component levels

  • R520 PSY UI38258

       UP16/06/02 P F606

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"520","Edition":"","Line of Business":{"code":"LOB17","label":"Mainframe TPS"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"520","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
04 July 2016