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
Closed as program error.
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
Change source ADF (CSV) record delimiter definition from "CR/LF" to "New Line" and recompile the DT map.
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.
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.
Code changes apply to WDI 3.3 z/OS only.
Reported component name
WEBS DI ZOS
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
C EDIADFCM CPP EDIUPADF EDIUTOPC
Fixed component name
WEBS DI ZOS
Fixed component ID
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.