PM63194: PTF UK63143 IN ERROR - ADF (CSV) TO ADF DT MAP INCORRECT OUTPUT WHEN RECORD DELIMITER OF SOURCE ADF SET TO CR/LF

A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Environment:  WDI 3.3 for z/OS with current maintenance
    Issue is specific to the z/OS platform
    
    After applying UK63143 output records are missing after data
    transformation of a source ADF using comma separated values
    (CSV). The ADF output is missing data due to misinterpretation
    of source ADF definition for Record Delimiter. A setting of
    CR/LF is specified on the source ADF, and no CR/LF's are
    present on the input, but no data after the first record is
    processed. The fix on PTF is using the ADF setting (either
    CR/LF or NL) in the search for end of record. If CR/LF is
    selected on the ADF and the data has no delimiter, then WDI
    is inserting a NL and incorrectly searching for a CR/LF.
    
    Snippet of DT trace where the parser is handling the last field
    of the first record. There is a difference in
    "ptr/offset/rec(buf) len for" between the two; before and after
    the PTF.
    
    Before PTF:
    0000:F14BF0F0 4F                          |1.00||
    EDIUPADF: AddStructureAndFields(4080): after end while data
    EDIUPADF: pcCurByte: 0  delimiter:0
    EDIUPADF: AddStructureAndFields(4089) ptr/offset/rec(buf) len
    for Ctxt/Loc:
    1518D457/47/47
    0/47/47
    EDIUPADF: Exit AddStructureAndFields
    
    After PTF:
    0000:F14BF0F0 4F                          |1.00||
    EDIUPADF: lFldCnt = 6, lNumFlds = 6
    EDIUPADF: AddStructureAndFields(4080): after end while data
    EDIUPADF: pcCurByte: 1518A457  delimiter:0
    EDIUPADF: AddStructureAndFields(4089) ptr/offset/rec(buf) len
    for Ctxt/Loc:
    1518A457/47/72658
    1518A457/47/72658
    EDIUPADF: Exit AddStructureAndFields
    
    Keywords:  Application data format DF comma separated value
    values CSV delimiter carriage return line feed cr/lf nl n/l
    new line newline
    

Local fix

  • Change source ADF (CSV) record delimiter definition from "CR/LF"
    to "New Line" and recompile the DT map.
    

Problem summary

  • This issue is specific to the z/OS platform.
    After applying UK63143, output records are missing
    after data transformation of a source ADF using
    comma separated values (CSV). The ADF output is missing
    data due to misinterpretation of source ADF definition
    by the WDI Parser as to what to use for Record Delimiter.
    When a setting of CR/LF is specified on the
    source ADF, and no CR/LFs are present in the input, then
    the result is no data after the first record is processed.
    The change with PTF UK63143 (P8012173) uses the ADF setting
    (either CR/LF or NL) in the search for end of record.
    If CR/LF is selected on the ADF and the data has no delimiter,
    then WDI is inserting a NL (see P8010420) and incorrectly
    searching for a CR/LF.
    Another issue was the incorrect appearance of UP0026 messsges.
    A DT trace showed that a variable buffer was corrupted.
    

Problem conclusion

  • Prior to P8012173, CR/LF for CSV input was ignored on the Host.
    The ADF CR/LF setting and length for Record Delimiter was
    overridden with NL and length 1. With P8010420 (April,2005),
    ZOS input for CSV translation had a NL appended to the data
    if none previously existed - hence CRLF, if specified, was ,
    ignored and NL on the ADF was redundant as a record delimiter.
    
    This problem occurred when P8012173 used the ADF setting
    (either CR/LF or NL) in the search for end of record. If
    CR/LF was selected on the ADF and the data hasno delimiter,
    then WDI would insert a NL and search for a CR/LF.
    None would be found and WDI would look at the data
    file as one record.
    
    If the customer set the ADF to CR/LF and had CR/LF in the
    data, it would work.
    If the customer had NL in the ADF, and the data had NL
    or nothing. WDI would add NL to the data when none was there
    or honor the NL if present. .
    In either case the CSV translation would work.
    
    With this change to restore the functioning prior to P8012173,
    WDI will continue to insert a NL into host CSV data
    when none exists. WDI will also ignore
    the ADF Record Delimiter setting (CR/LF or NL)
    for Host CSV translations and use NL instead.
    If the data has CR/LF, a NL will be added to each record
    and the search for NL as a record delimiter will be
    made.
    
    The WDI Client Help text will also be modified to contain
    an explanation of how the record delimiter field is
    used for z/OS CSV data.
    On the second issue, the message buffer was
    reset and the UP0026 messages were eliminated.
    

Temporary fix

Comments

  • Code changes apply to WDI 3.3 z/OS only.
    

APAR Information

  • APAR number

    PM63194

  • Reported component name

    WEBS DI ZOS

  • Reported component ID

    5655I4003

  • Reported release

    330

  • Status

    CLOSED PER

  • PE

    YesPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-04-24

  • Closed date

    2012-05-24

  • Last modified date

    2012-10-30

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

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

    UK79106

Modules/Macros

  • C        EDIADFCM
    CPP      EDIUPADF EDIUTOPC
    

Fix information

  • Fixed component name

    WEBS DI ZOS

  • Fixed component ID

    5655I4003

Applicable component levels

  • R330 PSY UK79106

       UP12/06/16 P F206

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.



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

z/OS family

Software version:

330

Reference #:

PM63194

Modified date:

2012-10-30

Translate my page

Machine Translation

Content navigation