A row delimiter was seen for row number...

Hi,

i get the following error message:

A row delimiter was seen for row number <17> while processing column number <49> in file <Z_COPY_BSEG.DAT>.
The row delimiter should be seen after <312> columns.
Please check the file for bad data, or redefine the input schema for the file by editing the file format in the UI.

Original data from SAP ( se16n )

  • ZE 9.1016-2773 ZE 9.
    ( between 2773 and ZE is a special character like a square )

double click inside se16n on row

  • ZE 9.1016-2773#ZE 9.

.dat file local via DataTransport

  • ZE 9.1016-2773 and then LF hex 0a

how to check every column for “bad” data ?

please help

H. Blum


h.blum :de: (BOB member since 2008-06-16)

Hi Blum,

open the file Z_COPY_BSEG.DAT and have a look into it.

Row 17 ends after 49 columns instead of 312.
Check if this is an error or a (bad) design of your dat file.

cheers, rade


bbcons2 (BOB member since 2010-05-26)

Hi,

there is a “bad” character.
( between 2773 and ZE is a “bad” character like a square ).

I want to eleminate this ( and other ) char(s).

The problem is before row 16.
Inside row 15 col 264 is the “bad” char,
it splits this row into two “bad” rows…

org. error:
4044 4692 FIL-080105 26.05.2010 15:17:13 |Data flow DF_COPY_BSEG_STAGING|Reader Z_COPY_BSEG
4044 4692 FIL-080105 26.05.2010 15:17:13 A row delimiter was seen for row number <15> while processing column number <264> in file
4044 4692 FIL-080105 26.05.2010 15:17:13 <E:/exchange/PES/DAT/Z_COPY_BSEG.DAT>. The row delimiter should be seen after <312> columns. Please check the file for bad
4044 4692 FIL-080105 26.05.2010 15:17:13 data, or redefine the input schema for the file by editing the file format in the UI.
4044 4692 FIL-080105 26.05.2010 15:17:13 |Data flow DF_COPY_BSEG_STAGING|Reader Z_COPY_BSEG
4044 4692 FIL-080105 26.05.2010 15:17:13 A row delimiter was seen for row number <16> while processing column number <49> in file <E:/exchange/PES/DAT/Z_COPY_BSEG.DAT>.
4044 4692 FIL-080105 26.05.2010 15:17:13 The row delimiter should be seen after <312> columns. Please check the file for bad data, or redefine the input schema for the
4044 4692 FIL-080105 26.05.2010 15:17:13 file by editing the file format in the UI.

H. Blum


h.blum :de: (BOB member since 2008-06-16)

It shouldn’t happen in SAP that such data exists at all. So one option would be to go to the corresponding SAP screen and update that text.

The other option is to write a function module which removes none-printable characters (input is string, output is corrected string), then import that function into the SAP datastore and using that function inside the query mapping of the R/3 dataflow.

Don’t ask why there is no DataServices function to do so inside the R/3 dataflow already. I am waiting for it myself since ages.


Werner Daehn :de: (BOB member since 2004-12-17)

Hi,

I tried logging a case on this issue and their response was to create an enhancement request. So please check out the idea ‘A row delimiter ( or A column delimiter) was seen for row number…’ on Idea Place on the SAP Community Network.

Please click to vote on this if you are having the same issues. More votes may get their attention to get a function created for this issue.

:+1:

Just follow this link to see the idea:
https://ideas.sap.com/ideas/2582

(If the link doesn’t work, try copying and pasting it from this email into your browser’s address bar.)

Thank you.


rie (BOB member since 2011-01-26)

just voted it up. :+1:


Werner Daehn :de: (BOB member since 2004-12-17)

I run most all of my delimited files through a script that converts them to fixed length. If theres a data problem, the script will either fix it or error accordingly.

A DS csv reader may not error at all. It may just decide to stop reading, and lose half your file.

Make sure you know your input/output counts of your DS csv readers, if you have field framing characters.


jlynn73 :us: (BOB member since 2009-10-27)

I voted. :+1:

“Currently we use the replace_substr() and replace_substr_ext() functions for the columns of sources from normal databases and not SAP sources. We load data from front end application’s table where I would encounter Form Feed, Line Feed and Tab Characters. So it would be awesome if we have one for SAP!!! :nopity: . Thumbs up for Werner’s idea”


ganeshxp :us: (BOB member since 2008-07-17)

