RSO2 - Generic Delta

Hello Guys,
  I have created a generic datasource using the rso2 transaction and I defined the aedat field (calendar day) as generic delta
my doubt as follow. When a new record is created it is transfered to bw, but if the same record is updated
I mean a numeric field like atnum. Is it transfered to bw as delta?
Regards,
Renato.

depending on the table, but aedat is normally the changed on date.
this date is only filled when the doc is changed. a newly created doc will have 00.00.0000 as changed on date.
so according to me you will only get changed doc not new ones.
options :
you can create a delta based on erdat. but this will not detect changed docs only new ones.
--> so you can create both and load to a dso (with overwrite). this way you'll have all new and changed records.
another option is to create a full datasource and use two infopackages:
a first one with aedat in eg last 7 days and another one with erdat in last 7 days. again load to a dso.
last (complicated) option : use a extractor based on a function module. in this case you need to handle the timestamp yourself in the code. you can search on the net for examples, as this has been discussed many times.
M.

Similar Messages

  • Problem in getting Generic Delta records to BW

    Hi BW Gurus,
    I have got one issues with which I have been struggling a lot for several days . i.e
    I am extracting data from R/3 using Generic Extractor (View) from CATSCO and CATSDB. At the time of delta, I tried using Personal  No with Time Stamp giving Upper limit as 1800 seconds. I executed Infopackage in BW immediately. But it didn't work out. So plz guide me how I can get Delta Records to BW. Or should I do any  necessary factors apart from these in Generic Delta Screen (RSO2).
    It is very urgent.
    I will be thankful for solving this issue.

    Hey I am "Intros" again,,
    I am sorry man for giving the wrong T-code mistakenly in my last reply..
    To solve the proble...the whole process is same what I told u before..
    But... you got to go to T-Code :  BD87   , then execute the IDocs manually to bring them in to BW
    identify your IDocs which are missing in Monitor screen, then goto BD87 and select those IDocs and click execute... )you can search the IDoc's based on selection conditions)
    I hope this will help u...
    cheers man..
    ---Intros

  • Doubt Reg Generic Delta "Safety Interval" Setting

    Hi Experts,
    I have a doubt regarding Setting "Safety Interval Upper Limit" and Lower limit in RSO2 for generic delta.
    What does this setting imply?
    If I do setting for calender day say both 1 then wht will be difference between delta before setting amd after setting?
    Plz explain in terms other tham help provided...
    Points will be awarded to say thanks..
    Thanks in advance,
    Sorabh

    Hi Sorabh,
    Here some SAP informations:
    Safety Interval Upper Limit of Delta Selection
    This field is used by DataSources that determine their delta generically using a repetitively-increasing field in the extract structure. The field contains the discrepancy between the current maximum when the delta or delta init extraction took place and the data that has actually been read. Leaving the value blank increases the risk that the system could not extract records arising during extraction. Example: A time stamp is used to determine the delta. The time stamp that was last read is 12:00:00. The next delta extraction begins at 12:30:00. In this case, the selection interval is 12:00:00 to 12:30:00. At the end of extraction, the pointer is set to 12:30:00.  A record - for example, a document- is created at 12:25 but not saved until 12:35. It is not contained in the extracted data but, because of its time stamp, is not extracted the next time either.
    For this reason, the safety margin between read and transferred data must always be larger than the maximum length of time that it takes to create a record for this DataSource (with a time stamp delta), or it must display an interval that is sufficiently large (for determining delta using a serial number).
    Safety Interval Lower Limit
    This field contains the value taken from the highest value of the previous delta extraction to determine the lowest value of the time stamp for the next delta extraction. For example: A time stamp is used to determine a delta. The extracted data is master data: The system only transfers after-images that overwrite the status in the BW. Therefore, a record can be extracted into the BW for such data without any problems.
    Taking this into account, the current time stamp can always be used as the upper limit when extracting: The lower limit of the next extraction is not seamlessly joined to the upper limit of the last extraction. Instead, its value is the same as this upper limit minus a safety margin. This safety margin needs to be big enough to contain all values in the extraction which already had a time stamp when the last extraction was carried out but which were not read. Not surprisingly, records can be transferred twice. However, for the reasons above, this is unavoidable.
    Extracted Data Delta Type
    The system uses the delta type to determine how extracted data is to be interpreted in BW, and into which data targets it can be posted.
    A distinction is made between the following:
    1. Additive delta
    The key figures for extracted data are added up in BW. DataSources with this delta type can supply data to ODS objects and InfoCubes.
    2. New status for changed records
    Each record to be loaded delivers the new status for the key figures and characteristics. DataSources with this delta type can write to ODS objects or master data tables.
    Check also examples in "How to... Create Generic Delta" under www.service.sap.com/bi.
    Ciao.
    Riccardo.

  • Urgent: Problems in Generic Deltas by Function Module

    Hi BW Experts,
    My requirement is to extract text from CRM to BW using Zfunction module, copy of RSAX_BIW_GET_SIMPLE_DATA
    which works fine for full loads but the problem arises only when i go for generic deltas. My code in FM for Deltas is:
    LOOP AT s_s_if-t_select INTO l_s_select.
    CASE l_s_select-fieldnm.
    WHEN 'ZDATE'.
    s_date_from = l_s_select-low.
    s_date_to = l_s_select-high.
    WHEN OTHERS.
    ENDCASE.
    ENDLOOP.
    IF s_date_from IS INITIAL.
    s_date_from = '20060401'.
    ENDIF.
    IF s_date_to IS INITIAL.
    s_date_to = '99991231'.
    ENDIF.
    OPEN CURSOR WITH HOLD S_CURSOR FOR
    SELECT * FROM STXH
    WHERE TDOBJECT = 'CRM_ORDERH'
    AND TDID = 'A002'
    AND TDSPRAS = sy-langu
    and TDLDATE between s_date_from and s_date_to
    or tdfdate between s_date_from and s_date_to.
    ENDIF.
    FETCH NEXT CURSOR S_CURSOR
    APPENDING CORRESPONDING FIELDS
    OF TABLE wa_stxh
    PACKAGE SIZE S_S_IF-MAXSIZE.
    TDFDATE is creation date and TDLDATE is changed on
    My extract structure contains Zdate(TDLDATE), Ztext1,2,3, Key field and langu in RSO2 I have selected calday in generic delta and Zdate as field Nm and upper limit as 1 and lower limit as space in settings and new status for changed records button.
    Did I missed something because when i check in RSA7 i didnot see any changed records under totals column and i tried to load without it into BW than i didnot received single record evenafter changes.Would anyone suggest me the good solution for it I appreciate it in advance. I have seen lot of posts in SDN but I didnot find this type of secenario anywhere.
    Thanks in advance
    Regards
    Kishore

    Kishore,
    go through the thread... which i provided for Generic DS using function for CRM Texts.
    Re: Urgent: Extraction through function module
    Any questions please let me know. If you have any questions update the thread with your mail id.
    Replace the code with ...
    LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'ZDATE'.
    MOVE-CORRESPONDING L_S_SELECT TO L_R_TDLDATE.
    APPEND L_R_TDLDATE.
    ENDLOOP.
    OPEN CURSOR WITH HOLD S_CURSOR FOR
    SELECT * FROM STXH
    WHERE TDOBJECT = <Text Object>
    AND TDID = <Text ID >
    AND TDSPRAS = sy-langu
    AND (TDLDATE IN L_R_TDLDATE
    or TDFDATE IN L_R_TDLDATE).
    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 wa_stxh
    PACKAGE SIZE S_S_IF-MAXSIZE.
    L_R_TDLDATE will be calculted by the system. Internally, system will save the Last Delta date(you need to enable this field for Generic delta).
    all the best.
    Regards,
    Nagesh Ganisetti.

  • How to Create a Generic Delta Datasource

    Hi All,
    I have created a extractor thru RSO2 using a table.
    The table consist of a time field which i set it to the timestamp field. After initlializing the delta upload successfully, when i run delta upload, no data has been uploaded even having made changes to some of the records.
    Why is it so? Kindly advise.
    Does the timestamp field have to be a datetime field or it can be any field of any data type?
    Thanks in advance.

    Hello Bill,
    I have checked RSA7 and my datasource has the status of green. I have set the upper level to <b>900secs</b>. After the init load, i waited for more than <b>900secs</b> before i do another load but it still comes out as 0 records. Is there anything else i need to do?
    I'd like to clarify one thing, is the timestamp field's data type suppose to be a decimal of length 15 field? Mine is currently a <b>DEC15</b> field which is also a packed field. When i used <b>F1</b> at the generic delta screen, it told me that the timestamp field should be a <b>dec15</b> field. Is it correct?
    Thanks, Bill!
    Message was edited by: Shunhui Chua

  • Generic Delta extraction by Function module issue

    Hello Experts,
    Please help !!!
    I have problem for delta extraction by Function module.  For the full load, I wrote function module based on RSAX_BIW_GET_DATA_SIMPLE. It works fine.
    But I would like to have the delta load enabled. Therefore, I modified the datasource, add a delta specific field u2018ztimestampu2019, which type is calendar day.
    Then I create a function module based on template u2018RSAX_BIW_GET_DATAu2019, as this support the upload mode. But when I test this datasource in RSA3, no matter itu2019s full load or initial delta load, it always send me an error, u201CErrors occurred during the extractionu201D.
    I had some debug, and found that there is no value  for i_isource when my function module is called. Therefore it raised the exception.
    But I do not have the chance to debug my code for the delta logic, can somebody help to check?
    I also check the entries in ROOSOURCE,
    For my datasource ZTRNREC_FM_DELTA, The DELTA value is u2018AIEu2019, and extraction method is u2018F2u2019, should I change them to DELTA= u2018Du2019 and extraction method to u2018F1u2019? Where to change?
    FUNCTION ZRSAX_TRAININGREC_DELTA.
    ""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 STRUCTURE  ZTRN_REC_TIME 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
    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,
              S_S_IF TYPE SRSC_S_IF_SIMPLE,
              S_COUNTER_DATAPAKID LIKE SY-TABIX.
    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 'ZTRNREC_FM_DELTA'.
          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 'D'.
          WHEN 'R'.
          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
        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.
    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
      LOOP AT G_T_SELECT INTO L_S_SELECT
            WHERE FIELDNM = 'ZTIMESTAMP'.
      ENDLOOP.
          IF G_COUNTER_DATAPAKID = 0.
            IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
            OPEN CURSOR WITH HOLD G_CURSOR FOR
                SELECT (g_t_fields)
                FROM ZTRN_REC_TIME.
            ELSE.
              OPEN CURSOR WITH HOLD G_CURSOR FOR
                SELECT (g_t_fields)
                FROM ZTRN_REC_TIME
                WHERE ZTIMESTAMP >= L_S_SELECT-LOW
                  AND ZTIMESTAMP  <= L_S_SELECT-HIGH.
            ENDIF.
          ENDIF.
      FETCH NEXT CURSOR G_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR G_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
      ENDIF.
    ENDFUNCTION.
    I found some similar issue in this forum by link
    Generic Extractor Delta Function Module code, but still I could not get clear answer.
    Can you please help me:
    1)     why there is no value for i_source , how to fix it?
    2)     For the delta logic for ztimestemp, is it correct?
    3)     Need I modify the entries in ROOSOURCE ?
    Thanks a lot !!!

    Hello Andre,
            Thanks a lot for your help. I did some change , but still does not work. Could you please help check.
    Now the source code are the following, It's based on the RSAX_BIW_GET_DATA_SIMPLE, as you confirm that this also supply the update mode (full, initial delta, delta).
    FUNCTION RSAX_BIW_GET_DATA_TRAININGREC1.
    ""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 STRUCTURE  ZTRN_REC_TIME OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    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.
    Select ranges
    RANGES:
            L_R_ZTIMESTAMP FOR ZTRN_REC_TIME-ZTIMESTAMP.
    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 'ZTRNREC_FM'.
          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.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'ZTIMESTAMP'.
          MOVE-CORRESPONDING L_S_SELECT TO L_R_ZTIMESTAMP.
          APPEND L_R_ZTIMESTAMP.
          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.
         IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
            OPEN CURSOR WITH HOLD S_CURSOR FOR
            SELECT (S_S_IF-T_FIELDS)
            FROM ZTRN_REC_TIME.
            ELSE.
            OPEN CURSOR WITH HOLD G_CURSOR FOR
            SELECT (S_S_IF-T_FIELDS)
            FROM ZTRN_REC_TIME
            WHERE ZTIMESTAMP >= L_S_SELECT-LOW
            AND ZTIMESTAMP <= L_S_SELECT-HIGH.
         ENDIF.
        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.
    I think it already includes the important statements you suggested.
    I test this FM in RSA3, for the Full load mode, it works fine. Also if I checked the debug mode in execution , it will stop in the code and let me debug.
    But when I choose other mode, like 'initializion of the delta transfer'  or simulation of initial delta, I always get error 'error occurs  during the extraction' .. even I choose debug mode, but it could not enter the code for debug..
    Till now I did not see any parameter or value for the upload mode..
    Another questions is that, in RSO2, I define Ztimestamp as my delta field.. But , can I add other field as selection condition in the datasource definition, and has its range table in this function module ?
    Should I change the entries in ROOSOURCE for this datasource ??
    Please let me know your feedback, do you have some concret example for generic delta extraction ?
    Thanks a lot !

  • Generic delta extraction using function module

    Hi.
    I have a generic datasource , extraction being performed by a function module. The extraction works fine in full update mode. The extract structure has a timestamp field.
    I have enabled generic delta using this field(i.e., marked this field in RSO2). I understand that with this setting, I should be able to get delta data when I do a delta request. But it does not seem to happen.
    I checked the ROOSPRMSC table for the last(local) timestamp stored there. Now when I do the delta upload I expect to see only those records which are younger than the stored timestamp of last upload.
    But I still get the entire set of records.
    Questions are :
    1. Do I need to explicitly code for fetching the delta in the extractor ?
    2. If not, what could be the reason why generic delta is not working ?
    Thanks and regards,
    Anuradha

    Hi GFV,
    I read-up all the forum entries on this topic but could not find anything specifically dealing with my problem. I have browsed through the how-to paper on generic delta as well.
    I am quite sure that we don't need any special coding in the extrator for generating delta generically. Even the how-to paper does not mention that.
    I have used the FM RSAX_BIW_GET_DATA_SIMPLE as a template
    for my extractor(as suggested by F1 help in RSO2). This FM does not even have the i_updmode flag in its interface. 
    Thus this function module always does full extraction and I expect the system to take care of delta using the timestamp field.
    Are these assumptions incorrect ?
    Regards,
    Anuradha

  • What are the disadvantages of generic delta extraction

    Hi all,
    what are the disadvantages of generic delta extraction.
    how function module generic extraction works.
    Thanks,
    Madhu.

    hi madhu,
    Pls refer ths,To learn more about Generic Extraction pls read BW350 book.
    Gereric Extraction can be done in 3 ways.
    If you go to transaction RSO2 in R/3 side, provide tech name for data source and click create.
    you will get the 3 options.
    1)From a DB Table
    2)From a DB View
    3)From Functional module/ Infoset Query
    in first option you can directly give a standard or custom build talbe name. in second option you can select the necessary fields from more than one talbe(eiter standard or custom). In third option you will create a function module or Query to extract data. When creating function modules you can use standard function modules as a template e.g. RSAX_BIW_GET_DATA_SIMPLE.
    see weblog : /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    If you want to enable delta for generic extractor you choose the option delta and provide necessary settings.
    Generic extraction is when your extraction is not satisfied by either BC or LIS/LO. It can be using a view / query/table/FM
    Here the changed records can be isentified by :
    1. Based on the date of creation or last change ( Delta based on 0Calday)
    2. Based on the record number ( Numeric Pointer )
    3. Based on time of change ( Timestamp)
    real time examples would be
    1. Master Record creation like customer ID creation
    2. Timesheets in SAP PS
    3. Invoive details / Sales Order Details.
    Pls check this web logs for clear Idea.
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    Have a look at these threads too.
    Tables
    Transfer Structure
    The steps for creating extractor using Function Module.
    1. Create new Function group (if you have already not done so) in Se80
    2. Copy Function module "RSAX_BIW_GET_DATA_SIMPLE" with suitable name.
    3. Change the code that populate data.
    Following table may give you the guideline for parameters.
    Parameter Description
    I_REQUNR (import) BW provides this request identifier. It is a system-generated identifier in the form REQU_XXXXXX. BW uses this same identifier in all function module calls that relate to a single load.
    I_DSOURCE (import) The name of the generic extractor
    I_MAXSIZE (import) The maximum number of records that BW expects to be in each data packet
    I_INITFLAG (import) A Boolean flag that indicates if this is the initialization (first) call to the function module
    I_READ_ONLY (import) A test flag not needed in most extraction scenarios
    I_T_SELECT (table) This table holds any selections from the BW InfoPackage. The function module should examine these selections and only return data that matches the selections.
    I_T_FIELD (table) This table holds the fields that BW requests
    E_T_DATA (table) The function module fills this table with data records. These records then return to BW as data packets. This table has the same structure as the extract structure defined in the generic DataSource.
    NO_MORE_DATA (exception) The function module raises this exception when no more data is available
    ERROR_PASSED_TO_MESS_HANDLER (exception) The function module raises this exception if an error occurred during the extraction. It alerts BW to check for error logs.
    Change following code to put the selection fields
    Select ranges
    RANGES: L_R_CARRID FOR SFLIGHT-CARRID,
    L_R_CONNID FOR SFLIGHT-CONNID.
    Change following to populate data
    OPEN CURSOR WITH HOLD S_CURSOR FOR
    SELECT (S_S_IF-T_FIELDS) FROM SFLIGHT
    WHERE CARRID IN L_R_CARRID AND
    CONNID IN L_R_CONNID.
    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.
    Some more links:
    Re: functionmodule
    Re: FM for G. extractor
    with hopes
    Raja Singh

  • Appended field is missing in field list of generic delta

    hi all,
    i appended the generic extract structure in RSA6 and uncheck the hide box.
    now im unable to see the zz field in the field list in rso2 to set up generic delta, any ideas...
    Thanks,
    GK

    Hi,
    First check the asset Scr.layout rule for asset class by using path -
    Spro>Financial Accounting>Asset Accounting>Organizational Structures>Asset Classes-->Define Asset Classes
    Select your asset class and check - asset Scr.layout rule .
    Then go to -
    Spro>Financial Accounting>Asset Accounting>Master Data>Screen Layout-->Define Screen Layout for Asset Master Data
    Click on - Define Screen Layout for Asset Master Data
    Select your Screen layout which you got earlier. In Logical Field group select 'Inv. account assignment'. and double click on field group rule.Then make required changes in 'Investment Order' as required - Required, optional, display.
    Then check asset master data in AS02.

  • Generic delta extractors without timestamp!

    Hi,
    For a certain requirement, I have to develop generic extractors which should be delta capable. But unfortunately the source tables donu2019t have a timestamp; hence I canu2019t create delta enabled generic extractors using timestamp. Moreover most of the tables are standard SAP tables, which are used across different modules so it is not possible to introduce timestamp in these tables.
    I am working on extractors for Business Partners in SAP Transaction Banking.
    I have got couple of options:
    1) To use the change pointers by activating CNS service in source system. It is possible to activate the service and set up the segments for standard and custom tables, from where I need to extract the data.
    2) To develop the function module and create the generic extractors using delta queue functionality.
    Issues: In the first approach, I have created an extractor and it is possible to recognize the changed records. But the issue is I need some kind of flag which tracks the information regarding last successful delta extraction for an extractor based on change pointers and standard SAP table. I am not sure how does standard extractors maintains this status and picks up new/changed records in delta functionality. Not sure how to achieve this.
    In second approach I am not sure if it is possible to create generic extractors using delta queue and what are the complexities involved.
    If someone has already worked on these areas, any inputs are most welcome.
    Thanks and Regards,
    Amit

    Hi Amit,
    I haven't worked on SAP Transaction Banking but I hope you can get most of Business Partner data in standard extractors. Try to look for some.
    If you have to go for Generic extractor. there are 2 options:
    1. Use BTE
    [How To Create GDS which uses Delta Queue|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/10b68b99-022e-2a10-999d-c4dc9ec24a59]
    2.Use FM based GDS
    [How to Create Generic Delta|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33]
    [Generic Delta Using Funtion Module |Re: Generic Delta Using Funtion Module]
    You can also look for some numeric pointer from RSO2.
    Hope it will help you...
    Regards,
    Ashish

  • Difference between Generic extraction and Generic Delta

    Hi Experts,
    Pleasee give of some information below  query:
    1) Difference between Generic extraction and Generic Delta.
    2) How to achieve Generic delta.
    3) When we go for Generic delta instead of generic extraction.
    Advance ThankU. Points vl be assigned.
    Thanks,
    Ragu.R

    Hi,
    Generic delta is the delta load done using Generic DS.
    Generic extraction
    Usage:
    1. When the standard extractors are not supporting the extraction what you need. If SAP does not have a standard extractor for your need to get data from R3, you would have to go for generic extractor.
    2. If you create a custom object say by combining certain base tables in R3 say custom tables ZTAB1 and ZTAB2. These two tables are not SAP provided tables and there will not be any standard extractors. So cases like this you will have to go for generic extractors.
    How:
    You have to use RSO2 transaction and you can also set delta based on, one of the three characteristics such as timestamp, calday or pointer (a sequence no).
    once you create it and activate it. The extractor will be available in ROOSOURCE - (table in R3 where all the data sources are available).
    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
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    Generic Extraction via Function Module
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    thanks,
    JituK

  • Generic delta queue for CDHDR

    Hi,
    Has anyone used the function module to create a generic delta queue to work for extracting data from tables CDHDR and CDPOS when using the UDATE as the change date? I was able to find an alternate solution to extracting the data from these tables, but the solution is not approved, and it is suggested to use the function module and use a changed date to create the generic delta queue from RSO2.
    Please advise.
    Thank you

    Hi Siggi,
    Thank you for your insight on this. Well, UDATE is the changed date in the table CDHDR, and I am wondering if that should be used to provide to the RSO2 setup and set the interval to 1 day. I am extracting this UDATE to my extract structure.
    Here is what I have in the FM and I am loading right now. I provided the date range to the 'Data Selection' tab for a complete year, which should only be 100K records but it is now extracting up to 17M records and still going. I am not sure if I should stop the load because it seems that it is loading the complete table CDHDR which is 80M.
    Here is my code form my FM:
    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 = 'UDATE'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_UDATE.
            APPEND L_R_UDATE.
          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 CDHDR
                                  WHERE UDATE  IN L_R_UDATE
                                  AND   OBJECTCLAS ='ORDERBUCH'.
      SELECT OBJECTID CHANGENR USERNAME UDATE UTIME OBJECTCLAS TCODE
             FROM CDHDR
          WHERE UDATE  IN L_R_UDATE
          AND   OBJECTCLAS ='ORDERBUCH'.
    I have the other SELECT commented out because I was getting an error dump on the R3 side saying "One of the field names in the SELECT clause was not recognized.", referring to statement "OPEN CURSOR WITH HOLD S_CURSOR FOR", so I am using the other SELECT that is not commented out.
    I think I am following what you are referring to about the SELECT but not quite completely. What would you suggest to rewrite for the UDATE issue to process both the Full and Delta data?
    Thank you

  • Generic delta creation with Extractor Starter Kit - BW Datasource option

    Hi Rajesh, Rohit,
    As per the wiki, http://wiki.sdn.sap.com/wiki/display/CPM/FAQ-DataExtractionforSpendPerformance+Management, the question:-
    Do these starter kits have any support for delta (periodic data updates) after the initial load is completed?
    A. Yes. Deltas are available (for all source objects that support delta mechanism) in both of the extraction options. You don't need to reload the full set of data, when you perform the periodic data updates.
    I understand you can use the date range but this in my view is still a full load.  We understand that you can create your own generic datasource based on the generated function module generated by generating the object, for e.g PO.
    We have tried to do this for the object PO, thus the following:-
    rso2 > create a new transaction datasource > base on generated datasource (Z_SADSERPPO) and use it's fm and extract strucutre :- Z_SAERPPO_DS fm , ZEXTR_ERPPO extr structure
    When we goto to create a generic delta based on DATE_RANGE we get the error message ::-
    Z_PDPOTEST: TABLES-paramter E_T_DATA for extractor Z_SAERPPO_DS is missing
    Can you create a blog around this as we understand other customers have managed to create these deltas?
    Best regards,
    Pom

    Hi Claudia,
    That's fine, please continue to use the Z_SA_DEPD to generate the datasource.  If you then do a rsa2 on this datasource, you can see the underlying function module and the extract structure for this which is also fine.
    The bizarre thing is that through rso2 for this generated extractor, you cannot see the fm associated for this, hence why the generic delta is not working.
    What we thought of doing and in line with the sap recommendation was to create a new transaction datasource from tcode rso2 and base it on the above function module and extract structure, but when we goto choose the date_range as the generic delta, it doesn't work and gives the error.
    Am still waiting an answer.
    Will keep you posted.
    Thanks,
    Pom

  • Reg. Generic delta using fun module

    Hello Experts,
    I am creating function module for generic delta (both Full, Delta) using RSAX_BIW_GET DATASIMPLE. My generic field is AEDAT.
    When I check this function module, there is no logic to maintain Delta load excapt Full. Where as this Delta functionality is available in another function module RSAX_BIW_GET_DATA. Now my question is:
    Can we use RSAX_BIW_GET DATASIMPLE for Delta load also?
    If yes, How to maintain delta based on AEDAT field?
    Do we need to maintain this Delta specific field AEDAT in Extract structure?
    Can anybody please clarify my doubts.....
    Thanks in advance,
    Zak.

    Hi,
    Please check the blog:
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    Also check :
    Re: Delta update - rso2
    -Vikram

  • WHAT IS GENERIC DELTA

    Please  explain me what is generic delta and how to create generic datasource for transaction data?

    Hi,
    Generic extraction
    Usage:
    1. When the standard extractors are not supporting the extraction what you need. If SAP does not have a standard extractor for your need to get data from R3, you would have to go for generic extractor.
    2. If you create a custom object say by combining certain base tables in R3 say custom tables ZTAB1 and ZTAB2. These two tables are not SAP provided tables and there will not be any standard extractors. So cases like this you will have to go for generic extractors.
    3. FI-SL requires generic extractors.
    How:
    You have to use RSO2 transaction and you can also set delta based on, one of the three characteristics such as timestamp, calday or pointer (a sequence no).
    once you create it and activate it. The extractor will be available in ROOSOURCE - (table in R3 where all the data sources are available).
    Steps
    Log on sap R/3.
    Step 1. create a table or view for generic extraction in se11.
    Step 2. Goto  t-code RSO2
    Step 3. Here u have to decide whether to extract transaction data or master data attributes or texts.
    Step 4. suppose if u have opted for transaction data,then give name in the column ex:ztd_m(data source name)
    Step 5. select create button,this will take u to another screen.
    Step 6. Here u have to decide from which application component u r extacting data.Ex: SD,MM,..
    Step 7. in this screen u have to fill short disciption,medium,long( these r mandatory).
    Step 8. then U have to Table name or view name which u have created in se11.
    Step 9. I f u want to maintain generic delta then u can select generic delta in top left hand side corner.
    Step 10. in next screen u have to give some field which is primary key.
    step 11. here u to specify whether time stamp or cal day or numeric pointer depending on u r requirement.
    step 12. then u have to specify  whether new status for changed records or additive delta.
            If u choose additive delta ,then u have to load data to infocube or ods object.
            If u choose new status for changed records, then u to load data  to ods object only.
    Step 13. then save it.
    Step 14. then logon to sap bw ,then replicate the data source then as usuall.
    Refer:
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d3219af2-0c01-0010-71ac-db
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b0
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b0
    http://help.sap.com/saphelp_nw04/helpdata/en/3f/548c9ec754ee4d90188a4f108e0121/content.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    Thanks,
    JituK

Maybe you are looking for

  • How to connect my mac to tv

    How to connect my mac to tv

  • W530, questions about adding additional RAM

    My current setup came with the factory optional 2x 8gb Samsung DDR3 1600mhz RAM. I recently purchased gskill ripjaws 8gb stick ( 1.35V model). My computer recognizes the ram is installed however mentions that the new ram is unusable.  I have the i7-3

  • Can I filter search by authorisation group?

    We have 5 sales orgs e.g. Z001, Z002, Z003, Z004, Z005. Each employee belongs to one sales org only. When the user searches on accounts I want to filter the search by the sales org the employee belongs to. To test this I maintained the business partn

  • Open issues for a user

    Dear experts Few users are needed to shift from one Organisation to other Organisation witing the EBP Organisation. In this case, already few open PO's are there which are created by that user. Changing the user from one org to other org will effect

  • Sign in difficulties - Question

    Each time I try and sign in using my valid email and password, the screen "thinks" for a few seconds and then comes back with "You are now signed out".  Any ideas?