Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How to resolve DATA_BUFFER_EXCEEDED exception

Former Member
0 Likes
982

Hi All,

When I am executing function module RFC_READ_TABLE by passing table name

(EX: EKPO or EKKO or LFA!) as a an argument for QUERY_TABLE, i am getting

DATA_BUFFER_EXCEEDED exception.

PLZ any one help me how to resolve this issue.

Regds,

Ramesh

5 REPLIES 5
Read only

Former Member
0 Likes
748

There are too many rows that are being fetched.

If you are looking at getting the PO details, why don't you try BAPI_PO_GETDETAIL rather than RFC_READ_TABLE. You can use BAPI_PO_GET_LIST to get the list of PO's so that you dealing with limited data.

There is a limitation in terms of amount of data that can be processed, and that is what is happening in your case.

Regards,

Ravi

Note - Please mark all the helpful answers

Read only

Former Member
0 Likes
748

Use system command $Tab. This is to be done by basis ppl

Check with basis for more help.

Vivek

Reward if suggestion helps.

Read only

former_member199581
Active Participant
0 Likes
748

The FM raises that exception here:

LINE_CURSOR = LINE_CURSOR + TABLE_STRUCTURE-LENG.
  IF LINE_CURSOR > LINE_LENGTH AND NO_DATA EQ SPACE.
  RAISE DATA_BUFFER_EXCEEDED.
ENDIF.

Line Length it's the length of the structure DATA that you pass to the FM by the TABLES parameter.

Line cursor it's computed in two steps: first, it contains the length of the parameter DELIMITER. Then, it's value it's added to the length of the table structure you want to read.

The exception raises up when line cursor it's bigger than line length.

So, if you expand the structure DATA you should not raise any exception.

Try the Test Environment for this FM.

Insert table EKPO as query_table.

Enter in debug mode, then modify the variable LINE_LENGTH from 512 to an higher value. I've tried with 2000.

<i>Rembember that LINE_LENGTH it's computed like this:

ASSIGN COMPONENT 0  OF STRUCTURE DATA TO <D>.
DESCRIBE FIELD <D> LENGTH line_length.

In your program, you can simply pass a longer DATA parameter.</i>

Otherwise, if you only need to fetch the structure of query_table and not the data, you should set parameter NO_DATA to 'X'.

You should not get any exception.

Hope this helps,

Roberto.

Message was edited by:

Roberto Pagni

Message was edited by:

Roberto Pagni

Read only

0 Likes
748

its not the number of records, its the length of a record which will create this problem. try to fetch only the fields you require.

Regards

Raja

Read only

0 Likes
748

Exactly.

Ignore my previous post:

structure DATA could not be different from TAB512, so parameter LINE_LENGTH will be always set to 512.

You can only move in two ways:

Do not fecth any data, but only table structure (NO_DATA = 'X').

Do not fetch all of table fields.

Hope this helps,

R.