In there an Enhancement Request ever filed for this? If so is there any reference ID to it? How about 14.0? Is that possible ?
Werner/rie any ideas?


ganeshxp :us: (BOB member since 2008-07-17)

I also voted for this idea.

Are there any updates from SAP to this issue?
Will it be implemented in one of the next versions of DS?

At the moment we are on 14.02.376 and we cannot fix this issue with DS.

RFC-Stream is not possible because table has around 5 million records and many columns.

So i have to write a function module in ABAP to solve this issue?

Best Regards


barthodo :de: (BOB member since 2012-04-18)

14.0 does not seem to have any improvement on this point.


Johannes Vink :netherlands: (BOB member since 2012-03-20)

Hi all,

i’ve now coded a ABAP FM for removing the unwanted characters from Text field.
Afterwards i imported this function to BO DS.

If i now go back to the ABAP-Workflow i cannot make “New Function call” ?!
How is it possible to call this FM now?


barthodo :de: (BOB member since 2012-04-18)

From a mapping. You simply select the column within the query of the abap dataflow and click on functions - there the category of your SAP datastore will show up and all functions you have imported.


Werner Daehn :de: (BOB member since 2004-12-17)

ok got it… thanks a lot!


barthodo :de: (BOB member since 2012-04-18)

Hi all,

i’ve inserted the function call within the ABAP-Workflow (see picture)

Afterwards i imported the automated generated ABAP code into target system…

If i now execute the job on BO DS, i’m getting an ABAP dump (See attached dump)

Can somebody please support me to fix that issue?
Or does somebody know why this dump is now coming up?

—Edit—

I think it’s a conversion problem within the Function Module which i’m calling…

Background:
I’ve Table KNA1 from SAP, and the function module must do a check on NAME1 varchar(35), CITY1 varchar(50) and STREET varchar(200).

My Import-Parameter of the FM has a char(2000) input parameter…
If i e.g. handover the NAME1 field in a ABAP program to FM Import-Parameter, i get the short dump because of type incompatibility.

Ok. Next try…
Within the ABAP Workflow i added a Query where i first converted all 3 fields to varchar2000 and in second query i handovered it to FM.
If i have a look to the generated ABAP it’s using the direct mapping…that means it once again handover directly the field NAME1.
So no successs here…

Next try…
I changed the Import Parameter in ABAP FM to type “string” (then it doesn’t matter which length is coming)
If i import the FM once again, the Import Parameter is ignored?

ISN’T BO DS able to handle String-types from SAP???
If not it should create a default input field varchar4000 or something…
But ignoring is the worst solution!
ABAP_workflow.jpg
dump.txt (120.0 KB)


barthodo :de: (BOB member since 2012-04-18)

HI barthodo ,
Did you ever fix the issue ? i am facing the same error .
Thanks


BODI User (BOB member since 2012-07-13)

I think that BODS 4.0 SP3 brought better support for certain field types from SAP.

Still you need the custom function to strip unwanted characters.

Only solution available untl BODS 4.1.


Johannes Vink :netherlands: (BOB member since 2012-03-20)

How can you use custom function if the error is still in the *.DAT file?

If you’re extracting a file from SAP i think you must remove unwanted chars from text fields during ABAP-workflow and before you’re coming into BO DS.

Otherwise the system cannot “say”, if this row or column delimiter is a valid one or not.

But it’s interesting…
How did you solve this issue with a custom function?

@BODI User:

I don’t know how familiar you are with ABAP FMs.
The trick is, that your Import-Parameter for the FM is type “ANY”.
BO DS will import that as a varchar-field.
Then you can handover every value to this ABAP FM without getting a dump and remove the unwanted chars.

In my case this function module is working fine…

Best Regards


barthodo :de: (BOB member since 2012-04-18)

Not with a custom BODS function, a custom SAP function.

And I never bothered to get something written and installed. We have over 20 SAP systems here…

What we normally do is place the most offending fields at the end of the .dat file, so that when a row delimeter is met it will not impact the remaining columns of the row.


Johannes Vink :netherlands: (BOB member since 2012-03-20)

@barthodo , I am facing a row Delimiter issue on Address field because it has ‘#’ i.e P.O.BOX # 1234 , the Client says its valid and they would want it to be loaded . In this Scenario can i still use the FM ? , the Length of the field is 60 Varchar .
Thanks


BODI User (BOB member since 2012-07-13)