IBM Support

PH66670: JSON GEN FAILS TO GENERATE A CORRECT VALUE WHEN INDICATING PHRASE IS USED

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When a COBOL group item is an indicated item of the JSON
    GENERATE INDICATING phrase and the indicated item becomes
    a JSON 'null' value, incorrect JSON values are generated
    for COBOL data items after the group.
    
    For example, given the following COBOL program,
    
    ID DIVISION.
    PROGRAM-ID. 'DEMO'.
    ENVIRONMENT DIVISION.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 JTXT PIC U(200).
    01 DATAROOT.
     05 ELE1 PIC X VALUE 'N'.
     05 GR1.
       15 ELE2 PIC S9(3) COMP-3 VALUE 0.
     05 ELE3 PIC 99V99 COMP-3 VALUE 1.23.
    
    PROCEDURE DIVISION.
       JSON GENERATE JTXT FROM DATAROOT
         INDICATING GR1 IS JSON NULL
         USING 'N' IN ELE1
       END-JSON.
       DISPLAY FUNCTION DISPLAY-OF(JTXT)
       STOP RUN.
    END PROGRAM 'DEMO'.
    
    
    ACTUAL OUTPUT(BAD):
    {"DATAROOT":{"GR1":null,"ELE3":0}}
    
    EXPECTED OUTPUT(GOOD):
    {"DATAROOT":{"GR1":null,"ELE3":1.23}}
    
    EXPLANATION:
    - 'GR1' is a group item and an indicated item being a JSON
    'null' value ("GR1":null).
    
    - 'ELE3' is a COBOL data item after 'GR1' incorrectly becomes
    a JSON '0' value ("ELE3":0).
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL 6.4 and later      *
    *                 releases running programs which use          *
    *                 JSON GENERATE with the INDICATING            *
    *                 phrase.                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: An incorrect JSON value is generated    *
    *                      for COBOL data items which come         *
    *                      after a JSON null value.                *
    ****************************************************************
    * RECOMMENDATION: Install the provided PTF.                    *
    ****************************************************************
    When a COBOL group item is an indicated item of the
    JSON  GENERATE INDICATING phrase and the
    indicated item becomes a JSON 'null' value, incorrect
    JSON values are generated for COBOL data items after
    the group.
    
    For example, given the following COBOL program,
    
    ID DIVISION.
    PROGRAM-ID. 'DEMO'.
    ENVIRONMENT DIVISION.
    DATA DIVISION.
    WORKING-STORAGE SECTION.
    01 JTXT PIC U(200).
    01 DATAROOT.
      05 ELE1 PIC X VALUE 'N'.
      05 GR1.
        15 ELE2 PIC S9(3) COMP-3 VALUE 0.
      05 ELE3 PIC 99V99 COMP-3 VALUE 1.23.
    
    PROCEDURE DIVISION.
        JSON GENERATE JTXT FROM DATAROOT
          INDICATING GR1 IS JSON NULL
          USING 'N' IN ELE1
        END-JSON.
    
        DISPLAY FUNCTION DISPLAY-OF(JTXT)
        STOP RUN.
    END PROGRAM 'DEMO'.
    
    ACTUAL OUTPUT(BAD):
    {"DATAROOT":{"GR1":null,"ELE3":0}}
    
    EXPECTED OUTPUT(GOOD):
    {"DATAROOT":{"GR1":null,"ELE3":1.23}}
    
    EXPLANATION:
    - 'GR1' is a group item and an indicated item being
    a JSON 'null' value ("GR1":null).
    
    - 'ELE3' is a COBOL data item after 'GR1' incorrectly
    becomes a JSON '0' value ("ELE3":0).
    
    
    COB0604T/K COB0605T/K
    

Problem conclusion

  • The JSON GENERATE processing in the COBOL Runtime
    has been corrected.
    
    For the above example, the produced outputs are:
    {"DATAROOT":{"GR1":null,"ELE3":1.23}}
    

Temporary fix

Comments

  • ×**** PE25/08/21 FIX IN ERROR. SEE APAR PH67856  FOR DESCRIPTION
    ×**** PE25/08/21 FIX IN ERROR. SEE APAR PH67856  FOR DESCRIPTION
    ×**** PE25/08/21 FIX IN ERROR. SEE APAR PH67856  FOR DESCRIPTION
    ×**** PE25/08/21 FIX IN ERROR. SEE APAR PH67856  FOR DESCRIPTION
    ×**** PE25/08/21 FIX IN ERROR. SEE APAR PH67856  FOR DESCRIPTION
    ×**** PE25/08/21 FIX IN ERROR. SEE APAR PH67856  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PH66670

  • Reported component name

    LE ENT COBOL LI

  • Reported component ID

    568819812

  • Reported release

    7F0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-05-22

  • Closed date

    2025-06-20

  • Last modified date

    2025-09-26

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

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

    UO03702 UO03703 UO03747 UO03748

