<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Code in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/code/m-p/1951741#M391981</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This code is from BI forum , I need explanation on Working of ABAP code .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We will create a View / Structure in SE11 , Then use that in Function module RSAX_BIW_GET_DATA_SIMPLE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code , The Bold Letters are that we are Replacing in Standard Code ,&lt;/P&gt;&lt;P&gt;I need clear working explanation for that Bold letters .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This FM is for BW extraction . Ztest is the view created based aufnr,afru and crhd table with 25 fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;View Fields Join Condition :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AUFK-mandt = afru-mandt&lt;/P&gt;&lt;P&gt;CRHD-mandt = afru-mandt&lt;/P&gt;&lt;P&gt;AUFK -AFNR = AFRU-AUFNR&lt;/P&gt;&lt;P&gt;CRHD -OBJID = AFRU-ARBID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the Code &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

FUNCTION ZTEST.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" REFERENCE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" REFERENCE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE DEFAULT 1000
*" REFERENCE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" REFERENCE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZVIEW1 OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
*"----------------------------------------------------------------------
&amp;lt;b&amp;gt;TABLES: ZVIEW1.&amp;lt;/b&amp;gt;

* Auxiliary Selection criteria structure

DATA: L_S_SELECT TYPE SRSC_S_SELECT.

* Initialization mode (first call by SAPI) or data transfer mode
* (following calls) ?

*-----------------------------------------------------------------------
* Data Structures for delta-mechanism
*-----------------------------------------------------------------------
DATA: L_V_LINES TYPE I.
*-----------------------------------------------------------------------
* Static structures
*-----------------------------------------------------------------------
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
* counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,
* cursor
S_CURSOR TYPE CURSOR.

* Ranges for data selection
&amp;lt;b&amp;gt;RANGES: 
L_R_ERSDA FOR ZVIEW1-ERSDA,
L_R_AUFNR FOR ZVIEW1-AUFNR,
L_R_BUDAT FOR ZVIEW1-BUDAT,
L_R_RMZHL FOR ZVIEW1-RMZHL,
L_R_RUECK FOR ZVIEW1-RUECK,
L_R_VORNR FOR ZVIEW1-VORNR.

DATA: L_T_DATA TYPE STANDARD TABLE OF ZVIEW1 WITH HEADER LINE.&amp;lt;/b&amp;gt;
* Initialization mode (first call by SAPI) or data transfer mode
* (following calls) ?

IF I_INITFLAG = SBIWA_C_FLAG_ON.

************************************************************************

* Initialization: check input parameters

* buffer input parameters

* prepare data selection

************************************************************************

* Check DataSource validity

CASE I_DSOURCE.

&amp;lt;b&amp;gt;WHEN 'ZTEST'.&amp;lt;/b&amp;gt;

WHEN OTHERS.
RAISE ERROR_PASSED_TO_MESS_HANDLER.

ENDCASE.

* Copy selection criteria for future extractor calls (fetch-calls)

APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.

* Fill parameter buffer for data extraction calls

S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
S_S_IF-INITFLAG = I_INITFLAG.

