Generic extractors as delta enabled

Hi Experts,
I am looking for a thread or Blog that describes the steps to enable Generic extractors as delta enabled.
Alok

Hi,
Goto-->  RSO2 -> Enter your datasource name->Press on Generic Delta
Select one in Delta Specfied field...
U can set any of the below 3 based on ur reqmnt..
Time stamp or Calender day or numeric Pointer.
How to Create Delta..
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
Generic.. SAP Help
http://help.sap.com/saphelp_nw2004s/helpdata/en/3f/548c9ec754ee4d90188a4f108e0121/frameset.htm
http://wiki.ittoolbox.com/index.php/HOWTO:Generate_a_generic_DataSource
Thanks
(Assign Points if useful..)

Similar Messages

  • How can i make the Master data extractor to delta enable

    Hi,
    I am working on 0EQUIPMENT_ATTR(Master data).
    I want to load the data to ODS,
    By default SAP has not provided delta for this Object.
    can anybody know how to make this 0EQUIPMENT_ATTR to delta enable.
    or any other solution.
    its urgent..
    help me
    Madhu

    Hi dear and welcome on board !
    If a std datasource is not available in delta mode, you cannot change it in order to deliver a delta...if you consider your requirement absolutely necessary, you can go for a generic datasource (RSO2) and try to set a generica delta...
    Hope it helps!
    Bye,
    Roberto
    ...please don't forget to reward the answers...it's THE way to say thanks here...

  • 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

  • Extractor Non delta Enabled

    What if the extractor is not delta enabled?
    How do we work it out in process chains..say if I use the full infopackage and DTP in the Process chain the full data will be loaded again and again...is that a problem?
    To overcome this if we use infopackage selection we need to go change it daily isn't it not sure though..!
    Can anyone give some good ideas?

    Voodi,
    We are just in development now ( its an implementation project ), so I need to know what exactly we follow if there is a non delta enabled extractor being mapped to a cube directly via transformation.
    So far I can make out : Create only one infopackage (full) and one DTP (full) and add the same in process chain?
    Now if thats the case wont my data double up everytime we schedule the chain?
    Please advise.
    Thanks.

  • Generic Datasource eventhough delta enabled not working

    Hi Experts,
    I have created a Datasource by creating a Function Module and also this function module i copied and did the changes the function module i used as a template is RSAX_BIW_GET_DATA_SIMPLE
    and after creating the thing i have created a generic delta by using LAST_CHANGED_ON date as delta specific field and i have initialized the delta its fine it creating an entry in RSA7
    in my first init load i got 4000 records so immly i have done delta again it brought 4000 but when i checked in RSA7 for delta their are no records but still its brining 4000 records ...but as per my assumption it should not get any records becoz we already got the delta.
    Thanks and regards
    Sreedhar

    Hi
    Even after making changes to code its still bring all the records with each load.
    below i am pasting my code please advise what is that i am doing wrong so that delta is not getting picked up. instead every time its a full load.
    FUNCTION ZRSAX_BIW_GET_DATA_SIMPLE.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL
    *"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
    *"  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 TYPE  ZDPR_DASHBOARD_T OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Example: DataSource for table SFLIGHT
    TABLES: DPR_DASHBOARD.
    Auxiliary Selection criteria structure
      DATA: L_S_SELECT TYPE SRSC_S_SELECT.
    Maximum number of lines for DB table
      STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
    counter
              S_COUNTER_DATAPAKID LIKE SY-TABIX,
    cursor
              S_CURSOR TYPE CURSOR.
    DATA : LF_OBJECT TYPE EVE_TV_OBJECT_GUID.
    DATA : LF_DATE TYPE DPR_TV_LAST_CHANGE_DATE.
    Select ranges
      RANGES: L_R_OBJECT  FOR LF_OBJECT .
      RANGES: L_R_DATE FOR LF_DATE.
    L_R_CONNID  FOR SFLIGHT-CONNID.
    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.
          WHEN 'ZDPREXTRACTION'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
    this is a typical log call. Please write every error message like this
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      I_DSOURCE   "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.
        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.
    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 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 -> 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'.
         LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'OBJECT_GUID'.
           MOVE-CORRESPONDING L_S_SELECT TO L_R_OBJECT.
           APPEND L_R_OBJECT.
        ENDLOOP.
    LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'LAST_CHANGE_DATE'.
            MOVE-CORRESPONDING l_s_select TO l_r_date.
            APPEND l_r_date.
          ENDLOOP.
         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 DataSource table lines and database entries, this is trivial.
    In other cases, it may be impossible and some estimated value has to
    be determined.
          OPEN CURSOR WITH HOLD S_CURSOR FOR
          SELECT (S_S_IF-T_FIELDS) FROM  DPR_DASHBOARD
                                   WHERE LAST_CHANGE_DATE in l_R_DATE. "AND
                                           OBJECT_GUID  IN L_R_OBJECT.
    ENDIF.                             "First data package ?
    Fetch records into interface table.
      named E_T_'Name of extract structure'.
        FETCH NEXT CURSOR S_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.
    Regards
    Sreedhar
    Message was edited by:
            Sreedhar M

  • 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.

  • Delta enabling in Generic data source

    Hi,
    Here is the requirement to create a generic datasource with delta enable.
    Master data objects 0RPA_MEAN and  0RPA_MARM are not delta enabled but we need them as delta enabled. Hence created generic datasource but still not able to do.
    Could you pl suggest the detailed procedure for creating generic datasource so that i can make them delta enabled.Is this possible in otherwise?
    Thanks & Regards,
    Vijaya

    Hi,
    Delta Generic DataSource time stamp fields
    Delta Generic DataSource
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10b68b99-022e-2a10-999d-c4dc9ec24a59
    Create Generic Delta
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    Also Refer:
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    http://help.sap.com/saphelp_nw04/helpdata/en/3f/548c9ec754ee4d90188a4f108e0121/content.htm
    Hope this helps.
    Thanks,
    JituK

  • Generic Extractor using FM with Delta Logic

    Hi,
    i want to create a generic extractor with Delta Logic based on a FM.
    The extractor works fine for full loads (extractor method "F" or "C"), but delivers no record for the extractor method "D" (Delta). I placed a hard coded break-point in the FM, so that the processing should stop while testing it with TC "rsa3". Using the extractor method "D" the debugger doesn't stop. So it seems, that this FM will not be processed for method "D". What could be wrong?
    I tried different ways to create the generic extractor:
    First i copied the template "RSAX_BIW_GET_DATA_SIMPLE" and tried to get the information for delta-run by "LOOP AT i_t_select INTO l_s_select WHERE fieldnm = 'DATE_FIELD'." But as the processing for method "D" does not consider the FM, there is no chance to get delta data.
    On second try i used the template "RSAX_BIW_GET_DATA" and changed "EXMETHOD" from "F1" to "F2" in table ROOSOURCE for the Data Source. In this case i get information about the Update mode (Parameter i_updmode). But the processing leaves the FM for extractor method "D" out too.
    Does anybody know, why the FM is not processed for extractor method "D"?
    Is there another way to get delta capable extractors based on FMs?
    Thanks for help in advance!

    Hello
    See this blog which uses the same FM with explanation
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    See this forum too
    Generic Delta Function Module
    Other docs
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    http://help.sap.com/saphelp_nw04/helpdata/en/37/4f3ca8b672a34082ab3085d3c22145/content.htm
    Thanks
    Chandran

  • Generic extractor is not reading delta

    Hi !
    I have a generic extractor with delta queue, for a Z view.
    The delta is on 'ZLOAD_DATE' field / calendar day /safety interval upper limit = 1 / new status for changed records
    In BI the init with data is ok.
    In ECC the delta queue (RSA7) show as actual status: 03 June 2010
    then, I  add 3 new records
    ZMAT    ZLOAD_DATE
    x            01 June 2010
    x            02 June 2010
    x            03 June 2010
    But when I run again the delta load in BI, dont load any records..  (0 records readed)
    > What is wrong?
    Thanks in advance!

    Hi Prem
    The new record were created after the init (the same day), but specify manually in the ZLOAD_DATE several dates (diferent from the real load date, today)
    1 - If I load records today and after run a delta,  can I see they in BI or I need wait until tomorrow?
    2 - if the upper limit is regarding the actual date, which is the meaning of specify a delta key field?
    3 - if I want a delta with the same behaivour than standard delta, do I need add the field timestamp to the table, and change the extractor?
    Thanks for your support!

  • Delta Enabled Generic Data Source

    Hi All,
    I have created one Delta Enabled Generic Data Source with
    Function Module. The Delta field is Date Field. The Data source picks data from R3 to BW.
    In RSA3, I executed the Extractor with the Delta Type "C" i.e Delta Initialization ... but it is throwing the error "Errors occured during the extraction". I also checked the Display Log and the error message is "Could not determine BW release of logical system".
    Moreover I am not able to see the Delta Attributes in
    RSA7. I checked with the other delta enabled generic extractors which uses Views .. is found to be working fine ... and I also able to see the Delta Attributes in RSA7.
    Any suggestions?
    Bye
    Dinesh

    Dinesh,
    Once you have generated transfer rules in BW for the datasource, delta init can be tried out in RSA3. It iwll not create the delta queue though. Only test the initialization.
    To do this, once you have created the transfer rules in BW, specify the logical system name of the BW system in the target system field. After that the extractor can be run in RSA3. It is flagged as read only so delta queue will not get created.
    Cheers
    Aneesh

  • Delta Enabling Text Extractors

    Is it possible to delta enable text extractors? Thanks

    Thanks Arun,
    In our case we are expecting very huge volumes even for master data loads and although limited columns our rows could be well in excess of 50 Million lines.  Is there an option to delta enable i.e. could I create a generic and delta on text? do standard extractors provide this functionality?

  • Delta loading through Generic extractor - function module not found

    Hi,
    I'm working on a BW3.5 system and we have some generic delta FM extractors. One of these is called ZBW_CONF_DELTA and the FM is also called ZBW_CONF_DELTA. It is a delta-enabled extractor. Whenever an extraction is done in the init delta mode, the data gets picked up from SAP.
    However, whenever we load subsequent deltas, the extractor brings zero records. When I look in the SM37 logs in R/3, it says "Function module /BIC/QIZBW_CONF_DELTA0001 does not exist"
    I'm not sure where the "/BIC/QIZBW_CONF_DELTA0001" function module name came from, because I haven't given it like that (if I did, the init load would also have failed).
    Due to this problem, I'm unable to perform any delta loads. Is there anything I could be doing to fix this?
    Regards

    Hi,
    First check how extractor works in R/3 side using RSA3
    Make a full load.
    Now check the generic delta field of your generic extractor, lets say changed on date.
    Do the SAP transaction ( take help from some Functional COnsultant ) to update that delta field. Note that record.
    Now if u do the delta load with same extractor, you are suppose to get that record.
    If not then there is some problem with FM or extracor.
    Let me know what happens.
    Thank-You.
    Regards,
    Vinod

  • 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

  • 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

  • Deltas in generic extractor

    I am trying to have more then one field in my generic extractor as a delta and so far i can only set one field as delta in my generic extractor....can someone help me in setting more than one field as a delta in my custom generic extractor ????

    The last delta performed will be stored in the ROOSGENDLM table....
    Use this value and then fetch the delta pointers you need..
    Here is how I would do it...
    In the FM :
    Look up value of DELTAID from table ROOSGENDLM for your datasource - this will give details of the last delta performed..
    Then use this value and search for the actual delta pointers in your custom table - then perform your delta logic within the FM...
    P.S The entry in ROOSGENDLM will come only after you init the datasource...

Maybe you are looking for

  • System generate PR for Stock material when it goes below specific quantity

    Hi Gurus, My requirement is that system should generate PR for Stock material when it goes below specific quantity eg. 5 Qty. I think it is possible through MRP in that respective material master but I am not getting exactly what data I need to maint

  • How to use class.forName

    I am trying to use Class.forName() from a string which is passed to me as argument. Class batchClass = Class.forName(args[1]); A jar file contains the class file for the string received above and I have this jar file in the manifest of my executable

  • Using SAP Business content with different client number

    Hi, I want to use and upload client numbers into SAP BW in an InfoObject as master data. The client number is for example with 9 figures. Can I use the SAP standard InfoObject 0Client for that or is there another one or should I define my own InfoObj

  • Locale problem

    Hi, I experience various locale problems on Solaris 10. One of them relates to the thousand separator of the fr_CA locale : its value is A0 (hex) rather than a space. It can be easily reproduced by the following command : LC_ALL=fr_CA; export LC_ALL;

  • Outages of this site

    Being new to this site, I am wondering how frequent are maintenance outages? The last time was over a weekend, but Friday it looks like almost the whole workday for EST is affected. I had read somewhere in the forum that the site is being moved to se