IBM Support

PM38168: concatenate function does not work for mixed literals

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • User reported that the vgLib.concatenate() system function
    results
    in Korean character truncated.
    
    
    
    For example,
    
    
    
    --- In EGL source,
    
    ZCZ97NQM_RI.SEARCH_EMNO1 = ',  }??? 1';
    
    ZCZ97NQM_RO.SEARCH_EMN11 = ' }??? 11';    // CHAR
    
    ZCZ97NQM_RO.SEARCH_EMN12 = ' }??? 12';    // CHAR
    
    ZCZ97NQM_RO.SEARCH_EMN13 = ' }??? 13';    // MBCHAR
    
    
    
    // Case 1
    
    VGLib.concatenate(ZCZ97NQM_RO.SEARCH_EMN11,
    ZCZ97NQM_RI.SEARCH_EMNO1);
    
    
    // Case 2
    
    VGLib.concatenate(ZCZ97NQM_RO.SEARCH_EMN12, ',  }??? 2');
    
    
    
    // Case 3
    
    VGLib.concatenate(ZCZ97NQM_RO.SEARCH_EMN13, ',  }??? 3');
    
    
    
    ---- The result,
    
    ?Case 1? getSearchEmn11:? }??? 11,  }??? 1?,
    
    ?Case 2? getSearchEmn12:? }??? 12,  }?      ?,
    
    ?Case 3? getSearchEmn13:? }??? 13,  }? ?,
    
    
    
    ----- Explanation for the result above.
    
    When two character variables are concatenated, then it
    
    is working well. ?Case 1?
    
    
    
    But literals for source will causes problems.
    
    
    
    ?Case 2?
    
    In case of target variable is defined as CHAR, then the output
    is padded
    with blanks as well as Korean characters truncated.
    
    i.e.
    
    Expected result is ? }??? 12,  }??? 2?
    
    but actual result is ? }??? 12,  }?      ?
    
    
    
    ?Case 3?
    
    In case of target variable is defined as MBCHAR, then the output
    is
    truncated.
    
    i.e.
    
    Expected result is ? }??? 13,  }??? 3?
    
    but actual result is ? }??? 13,  }? ?
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The problem was that when MBCHAR literals were being used as
    function parameters, the size for the created temporary
    variable was not taking into account the resolved host size
    based with SI/SO characters. This caused the temporary
    variable to be created too small, so when the literal was
    moved to it, it got truncated.
    

Problem conclusion

  • The software has been updated for 7518 and 8012. There is a
    fixtest available for 7516 and 7517 systems.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM38168

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    751

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-05-02

  • Closed date

    2012-03-15

  • Last modified date

    2012-03-15

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

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

Fix information

  • Fixed component name

    RATL BUS DEV

  • Fixed component ID

    5724S5000

Applicable component levels

  • R751 PSN

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5.1","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
27 October 2021