* Fill field list table for an optimized select statement
* (in case that there is no 1:1 relation between InfoSource fields
* and database table fields this may be far from being trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.

ELSE. "Initialization mode or data extraction ?

************************************************************************

* Data transfer: First Call OPEN CURSOR + FETCH

* Following Calls FETCH only

************************************************************************

* First data package -&amp;gt; OPEN CURSOR

IF S_COUNTER_DATAPAKID = 0.
* Fill range tables BW will only pass down simple selection criteria
* of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.

&amp;lt;b&amp;gt;LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'ERSDA'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_ERSDA.
APPEND L_R_ERSDA.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'AUFNR'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_AUFNR.
APPEND L_R_AUFNR.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'BUDAT'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_BUDAT.
APPEND L_R_BUDAT.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'RMZHL'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_RMZHL.
APPEND L_R_RMZHL.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'RUECK'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_RUECK.
APPEND L_R_RUECK.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'VORNR'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_VORNR.
APPEND L_R_VORNR.
ENDLOOP.&amp;lt;/b&amp;gt;

* Determine number of database records to be read per FETCH statement
* from input parameter I_MAXSIZE. If there is a one to one relation
* between DataSource table lines and database entries, this is trivial.
* In other cases, it may be impossible and some estimated value has to
* be determined.

* Deltainit?

&amp;lt;b&amp;gt;DESCRIBE TABLE L_R_ERSDA LINES L_V_LINES.

IF L_V_LINES = 1.
READ TABLE L_R_ERSDA INDEX 1.
IF L_R_ERSDA-SIGN = 'I'
AND L_R_ERSDA-OPTION = 'BT'
AND L_R_ERSDA-LOW = SPACE
AND L_R_ERSDA-HIGH = SY-DATUM.
CLEAR L_R_ERSDA.
REFRESH L_R_ERSDA.
ENDIF.
ENDIF.&amp;lt;/b&amp;gt;

&amp;lt;b&amp;gt;IF L_R_ERSDA[] IS INITIAL.

* Deltainit or Full

OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT *
FROM ZVIEW1
WHERE AUFNR IN L_R_AUFNR
AND BUDAT IN L_R_BUDAT
AND RMZHL IN L_R_RMZHL
AND RUECK IN L_R_RUECK
AND VORNR IN L_R_VORNR.

ELSE.

* Delta
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT *
FROM ZVIEW1
WHERE AUFNR IN L_R_AUFNR
AND BUDAT IN L_R_BUDAT
AND RMZHL IN L_R_RMZHL
AND RUECK IN L_R_RUECK
AND VORNR IN L_R_VORNR
AND ( ERSDA IN L_R_ERSDA
OR LAEDA IN L_R_ERSDA ).

ENDIF. "Full or Delta ?

ENDIF. "First data package ?&amp;lt;/b&amp;gt;

* Fetch records into e_t_data

&amp;lt;b&amp;gt;FETCH NEXT CURSOR S_CURSOR
INTO CORRESPONDING FIELDS
OF TABLE L_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.&amp;lt;/b&amp;gt;

IF SY-SUBRC &amp;lt;&amp;gt; 0.

CLOSE CURSOR S_CURSOR.

RAISE NO_MORE_DATA.
ENDIF.

* Next data package 
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.

ENDIF. "Initialization mode or data extraction ?

* delete records marked as cancelled.

&amp;lt;b&amp;gt;DELETE L_T_DATA WHERE STZHL NE ''.


SORT L_T_DATA BY AUFNR RUECK RMZHL.

LOOP AT L_T_DATA.

IF SY-SUBRC = 0.

IF L_T_DATA-STOKZ = 'X'.
L_T_DATA-STZHL = L_T_DATA-RMZHL.
ENDIF.
ENDIF.

* Append into interface table e_t_data.
MOVE-CORRESPONDING L_T_DATA TO E_T_DATA.
APPEND E_T_DATA.

ENDLOOP.&amp;lt;/b&amp;gt;

ENDFUNCTION.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How does This work ......... ??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 13 Feb 2007 05:37:34 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-02-13T05:37:34Z</dc:date>
    <item>
      <title>Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code/m-p/1951741#M391981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This code is from BI forum , I need explanation on Working of ABAP code .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We will create a View / Structure in SE11 , Then use that in Function module RSAX_BIW_GET_DATA_SIMPLE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code , The Bold Letters are that we are Replacing in Standard Code ,&lt;/P&gt;&lt;P&gt;I need clear working explanation for that Bold letters .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This FM is for BW extraction . Ztest is the view created based aufnr,afru and crhd table with 25 fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;View Fields Join Condition :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AUFK-mandt = afru-mandt&lt;/P&gt;&lt;P&gt;CRHD-mandt = afru-mandt&lt;/P&gt;&lt;P&gt;AUFK -AFNR = AFRU-AUFNR&lt;/P&gt;&lt;P&gt;CRHD -OBJID = AFRU-ARBID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the Code &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

FUNCTION ZTEST.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" REFERENCE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" REFERENCE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE DEFAULT 1000
*" REFERENCE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" REFERENCE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZVIEW1 OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
*"----------------------------------------------------------------------
&amp;lt;b&amp;gt;TABLES: ZVIEW1.&amp;lt;/b&amp;gt;

* Auxiliary Selection criteria structure

DATA: L_S_SELECT TYPE SRSC_S_SELECT.

* Initialization mode (first call by SAPI) or data transfer mode
* (following calls) ?

*-----------------------------------------------------------------------
* Data Structures for delta-mechanism
*-----------------------------------------------------------------------
DATA: L_V_LINES TYPE I.
*-----------------------------------------------------------------------
* Static structures
*-----------------------------------------------------------------------
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
* counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,
* cursor
S_CURSOR TYPE CURSOR.

* Ranges for data selection
&amp;lt;b&amp;gt;RANGES: 
L_R_ERSDA FOR ZVIEW1-ERSDA,
L_R_AUFNR FOR ZVIEW1-AUFNR,
L_R_BUDAT FOR ZVIEW1-BUDAT,
L_R_RMZHL FOR ZVIEW1-RMZHL,
L_R_RUECK FOR ZVIEW1-RUECK,
L_R_VORNR FOR ZVIEW1-VORNR.

DATA: L_T_DATA TYPE STANDARD TABLE OF ZVIEW1 WITH HEADER LINE.&amp;lt;/b&amp;gt;
* Initialization mode (first call by SAPI) or data transfer mode
* (following calls) ?

IF I_INITFLAG = SBIWA_C_FLAG_ON.

************************************************************************

* Initialization: check input parameters

* buffer input parameters

* prepare data selection

************************************************************************

* Check DataSource validity

CASE I_DSOURCE.

&amp;lt;b&amp;gt;WHEN 'ZTEST'.&amp;lt;/b&amp;gt;

WHEN OTHERS.
RAISE ERROR_PASSED_TO_MESS_HANDLER.

ENDCASE.

* Copy selection criteria for future extractor calls (fetch-calls)

APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.

* Fill parameter buffer for data extraction calls

S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
S_S_IF-INITFLAG = I_INITFLAG.

* Fill field list table for an optimized select statement
* (in case that there is no 1:1 relation between InfoSource fields
* and database table fields this may be far from being trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.

ELSE. "Initialization mode or data extraction ?

************************************************************************

* Data transfer: First Call OPEN CURSOR + FETCH

* Following Calls FETCH only

************************************************************************

* First data package -&amp;gt; OPEN CURSOR

IF S_COUNTER_DATAPAKID = 0.
* Fill range tables BW will only pass down simple selection criteria
* of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.

&amp;lt;b&amp;gt;LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'ERSDA'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_ERSDA.
APPEND L_R_ERSDA.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'AUFNR'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_AUFNR.
APPEND L_R_AUFNR.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'BUDAT'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_BUDAT.
APPEND L_R_BUDAT.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'RMZHL'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_RMZHL.
APPEND L_R_RMZHL.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'RUECK'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_RUECK.
APPEND L_R_RUECK.
ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'VORNR'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_VORNR.
APPEND L_R_VORNR.
ENDLOOP.&amp;lt;/b&amp;gt;

* Determine number of database records to be read per FETCH statement
* from input parameter I_MAXSIZE. If there is a one to one relation
* between DataSource table lines and database entries, this is trivial.
* In other cases, it may be impossible and some estimated value has to
* be determined.

* Deltainit?

&amp;lt;b&amp;gt;DESCRIBE TABLE L_R_ERSDA LINES L_V_LINES.

IF L_V_LINES = 1.
READ TABLE L_R_ERSDA INDEX 1.
IF L_R_ERSDA-SIGN = 'I'
AND L_R_ERSDA-OPTION = 'BT'
AND L_R_ERSDA-LOW = SPACE
AND L_R_ERSDA-HIGH = SY-DATUM.
CLEAR L_R_ERSDA.
REFRESH L_R_ERSDA.
ENDIF.
ENDIF.&amp;lt;/b&amp;gt;

&amp;lt;b&amp;gt;IF L_R_ERSDA[] IS INITIAL.

* Deltainit or Full

OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT *
FROM ZVIEW1
WHERE AUFNR IN L_R_AUFNR
AND BUDAT IN L_R_BUDAT
AND RMZHL IN L_R_RMZHL
AND RUECK IN L_R_RUECK
AND VORNR IN L_R_VORNR.

ELSE.

* Delta
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT *
FROM ZVIEW1
WHERE AUFNR IN L_R_AUFNR
AND BUDAT IN L_R_BUDAT
AND RMZHL IN L_R_RMZHL
AND RUECK IN L_R_RUECK
AND VORNR IN L_R_VORNR
AND ( ERSDA IN L_R_ERSDA
OR LAEDA IN L_R_ERSDA ).

ENDIF. "Full or Delta ?

ENDIF. "First data package ?&amp;lt;/b&amp;gt;

* Fetch records into e_t_data

&amp;lt;b&amp;gt;FETCH NEXT CURSOR S_CURSOR
INTO CORRESPONDING FIELDS
OF TABLE L_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.&amp;lt;/b&amp;gt;

IF SY-SUBRC &amp;lt;&amp;gt; 0.

CLOSE CURSOR S_CURSOR.

RAISE NO_MORE_DATA.
ENDIF.

* Next data package 
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.

ENDIF. "Initialization mode or data extraction ?

* delete records marked as cancelled.

&amp;lt;b&amp;gt;DELETE L_T_DATA WHERE STZHL NE ''.


SORT L_T_DATA BY AUFNR RUECK RMZHL.

LOOP AT L_T_DATA.

IF SY-SUBRC = 0.

IF L_T_DATA-STOKZ = 'X'.
L_T_DATA-STZHL = L_T_DATA-RMZHL.
ENDIF.
ENDIF.

* Append into interface table e_t_data.
MOVE-CORRESPONDING L_T_DATA TO E_T_DATA.
APPEND E_T_DATA.

ENDLOOP.&amp;lt;/b&amp;gt;

ENDFUNCTION.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How does This work ......... ??&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Feb 2007 05:37:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code/m-p/1951741#M391981</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-13T05:37:34Z</dc:date>
    </item>
    <item>
      <title>Re: Code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code/m-p/1951742#M391982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that the extraction process will call the function module at least twice:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The first call is for initialisations.  No data rows are returned.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Every call after that &lt;STRONG&gt;either&lt;/STRONG&gt; returns data rows, subject to a limit of I_MAXSIZE rows, &lt;STRONG&gt;or&lt;/STRONG&gt; raises the exception NO_MORE_DATA.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;After each call that returns data rows, there is a further call.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;After the call that raises the exception NO_MORE_DATA, there is no further call.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So for example if there are 500 rows to be extracted, and if I_MAXSIZE = 200, then there would be five function calls:&lt;/P&gt;&lt;P&gt;1.  Initialisation - no rows returned.&lt;/P&gt;&lt;P&gt;2.  200 rows returned.&lt;/P&gt;&lt;P&gt;3.  200 rows returned.&lt;/P&gt;&lt;P&gt;4.  100 rows returned.&lt;/P&gt;&lt;P&gt;5.  Exception NO_MORE_DATA raised - no rows returned.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The purpose of this design would seem to be to faciltate the use of a &lt;STRONG&gt;database cursor&lt;/STRONG&gt; for the data extraction, as in the function module RSAX_BIW_GET_DATA_SIMPLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If it is not possible to use a database cursor, then you can extract into an internal table in the initial function call.  In subsequent calls, you can return (and delete from the table) the appropriate number of rows each time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;John&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Feb 2007 16:13:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code/m-p/1951742#M391982</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-22T16:13:07Z</dc:date>
    </item>
  </channel>
</rss>