Modules/Macros

  • CEESG004 IGZ1OPT  IGZ2OPT  IGZ3OPT  IGZ4OPT  IGZ5OPT  IGZ6OPT
    IGZACALL IGZBALCT IGZBXITA IGZCER4  IGZCEV4  IGZCJNI2 IGZCMGEN
    IGZCMGJA IGZCMGUE IGZEDCCT IGZIBMCT IGZIGZCT IGZLLIBV IGZRIDT
    IGZRTMON IGZWUXOI IGZX2BIN IGZX2HEX IGZX2LW  IGZX2LW8 IGZX2LWU
    IGZX2UP  IGZX2UP8 IGZX2UPU IGZXACP  IGZXACS  IGZXACS1 IGZXACS2
    IGZXAIO  IGZXALOC IGZXANE  IGZXANE1 IGZXANE2 IGZXAPI  IGZXAPS
    IGZXBIO  IGZXBS61 IGZXBSP  IGZXBSP1 IGZXBSP2 IGZXBSP3 IGZXBSP4
    IGZXBSP5 IGZXBST  IGZXBST1 IGZXBST2 IGZXBST3 IGZXBST4 IGZXBST5
    IGZXBU1L IGZXBU1P IGZXBU1R IGZXBU1S IGZXBU1V IGZXBU1W IGZXBU2L
    IGZXBU2P IGZXBU2R IGZXBU2S IGZXBU2V IGZXBU2W IGZXBUI4 IGZXCA31
    IGZXCANC IGZXCDA  IGZXCDT  IGZXCFGU IGZXCFIG IGZXCKP  IGZXCLDB
    IGZXCLKA IGZXCLN  IGZXCLS  IGZXCMDT IGZXCMSG IGZXCRST IGZXD24
    IGZXD2F  IGZXDACS IGZXDASN IGZXDATE IGZXDATN IGZXDAYS IGZXDCAL
    IGZXDCOS IGZXDCS2 IGZXDCSU IGZXDEA  IGZXDED  IGZXDER  IGZXDIVZ
    IGZXDLG1 IGZXDLOG IGZXDMOD IGZXDMR  IGZXDMSG IGZXDPOW IGZXDPW1
    IGZXDSIN IGZXDSP  IGZXDSQT IGZXDTAN IGZXDYWK IGZXE2E  IGZXE2EN
    IGZXE2H  IGZXE2N  IGZXE2N2 IGZXEXT  IGZXF2D  IGZXF2D1 IGZXF2I
    IGZXFAC  IGZXFBIN IGZXFCAL IGZXFCDT IGZXFDT  IGZXFDTM IGZXFHEX
    IGZXFPC1 IGZXFPW  IGZXFREE IGZXFRST IGZXFTM  IGZXFWSA IGZXGDR0
    IGZXGDR1 IGZXGDR2 IGZXGFI  IGZXGMTO IGZXGTST IGZXH2E  IGZXIDB
    IGZXIFDT IGZXII2  IGZXINSP IGZXJGF  IGZXJNI2 IGZXJPI  IGZXLCLS
    IGZXLOCT IGZXLOPN IGZXLPIO IGZXLPKA IGZXLPKB IGZXLPKC IGZXLPKD
    IGZXLPKE IGZXLPKF IGZXLPKG IGZXMED  IGZXMEDQ IGZXMFIG IGZXMSG
    IGZXMVU8 IGZXNE2N IGZXNE3N IGZXNMV  IGZXNMVC IGZXNMVF IGZXNMVQ
    IGZXNVCQ IGZXNVFQ IGZXOPT  IGZXPK2  IGZXPPL  IGZXPR2  IGZXPRC
    IGZXPRS  IGZXPRV  IGZXPRVQ IGZXQACS IGZXQASN IGZXQATN IGZXQCLS
    IGZXQCOS IGZXQLG1 IGZXQLOG IGZXQMOD IGZXQOPN IGZXQPOW IGZXQPW1
    IGZXQSIN IGZXQSQT IGZXQTAN IGZXQXPQ IGZXRAND IGZXRAS1 IGZXRAS2
    IGZXRAS4 IGZXRAS5 IGZXRAS6 IGZXRAS7 IGZXRAS8 IGZXRAS9 IGZXRES1
    IGZXRES2 IGZXRES3 IGZXRES4 IGZXRES5 IGZXRES6 IGZXRES7 IGZXRES8
    IGZXRES9 IGZXREV  IGZXREVT IGZXREVU IGZXRT1  IGZXRTN  IGZXSCC1
    IGZXSCC2 IGZXSCH  IGZXSFFT IGZXSGL  IGZXSM0  IGZXSM1  IGZXSM2
    IGZXSM3  IGZXSM4  IGZXSM5  IGZXSM6  IGZXSMSG IGZXSPA  IGZXSPMT
    IGZXSRT  IGZXSRV  IGZXSTD  IGZXSTDQ IGZXSTG  IGZXSXPQ IGZXTDTM
    IGZXTMSG IGZXTNMV IGZXTNVC IGZXTNVF IGZXTREC IGZXTREN IGZXTRM
    

Fix information

  • Fixed component name

    LE ENT COBOL LI

  • Fixed component ID

    568819812

Applicable component levels

  • R7D0 PSY UO03702

       UP25/06/27 P F506

  • R7E0 PSY UO03703

       UP25/06/27 P F506

  • R7F0 PSY UO03747

       UP25/06/27 P F506

  • R7FJ PSY UO03748

       UP25/06/27 P F506

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":"BU048","label":"IBM Software"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7F0","Line of Business":{"code":"LOB70","label":"Z TPS"}}]

Document Information

Modified date:
26 September 2025