‎2006 Dec 13 11:00 AM
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
‎2006 Dec 13 11:04 AM
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
‎2006 Dec 13 11:04 AM
Use system command $Tab. This is to be done by basis ppl
Check with basis for more help.
Vivek
Reward if suggestion helps.
‎2006 Dec 13 11:07 AM
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
‎2006 Dec 13 11:30 AM
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
‎2006 Dec 13 11:41 AM
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.