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

Similar Messages

  • 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

  • What type of generic delta to use and what field?

    Dear BW Gurus,
    I am creating a generic datasource based on a view BSAK and BSIK (Accounts Payable tables). I am not able to determine what type of generic delta (numeric pointer, calender day or timestamp) should i use and what field in the table should it that be based on? All or any help is greatly appreciated.
    Thanks
    Raj

    CALDAY on field BLDAT (in both tables) seem an obvious candidate.
    Added - You will need help from functional people (or you can try it in ABAP forum) to determine which date field is updated with the system date when these tables are updated with SAP txns (some hint can be had by looking at the data)- the fields of interest would be -
    BUDAT
    BLDAT
    CPUDT
    It is almost certain that CALDAY is the only option you have for delta type, and one of these three fields will have to be chosen.
    Message was edited by: Ajay Das

  • Generic delta with function module

    Hi Gurus,
    Is it possible to create a generic DataSource with delta support using function module following the queue delta mechanism (u can get some function moduel in MCEX function group, and check the outbound delta queue before and after update in transaction smq1.
    I can store the delta data using qRFC and collective update mechanism. but I don't know how to create a generic data with delta and how to attach a rfc destination (& logical system) to the data source. The Source system information is stored in the table "ROOSGEN".  Is there any configuration setting required to do the same.
    Regards,
    Jugal

    Jugal,
    What I understand you to be asking is if it is possible to create a generic delta extractor which uses the delta queue. If this indeed is your question the answer is yes.
    First you need to create your data source so it is visible via tx RSA5 and need to make sure that the delta type (ie ABR, AIM)is set appropriately for the datasource.
    The issue however is determining from where you will associate your delta hook (when will you write to the queue)? I have in the past utilized BTE's, Business Transaction Events to write information out to the delta queue, you can see a list of available BTE's in your system via tx FINF.
    Once you find a place to write your deltas from you call the below FM with the appropriate datasource.
    RSC1_TRFC_QUEUE_WRITE.
    Once you have done this the standard BW extractor for deltas will pull the information from the delta queue. But from what I understand you just want to know how to associate the data with the delta and that is the FM listed above.
    Hope this helps,
    Cheers,
    Scott
    > Hi Gurus,
    >
    > Is it possible to create a generic DataSource with
    > delta support using function module following the
    > queue delta mechanism (u can get some function moduel
    > in MCEX function group, and check the outbound delta
    > queue before and after update in transaction smq1.
    > I can store the delta data using qRFC and collective
    > update mechanism. but I don't know how to create a
    > generic data with delta and how to attach a rfc
    > destination (& logical system) to the data source.
    > The Source system information is stored in the table
    > "ROOSGEN".  Is there any configuration setting
    > required to do the same.
    >
    > Regards,
    > Jugal

  • 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

  • Problem with functioning Generic Delta

    Hi Expert !
    I Have Created a Generic Delta and has Scheduled the Delta Load By Means of Process Chain In BI Side.
    Although it is showing Green(OK) status for the respected Request at PSA(saying No Data Exists FOR PSA) and ODS Lavel but no data is loaded at ODS.
    although the data for the same crieria is available in R/3 side.
    please share your idea what is reason behind........
    Regards
    Prakash

    Hii I have created Generic Delta On Function Module, also i had checked in RSA3 and it is showing data. Also I have checked the Function Module and the field on which i had created Delta, the Delta Parameters is coming.
    I am not able to find what actually the problem is........
    Please share your idea if you have any.
    Regards
    Prakash

  • Regarding generic delta.

    does any sap bw gurus know the answer to my doubt.
    i have created 3 views from mm tables (EBAN,MSEG,MKPF,GLPCA) AND FROM THESE 3 views i have created 3 generic data sorses in r/3 dev server and transported to r/3 quality server and loaded from r/3 qlty server to ods with full update mode in infopackage.
    now i want to load delta records for those geeric data sorses, what is the procedure. i have not selected the delta option while creation of data sorses but loaded into ODS with full update.now i want to get delta records, what is the process?
    Suppose i have selected generic delta and given some field to get delta records in r/3 dev server, does it effect in r/3 qualty server or do i need to transport same recquest or new recquest for delta from dev to quality server?
    this is very very urgent pls. points assigned.

    Hi,
    ODS may not let you load deltas if there are Full loads already loaded. So either you have to delete them or make them into Full repair using FM RSSM_SET_REPAIR_FULL_FLAG.
    This you can decide after talking to users, if they are ok with the data unavailability during the reload, you can delete these data.
    Then perform the changes (delta DS) in the DEV and transport it to QUAL.
    Then the usual procedure, replicate in BW, perform init load and start deltas.
    Hope this helps.
    Thanks,
    JituK

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

  • Problem in extracting Generic Delta Records

    Hi BW Experts,
    I have an issue. I am using Generic Extractor using View from Tables CATSCO and CATSDB. At the time of  Generic Delta, I am using the field PERNR(Personal Number) to use Generic Delta. I am using Time Stamp. For this I have selected Safety Interval Upper Limit 100 seconds.But now I am testing whether we get delta records or not. But I am not getting records to BW. They are changed in R/3. So please guide me whether I should use Calday or Time Stamp . How can  I get delta records to BW.For testing , I am executing InfoPackage immediately after changes in R/3 like for two or three minutes. Once I will be sure on getting records to BW, then I can move to Production where we execute process chain at 1:00 a.m
    there I can use Calday giving Safety Interval Upper Limit as 1 day. Considering the above factors please guide me .
    I will be thankful for solving my issue.

    PERNR doesn't contain a date right?  so timestamp tells the system PERNR is a date field...  That will never work.
    What kind of value does PERNR contain, is it an incremental value that adds up at every new entry?
    Generic delta needs a field that changes in a way that can be predicted.

  • Generic Delta: Init, Full Upload and Deltas...

    Dear All,
    Last week on 10.04.2014 I've created "Generic DataSource with Generic Delta" and used CalDay as Delta-Specific Field and lower limit kept to blank and upper limit to 1. On 11.04.2014 I've initialized the Delta with Data Transfer using Process Chain: Time 1:15 p.m (Note: Posting was on)
    see below screen shot:
    Result: Process Chain was scheduled to immediate and it executed and initialized the delta and brought records as well. See below screen shot of RSA7:
    Q: 1: Why generic delta current status is 10.04.2014, as I'v scheduled delta through process chain on 11.04.2014 @ 20:50: and why Total column is showing 0 records? Even I've checked Display Data Entries with Delta Repetition, but could not find any records?
    Following is the InfoPackages which I created for Delta Loads and used in another Process Chain for Delta scheduled (daily @ 20: 50).
    Following is the DTP used into Delta Process Chain:
    On 12/04/2014 when I checked my InfoCube, and found that same number of records being loaded again despite InfoPackage and DTP were created as Delta, see screen shot:
    On 12/04/2014 See below PSA table:
    On 14/04/2014 when I checked InfoCube and I saw deltas being loaded successfully: see below screen shot:
    On 14/04/2014 see below PSA table:
    On 14/04/2014 see below RSA7 BW Delta Queue Maintenance screen shot:
    Q: 2: Why am I unable to load the Delta records on the day(11/04/2014) when I initialized it with Data and why same number of records being loaded again on 11/04/2014?
    Q: 3: On 11/04/2014, around 1:15 p.m I've initialized Delta with Data successfully and the same day (11/04/2014) was my first load of delta records (Time: 20: 50), could this be a problem? as the posting period was on when I initialized and I tried to load the delta on the same day?
    Q: 4: Why the pointer is showing me Current Status: 12/04/2014 today and this time around I can find last delta records from "Display Data" option with Delta Repetition?
    Q: 5: Have I missed something in the design or data flow?
    Q: 6: How can I verify deltas records accuracy on daily basis; is it from RSA3?
    or How can I verify daily deltas with ECC delta records?
    Q: 7: What is the best practice when you load full data and initialized delta and schedule deltas for Generic DataSources with CalDay as delta specific field?
    I will appreciate your replies.
    Many Thanks!!!
    Tariq Ashraf

    I clearly got ur point.....But
               If i have situation like ....." I loaded the LO data from R/3 with Init delta......then i loaded 5 loads of delta too.......due to some error in data now i am trying to load all th data......In this case if i do Full upload it is going to bring all the data till 5 th delta load .......If i do Init delta again it is going to bring the same data as full upload..........In LO while loading both Full load or delta init load we need to lock R/3 users....I believe we can load delta even after full upload by using "Init delta without data transfer"............So that wont be the barrier....then what is the difference or how should i figure out which load should i do.............If i am wrong please correct me.......
    Thanks

  • Master Data-Generic Delta

    hello guys
    I have some doubts when it comes Generic Extraction of Master Data from a source system(say SAP R3) with possible deltas...
    1.I heard from my friend,that while working with Master Data Generic Extraction (involving deltas),we generally do FULL LOADS....itsnot a common practise to do initialisation and then delta update as in the case of Transaction Data...Is that true?
    I know that it varies from case to case,but generally speaking,how often do we do these FULL LOADS?
    2.Suppose,if I say,I will go the unusual way and choose to do Master Data Deltas exactly like we do with Transaction Data deltas(first initialisation with data transfer then delta updates now and then)....how do we choose if its time stamp or numeric pointer incase of Master Data fields....
    suppose,I want to set characteristic 'Location' as delta-field,what do I choose out of numeric pointer,calendar day and time stamp?and why should I choose it?
    how about incase of Characteristic 'Customer Phone number'?
    Thanks fr ur time
    S

    Hi ,
    In generic delta you can choose only one field as delta option ie whatever changes happens for a record thar field shold get updated only then you will get delta for those records.
    Choosing numeric pointer for text fields like location wont help for you. May be phone number you can try as numeric pointer if it is purely a number series which uses new numbers always.
    If you are choosing these fields whenever there in chamge in this fields you will get delta. No other change in the same record will be captured
    Thanks,
    Arun

  • EKBE table for Generic Delta

    Hi Gurus,
    Good Day to all. I just like to inquire some details for creating generic datasource with delta enabled. I have created a view table with fields from EKBE table, and created generic datasource that reads the view table I have created from EKBE, now it needs delta process with CPUDT as delta specific field name, seeing the data type of CPUDT, it is DATS with 8 length.
    I would like to assure if what will be use as marker of delta, timestamp utc, timestamp local, calendar day and numeric pointer?
    And if I use one of the above, what settings that needs to be use for the safety interval upper and lower limit?
    Thank you for your inputs and really appreciate it.

    Hi,
    use the CALDAY as a generic delta pointer.
    i would like to recommend as: Safety Interval for Upper Limit as 1 and Safety Interval for lower Limit as ZERO
    i think your are using the DSO as a staging layer no worry about duplicates.
    Thanks,
    Phani.

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

    Dear Expert
    I have a z Table consisting fields like company code , change date, etc.
    I have created a generic delta using change date as delta field.
    A program loads data to this table.
    Lets say I loaded all data for company code 1000 and there are other company code data I also need to load but have not done so.
    I replicate the datasource to BI 7.
    I have read guides on Generic delta and need clarification on its mechanism in more detail.
    ========
    1. Do we need to  Initialize Delta for Generic Delta?
    2. If  my infopackage used for the init is change date of yesterday, what happens when some days later, I load company code data 2000 into the z table and these data has change dates earlier than the init date?
    3. Does init work like this : lets say the data selection in the infopackage used for the init is :
    company code = 1000
    change date = yesterday.
    the 1st delta infopackage will be based on the change date of yesterday and the upper and lower limit?
    4. What if I subsequently load other company code data into the z table? How can these be loaded as delta by the existing delta? Or must there be another init? can this be done?
    5. Technically, if delta is loaded today, and 2 days later, I insert manually into z table a record having the same change date as the 1st delta change date.  How does the delta mechanism know about this? I seek clarification that this record will not be known by the delta and will not be picked up and loaded by the next delta infopackage because the change date is incremental and will never pick up and old change date and delta is based on change date selection.
    Hope you can enlighten me on the above doubts .
    Best regards
    Pascal

    Hi Pascal,
    1. Do we need to Initialize Delta for Generic Delta?
    Yes, you need to do init to capture the delta records.for this while designing you have to select Delta check box in data source maintenance screen.
    2. If my infopackage used for the init is change date of yesterday, what happens when some days later, I load company code data 2000 into the z table and these data has change dates earlier than the init date?
    The change date will be populated in Z table based on system, when you change any record today you won't get yesterday date.anyways in your question as change date is less than last delta run date it won't pick that records.
    3. Does init work like this : lets say the data selection in the infopackage used for the init is :
    company code = 1000
    change date = yesterday.
    the 1st delta infopackage will be based on the change date of yesterday and the upper and lower limit?
    The best practice is run the init with out any selections, unless when you have requirement that you need to create multiple init's on same data source.
    no need to give date selections in info package(already your delta is working on change date).If you need data for a particular company code, give company code other even do not give company code as selection.It will pick all the new or changed data from last delta run.
    4. What if I subsequently load other company code data into the z table? How can these be loaded as delta by the existing delta? Or must there be another init? can this be done?
    Do not give company code as selection in your delta info package.same delta IP will pick the data for all company codes.
    5. Technically, if delta is loaded today, and 2 days later, I insert manually into z table a record having the same change date as the 1st delta change date. How does the delta mechanism know about this? I seek clarification that this record will not be known by the delta and will not be picked up and loaded by the next delta infopackage because the change date is incremental and will never pick up and old change date and delta is based on change date selection.
    As i already told we cannot give change date manually, when you save a record this will be populated by system in the table.
    Delta settings for generic data source will be maintained in table ROOSGENDLM (here we will have last delta run time stamp on this data source).When you run delta next time, it will pick the data which was stored after delta time stamp.
    Regards,
    Venkatesh.

  • 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

Maybe you are looking for

  • The Verizon "Experience"

    Hello, I ordered a phone this afternoon off the Verizon Wireless page and though it was close to the end of the business day, I chose to pick it up at "my store" (mostly because Verizon stores open generally at 10am, WAY too late to do any business o

  • ITunes Slow Writing ID3 Tags From External Drive

    When adding files (music) located on my WD External Hardrive, and upon trying to add the album art, the process slows down... a lot. As opposed to when I add filed on my internal hardrive (from my laptop directly), which is a lot faster (seconds wher

  • Color Management in Java?

    How I can do Color Management to an Image in Java? Anybody can provide me sample code for Color Management? Color Management is working in Safari Browser.

  • WARNING MSG

    had my iphone with me out by the pool... it was on the side face down exposed to the sun... warning msg came up with a yellow triangle with an ! in the middle and the word temperature above it... seems to be working fine now... but was playing my ipo

  • Scanned to PDF, but pages are blank

    Hardware - iMac 2 GHz Intel Core 2 Duo - Scanner Brother MFC-J6910DW Software - Mac OS X 10.7.2 Using Preferences>Print & Scan>Open Scanner; settings: - Scan Mode: Document Feeder - Kind: Black & White - Resolution: 200dpi - Size: A4/A3 - Duplex - Fo