Generic Extractor Question

Hi
I would like to create a Generic Extractor on table QMFE which has Created Date and Changed Date fields.
If I have to get deltas, I can use only one field in Extractor for Delta option: Either Created Date or Change Date.
If I use Create Date, I'll miss Changes and vice versa.
I felt Function Module Extractor will be 2much complex.
Can any one suggest what is the best approach to get deltas in this scenario?
Thanks
Sree
Please search the forum before posting a thread
Edited by: Pravender on Aug 12, 2011 3:59 PM

Hi Sree,
1) The simplest approach will be to create a single extractor and set the delta pointer to Changed Date, but this is only possible if you populate changed date = Created date for the very first time you create records. So that by using changed date you will not miss any newly created delta records, check with your functional team whether this is possible or not?
2) Otherwise you can create two generic extractors and use two different delta pointers one with Created Date and other with changed date. In the generic extractor you simply need to set your delta pointer and modify the OPEN CURSOR statment to include the proper delta field in selection of data. Rest of your code will be same for both the extractors.
Now if you go for 1st approach then you will have to create only one IP in BW and include it in process chain but in 2nd approach you will have to create two IP (one for each DS) and include both in process chain. It will only increase your data loading time.
Regards,
Durgesh.

Similar Messages

  • Generic extractor question/problem

    Hello,
    I want to create a generic extractor on custom table which should delta enabled . This custom table has ERDAT( creation date) and ERZET u2013 Entry time but the client is asking me to use both fields for delta functionality . I am not sure how to do this . Please help .
    Regards,

    As you said client want you to use both the date n time stamp field to extract delta you can follow the below steps.
    - Create the generic data source as per you requirement in order to pic the delta
    - Open you extract structre and append the field TZNTSTMP, this is the field which holds the time stamp.
    - to setup deltas click on generic delta --> select time stamp(UTC)
    Regards
    KP

  • A question about Generic Extractor

    Hi everyone,
    I excuted Generic Extractor to extract customer reference data to MDM server. I deselect "Local download" and  select "Upload via FTP", there is no error and the reference data was transfered to corresponsing mdm port directories. But xml files of the reference data were also downloaded into the local directory from where I upload Ports and Check-Tables.
    Could you give some suggestion about it.
    best regards,

    Hi Lionsir,
    It could be the case that you have given the local file directory address in the generate XSD option.
    Just check the same.
    Hope it helps.
    Thanks,,
    Minaz

  • Problem in creating a Generic Extractor on a custom 'Z' table

    This is regarding an earlier question I posted in sdn today. I am trying to create a generic extractor on a custom 'Z' table and iam getting the following message.
    Invalid extract structure template YBW_Z3PVR of DataSource YCNA_3PVAR_RPT
    Message no. R8359
    Diagnosis
    You tried to generate an extract structure with the template structure Z3PVR. This operation failed, because the template structure quantity fields or currency fields, for example, field MENGE refer to a different table.
    Procedure
    Use the template structure to create a view or DDIC structure that does not contain the inadmissable fields.
    Please advise. how do i solve this?

    Hi there,
    Is your Z* table working? It must be add check field for quantity field and currency field.
    Hope this helps.

  • How to use 2 date field as delta control in generic extractor.

    Hi colleagues:
    I have developed a generic extractor to extract logistic data: Purchase Orders and Invoice. In order to do that, I have defined a view joining EKBE, EKKO, EKPO, EKET tables on R/3. By this approach, the delta mechanism is supposed to be controlled by the EKBE-BUDAT field and also by the EKPO-AEDAT field. Both fields are available on the view used to create the Datasource. However, the Datasource creation allows us to define just one field as delta control.
    I have a few questions regarding to this scenario:
    <b>1 - Is it possible to define 2 fields as delta control field on Generic Datasource?</b>
    <b>2 - How about creating two similar Datasouces, one having AEDAT as delta control, the other having BUDAT as delta control, and then connect those Datasources to an unique Infosource on the bw side?</b>
    Best regards
    Waldemar

    hi,
    1 - as far as I know it is not possible to define 2 fields
    2 - this workaround is used often in cases like yours.
    Just remember about order of extracting: first you extract new documents then changed
    Regards,
    Andrzej

  • 0RecordMode implementation in Generic Extractor & ODS

    Hi All,
    We have scenario of generic extractor supplying data to ODS . Now we want to implement deletion functionality using record mode .
    We have added 0recordmode to ODS and infosource . What additional thing we need to do in case of achieving deletion of data from ODS . ( Tried supplying record mode D to ODS  but system doesnt delete the record).
    One more thing is in ods we have 4 keyfields out of which we are able to supply only 3 fields in the infosource which supplies data deletion records.
    Could any body please explain as how to achieve this ...
    Thanks !
    Regards
    Mr Kapadia

    Hi Kapadia,
        In transfer rules level change the record mode to R rather than D. Let me know if you have any questions.
    Assign points if it helps.
    Regards
    Satish Arra

  • Delta in generic extractor.

    Hi Everyone,
    I have created one of the generic extractor on a table and the other one on a view. While selecting the GENERIC DELTA, I let the numeric pointer selection checked.
    Now, my question is will it allow me to do delta load in my cube using this extractor?
    2nd question is how?
    3rd question is if not then what is the change that I need to make so that it allows me to load the delta load. How this changes need to be made can you please explain step by step. thanks in advance.
    My issue arose after loading the data when I went to change the InfoPackage to load the delta part, I realised in my InfoPackage I do not have the choice to load delta. How do I settle this. Actually this is an inventory cube where the data is loaded at the end of each month and now when I wanted to test it for today's month I realised that I do not have the choice to load delta for inventory load.
    Please explain. Thank you once again in advance.

    <u>1. my question is will it allow me to do delta load in my cube using this extractor?</u>
         Yes... you build Generic Extractor with Delta based on Numeric Pointer. Material Documents is the Perfect Example for that (We can't Sales Document or Purchase Document for this).
    <u>2. 2nd question is how?</u>
         Simple enable Material Document Number Fileds for Numeric Pointer (Select Numeric Pointer... provide Mat. Document No. field i.e. MBLNR).
    <u>3rd question is if not then what is the change that I need to make so that it allows me to load the delta load. How this changes need to be made can you please explain step by step. thanks in advance.</u>
    you need to create Material Documents in SAP R/3. If you build your Extractor on MSEG Table. You need to create any Material Document which populates in MSEG.
    I don't remember wht exactly option we will get in Infopackage for Numeric Pointer. To my knowledge, it should give Delta only in Update Tab page.
    Hope this helps.
    Nagesh Ganisetti.
    Assign points if it helps.

  • Custom ABAP extractor question

    Hi Geeks,
    I have written an ABAP report for a custom extractor.
    My report pulls all necessary data & modify table ZTABLE.
    Now I want to trigger event in BW using RSSM_RAISE_EVENT.
    which I will use to trigget process chain in BW.
    My question is how BW will recognize my report as custom extractor?
    I am not using RSO2 , I am bit confused abt it.
    Can anybody clear my understanding about how to go abt defining custom extractors using ABAP report, what r the steps..I know how to write the code & I have my code ready
    Thanx in Advance.
    Monica

    Hi Monica,
    You have to create a generic extractor.
    Go to transaction RSO2 on your source system.
    Fill in a name for the extractor.
    In the next screen you have to choose for Extraction with Function Module. If you place you cursor on the FM field and push F1 (Help) you get an example of a FM: RSAX_BIW_GET_DATA_SIMPLE.
    Copy this FM and change the logic for collecting the data in itab e_t_data.
    Cheers,
    Patrick

  • Generic DataSource Question

    Hi Friends,
    We have generic extractor based on the function module.
    It submits the report program and returns some value.
    This function module has parameter called S_S_IF-Maxsize = I-Maxsize.
    My counter is based on this,
    Counter GE S_S_IF-Maxsize.
    Now my question is what value of S_S_IF-Maxsize is determined by system and how?
    When I am checking in RSA3 it is based on the selection screen parameters on RSA3(By default:100).
    When I test in SE37-function module it  takes 000000 by default, I may change here to test and debug. But I wanted to know that when called by BW how it takes value of S_S_IF-Maxsize.
    If somebody knows the procedure on how to debug extractor when called by BW, please let me know.
    Please suggest.
    Thanks,
    John.

    Hi,
    A simple way to check how BW calls the extractor and what values are passed is to use RSA3 itself in the source system.
    Execute an infopackage in BW and note down the request number or you can use the request number of an existing one.
    Go to RSA3 in the source system, enter your datasource details there.  There will be a button next to the execute button at the top called "Import from BW".  Click that and enter the request number and the BW system logical name and hit enter.
    The parameters from the request will be imported.  You can view them and then debug using this data.
    Cheers
    Neeraj

  • Generic extractor help needed badly.

    Hi Geeks,
    As continuation to questions I posted in the morning.
    1> I have created a generic extractor say ZBW_PRICING.
    2> ZBW_PRICING is based on tables A508 & KONP.
    3> One of the currency fields I am interested in that is
       KBETR has reference field RV13A-KBETR.
    4> Rv13A is a structure not a DB table so I can not give
       reference to RV13A while building view.
    5> So I appended the extract structure with two fields.
       ZZKBETR (rate) & ZZKONWA (currency key) to populate  it  from KONP.
    6> I activated the appended structure as well as extract structure.
    7> In RSA6 when I try to unhide field & save it.
       I get following error.
       The OLTP source still has errors.
       Message no R8417.
    Please help fellows its important for me.
    thanx in advance.
    Monica

    Kunal and Subray,
    I had the same problem while trying to unhide the field.
    I solved the error by giving the proper reference table and field names to the required field in extract structure, which in my case has been a currency field.
    ( Since I have a generic extractor, I changed the Reference Table name to Transparent table name. I changed the field name to corresponding field name within the Transparent table).
    Thank you.
    (Also, I see that Transparent Table name = extract structure name = DataSource name. I think the names might be same for Generice Datasources by default)

  • Generic Extractors for LO

    Hi,
    Has anyone attempted to write their own generic extractors to mimic the LO process because the results from this module did not meet their requirements? Would you recommend doing this?
    Thanks
    "<i>Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws</i>." ~ Plato (427-347 B.C.)
    "<i>Forgive your enemies, but never forget their names.</i>" ~ John F. Kennedy (1917-1963)
    Forgivenes - <i>Just get out of my life and spare me the anguish of pitying you</i> ~ Anonymous Author
    Message was edited by:
            Ellen DeGeneres

    The LO process of extraction cannot be mimicked. If the requirement is such that you need more/different  fields then you have the following options.
    1. If the fields are in the extract structure of the datasource in question then just add the fields to the datasource and use the LO extraction process.
    2. If you need to add some fields which are not in the extract structure of the datasource then add them to the datasource and use user exit to fill them.
    3. If the need is for a completely different extractor. Then creat the extractor in RSO2,
    More detailed info is in the weblogs by Robert Negro.
    Hope this helps.
    Bhargava

  • Generic extractors with delta

    hi all,
    can any one please provide any thing on generic extractors particular to delta (time-stamp)
    VRKR

    Hi,
    please search the forums. This question has been asked already a lot of times. Additionally you might check my business card --> there is a link to a weblog related to that issue.
    Siggi

  • Generic Extractors & Mobile Engine

    Bonjour,
    I have some doubts certain aspects of generic extractors and Mobile Reporting. Hope I can clarify them in SDN.
    1. Is Repair Request only suitable for certain Data Sources which is delta-enabled and has full update?
    2. Flat file upload allows assignment of more than 1 data sources. Is this multi-data source feature only for Datasources which only can support 1 update mode that is Full update?
    3. i-mode and wap can have ad-hoc analyses with standard web template. What does ad-hoc analyses mean? Is it ad-hoc query (web item ad-hoc query)?
    4. Is Mobile Engine used as technical basis when downloading precalculated web template by WebDav & Web folder or is it another alternative way to download the same?
    Would greatly appreciate it if you could reply to all / some of the questions.
    best regards,
    Pascal Gabin
    Message was edited by: Pascal Gabin

    Hi,
    If a delta fails (status ’red’ in the monitor) or the overall status of the delta request has been set to red manually, the next data request will be performed in repeat mode. A repeat request extracts the incorrect or incompletely loaded data from the failed delta request, along with any new data since the original request. A repeat can only be requested in the dialog. If data from the failed delta request has already been updated to the data targets, delete the data from the data targets affected. If you cannot delete the data from the data targets, duplicate data records may be produced when the repeat request is performed.
    Check it once
    Regards,
    Priyanka

  • Creation of generic extractor in CRM

    Hi Experts,
           I want to create generic extractor in CRM.    
              In R/3 we can use table like VBAK,VBAP..etc while creating Generic extracor.But I am not able to find tables for transactions like Activities,Opportunities ...etc in CRM.
    Pls let me know how to find tables in CRM.
    Regards
    Vishal.

    Hi Vishal,
    The orders tables in CRM are CRMD_ORDERADM_H (header) and CRMD_ORDERADM_I (item-level).
    For other tables, usually they begin with CRMD_*. They're related to document informations, like for example: CRMD_PARTNER for partners, CRMD_ORGMAN for document organizational data, and so on....
    Kind regards,

  • Delta fo Generic extractor using function module

    Hi,
    I am using the following function module for generic extractor but its always showing me extraction error.Could anyone please suggest to resolve the issue.
    Thanks in advance fo rsuggestion.
    FUNCTION Z_BW_SALESDATA_EXTRACT_CHNG2.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SBIWA_S_INTERFACE-REQUNR
    *"     VALUE(I_ISOURCE) TYPE  SBIWA_S_INTERFACE-ISOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SBIWA_S_INTERFACE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SBIWA_S_INTERFACE-INITFLAG OPTIONAL
    *"     VALUE(I_UPDMODE) TYPE  SBIWA_S_INTERFACE-UPDMODE OPTIONAL
    *"     VALUE(I_DATAPAKID) TYPE  SBIWA_S_INTERFACE-DATAPAKID OPTIONAL
    *"     VALUE(I_PRIVATE_MODE) OPTIONAL
    *"     VALUE(I_CALLMODE) LIKE  ROARCHD200-CALLMODE OPTIONAL
    *"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
    *"  TABLES
    *"      I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"      E_T_DATA OPTIONAL
    *"      E_T_SOURCE_STRUCTURE_NAME OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    The input parameter I_DATAPAKID is not supported yet !
    Example: InfoSource containing TADIR objects
      TABLES: VBFA,VBRK,tadir.
    Auxiliary Selection criteria structure
      DATA: l_s_select TYPE sbiwa_s_select.
    Maximum number of lines for DB table
      STATICS: l_maxsize TYPE sbiwa_s_interface-maxsize.
    user defined variables.
      DATA : X_UPDMODE(1) Type c,        " Update Type
            X_LastUpdate Like Sy-Datum. " Last Update Date
             X_LastUpdate TYPE RODELTAID. " Last Update Date   "TCS_KAP
    Select ranges
      RANGES: L_R_VBELN   FOR VBAK-VBELN,
              L_R_AUDAT   FOR VBAK-AUDAT.
    Parameter I_PRIVATE_MODE:
    Some applications might want to use this function module for other
    purposes as well (e.g. data supply for OLTP reporting tools). If the
    processing logic has to be different in this case, use the optional
    parameter I_PRIVATE_MODE (not supplied by BIW !) to distinguish
    between BIW calls (I_PRIVATE_MODE = SPACE) and other calls
    (I_PRIVATE_MODE = X).
    If the message handling has to be different as well, define Your own
    messaging macro which interprets parameter I_PRIVATE_MODE. When
    called by BIW, it should use the LOG_WRITE macro, otherwise do what
    You want.
    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
    The input parameter I_DATAPAKID is not supported yet !
    Invalid second initialization call -> error exit
        IF NOT g_flag_interface_initialized IS INITIAL.
          IF 1 = 2. MESSAGE e008(r3). ENDIF.
          log_write 'E'                    "message type
                    'R3'                   "message class
                    '008'                  "message number
                    ' '                    "message variable 1
                    ' '.                   "message variable 2
          RAISE error_passed_to_mess_handler.
          ENDIF.
    Check InfoSource validity
        CASE i_isource.
          WHEN 'Z_BW_SDDATA_CREATEON'.
          WHEN 'Y'.
          WHEN 'Z'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE e009(r3). ENDIF.
            log_write 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      i_isource            "message variable 1
                      ' '.                 "message variable 2
            RAISE error_passed_to_mess_handler.
        ENDCASE.
    Check for supported update mode
       CASE i_updmode.
         WHEN 'F'.
         WHEN OTHERS.
           IF 1 = 2. MESSAGE e011(r3). ENDIF.
           log_write 'E'                  "message type
                     'R3'                 "message class
                     '011'                "message number
                     i_updmode            "message variable 1
                     ' '.                 "message variable 2
           RAISE error_passed_to_mess_handler.
       ENDCASE.
    Check for obligatory selection criteria
       READ TABLE i_t_select INTO l_s_select WITH KEY fieldnm = 'VBELN'.
       IF sy-subrc <> 0.
         IF 1 = 2. MESSAGE e010(r3). ENDIF.
         log_write 'E'                    "message type
                   'R3'                   "message class
                   '010'                  "message number
                   'PGMID'                "message variable 1
                   ' '.                   "message variable 2
         RAISE error_passed_to_mess_handler.
       ENDIF.
       APPEND LINES OF i_t_select TO g_t_select.
    Fill parameter buffer for data extraction calls
        g_s_interface-requnr    = i_requnr.
        g_s_interface-isource   = i_isource.
        g_s_interface-maxsize   = i_maxsize.
        g_s_interface-initflag  = i_initflag.
        g_s_interface-updmode   = i_updmode.
        g_s_interface-datapakid = i_datapakid.
        g_flag_interface_initialized = sbiwa_c_flag_on.
    Store Update mode in static variable...
       X_UPDMODE = I_UPDMODE.
        Select Single DELTAID
               Into   X_LastUpdate
               From   ROOSGENDLM
               Where  OLTPSOURCE = 'Z_BW_SDDATA_CREATEON'.
        If X_LastUpdate Is Initial.
          X_LastUpdate = '19800101'. " The oldest..., this should not happen
        Endif.
    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 beeing trivial)
        APPEND LINES OF i_t_fields TO g_t_segfields.
      ELSE.                 "Initialization mode or data extraction ?
    Data transfer: First Call      OPEN CURSOR + FETCH
                   Following Calls FETCH only
    X_UPDMODE = I_UPDMODE.
    First data package -> OPEN CURSOR
        IF g_counter_datapakid = 0.
    Fill range tables for fixed InfoSources. In the case of generated
    InfoSources, the usage of a dynamical SELECT statement might be
    more reasonable. BIW will only pass down simple selection criteria
    of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
          LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'VBELN'.
            MOVE-CORRESPONDING l_s_select TO L_R_VBELN.
            APPEND L_R_VBELN.
          ENDLOOP.
          LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'AUDAT'.
            MOVE-CORRESPONDING l_s_select TO L_R_AUDAT.
            APPEND L_R_AUDAT.
          ENDLOOP.
    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 InfoSource table lines and database entries, this is trivial.
    In other cases, it may be impossible and some estimated value has to
    be determined.
    *added by Yogesh
          DELETE FROM ZBWSALEDATA.
    *ended by Yogesh
          l_maxsize = g_s_interface-maxsize.
    Check for supported update mode
          CASE X_UPDMODE.
            WHEN 'F' Or 'I'. " Full or Init
    **get sales orders
              SELECT *
                           INTO CORRESPONDING FIELDS OF TABLE I_SALESDATA
                           FROM VBAK AS K
                           INNER JOIN VBAP AS P
                                 ON  PVBELN = KVBELN
                           WHERE K~VBELN IN L_R_VBELN
                           AND   K~AUDAT IN L_R_AUDAT
                           AND   K~VBTYP = 'C'.
              IF I_SALESDATA[] IS NOT INITIAL.
                PERFORM F_GET_DATA.                   "get data
                PERFORM F_DEL_VATCOND.                "delete vat conditions
                PERFORM F_GET_TAR_COSTUNIT.           "get tariff cost unit
                PERFORM F_GET_NETVAL TABLES IT_VBDPA1. "get net val of the item
                PERFORM F_GET_SALESDATA.
    *write perform with name F_INSERT_DB_ZBWSALEDATA.
                PERFORM F_INSERT_DB_ZBWSALEDATA.      "insert into table ZBWSALESDATA
               LOOP AT I_SALESDATA WHERE NETPR = 0.
                 MOVE-CORRESPONDING I_SALESDATA TO I_SALESDATA_FIN.
                 APPEND I_SALESDATA_FIN.
               ENDLOOP.
               SORT I_SALESDATA_FIN BY VBELN POSNR KSCHL.
               DELETE ADJACENT DUPLICATES FROM I_SALESDATA_FIN
                                               COMPARING VBELN POSNR
                                                         KSCHL.
               INSERT ZBWSALEDATA FROM TABLE I_SALESDATA_FIN.
              ENDIF.
            WHEN 'D'. " Delta
              SELECT *
                             INTO CORRESPONDING FIELDS OF TABLE I_SALESDATA
                             FROM VBAK AS K
                             INNER JOIN VBAP AS P
                                   ON  PVBELN = KVBELN
                            WHERE K~ERDAT >= X_LastUpdate
                             WHERE K~ERDAT >= X_LastUpdate+0(8)          "TCS_KAP
                             AND   K~VBTYP = 'C'.
              IF I_SALESDATA[] IS NOT INITIAL.
                PERFORM F_GET_DATA.                   "get data
                PERFORM F_DEL_VATCOND.                "delete vat conditions
                PERFORM F_GET_TAR_COSTUNIT.           "get tariff cost unit
                PERFORM F_GET_NETVAL TABLES IT_VBDPA1. "get net val of the item
                PERFORM F_GET_SALESDATA.
    *write perform with name F_INSERT_DB_ZBWSALEDATA.
                PERFORM F_INSERT_DB_ZBWSALEDATA.      "insert into table ZBWSALESDATA
               LOOP AT I_SALESDATA WHERE NETPR = 0.
                 MOVE-CORRESPONDING I_SALESDATA TO I_SALESDATA_FIN.
                 APPEND I_SALESDATA_FIN.
               ENDLOOP.
               SORT I_SALESDATA_FIN BY VBELN POSNR KSCHL.
               DELETE ADJACENT DUPLICATES FROM I_SALESDATA_FIN
                                               COMPARING VBELN POSNR
                                                         KSCHL.
               INSERT ZBWSALEDATA FROM TABLE I_SALESDATA_FIN.
              ENDIF.
            WHEN OTHERS.
              IF 1 = 2. MESSAGE E011(R3). ENDIF.
              LOG_WRITE 'E' "message type
              'R3' "message class
              '011' "message number
              I_UPDMODE "message variable 1
              ' '. "message variable 2
              RAISE ERROR_PASSED_TO_MESS_HANDLER.
          ENDCASE.
    **end get sales orders
          OPEN CURSOR WITH HOLD g_cursor FOR
          SELECT (g_t_fields) FROM ZBWSALEDATA.
         WHERE pgmid  IN l_r_pgmid AND
                                        object IN l_r_object.
        ENDIF.                             "First data package ?
    Fetch records into interface table. There are two different options:
    - fixed interface table structure for fixed InfoSources have to be
      named E_T_'Name of assigned source structure in table ROIS'.
    - for generating applications like LIS and CO-PA, the generic table
      E_T_DATA has to be used.
    Only one of these interface types should be implemented in one API !
        FETCH NEXT CURSOR g_cursor
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE l_maxsize.
        IF sy-subrc <> 0.
          CLOSE CURSOR g_cursor.
          RAISE no_more_data.
        ENDIF.
        g_counter_datapakid = g_counter_datapakid + 1.
      ENDIF.              "Initialization mode or data extraction ?
    Best regards,
    Yogesh

    Dear Yogesh,
    Try to debug the code by putting a break point at select statement...is the FM Syntactically correct ??
    Check the Select statements..if all fields are not required avoid using Select * , and use always for all entries rather than JOINS..
    Note : For Joins you have to specify the Fields in the Select...Dont use Select * ....
    Hope it helps..
    Thanks,
    Krish

Maybe you are looking for