Generic datasource with Delta queue

Hi All,
I 've created a generic datasource on prices tables A* and KONP. Next, I used HowTo document "create generic datasource that uses delta queue", finding the right BTE that could catch prices modification. Up to this point, everything works fine.
I've extracted an Init delta to BW and now, on R/3, in RSA7, I can see a delta queue for my generic datasource.
When I modify price conditions in VK12, BTE works fine and I can see the counter in RSA7 increasing. I also can see new entries in table TRFCQOUT with status READY. (either in SE16 or in SMQ1 )
The problem is :
- in RSA7, if I want to display the posted data, system returns an empty list (whereas the counter is different from 0)
- when I run a delta InfoPackage, no data is sent to BW, but in table TRFCQOUT, status has been changed to READ for entries that previously had status READY (and old entries that had status READ due to a previous delta upload are deleted)
Does anyone has any idea about the reason of the issue ?
Thanks for any help
AJ

Sure, I can.
The problem was in the specific coding that update the delta queue : not all the fields were updated and some of these fields were used as selection criteria in th delta infopackage...
in RSA7, when you try to see the data in the queue, the system only shows you the records that match the selection criterias of your delta IP...so in our case, because of those empty fields, no records were selected...
AJ

Similar Messages

  • Generic Datasource with Delta and functionmodule

    Hi together,
    who can help me ??
    Ihave created a generic datasource with function module and
    delta.
    the extractor runs well while i use full update and also initialization.
    If i start the delta extraction, the extractor crashed with short-dump.
    the message is SAPSQL_INVALID_FIELDNAME
    What can i do, and what is wrong.
    regards
    thorsten Weiss

    Hi Roberto,
    here is the code from the function-module:
    FUNCTION zbw_mm_get_eket.
    ""Lokale Schnittstelle:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SBIWA_S_INTERFACE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SBIWA_S_INTERFACE-ISOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SBIWA_S_INTERFACE-MAXSIZE DEFAULT 1000
    *"     VALUE(I_INITFLAG) TYPE  SBIWA_S_INTERFACE-INITFLAG OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SBIW_BOOL DEFAULT SBIW_C_FALSE
    *"  TABLES
    *"      I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"      E_T_DATA OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
      INCLUDE lrsalk01.
    DataSource for table EKET
      TABLES: zv_mm_eket.
    interne Tabelle für Bearbeitung
      DATA:   itab_0 TYPE TABLE OF zstr_eket WITH HEADER LINE.
      TYPES: BEGIN OF typ_categ,
              j_4kbwef    TYPE atnam,
              /afs/bwel   TYPE j_4kbwef,
             END OF typ_categ.
      DATA: l_s_data_eket  TYPE zstr_eket,
            ld_cat_struct  TYPE j_4kcsgr,
            lt_cat_fields  TYPE TABLE OF j_4kcif001,
            ls_cat_fields  TYPE j_4kcif001,
            ls_mara        TYPE mara,
            l_tabix        LIKE sy-tabix,
            itab_cat       TYPE TABLE OF typ_categ ,
            ls_cat         TYPE typ_categ,
            h_feldsize1(8)        TYPE c,"wegen Typ-konflikt im FB
            h_feldsize2(8)        TYPE c."wegen Typ-konflikt im FB
    Auxiliary Selection criteria structure
      DATA: l_s_select TYPE rsselect.
    Maximum number of lines for DB table
      STATICS: s_t_select     LIKE rsselect OCCURS 0 WITH HEADER LINE,
               s_t_fields     LIKE rsfieldsel OCCURS 0 WITH HEADER LINE,
    counter
              s_counter_datapakid LIKE sy-tabix,
    cursor
              s_cursor TYPE cursor.
    Select ranges
      RANGES: l_r_ebeln       FOR zv_mm_eket-ebeln,
              l_r_ebelp       FOR zv_mm_eket-ebelp,
              l_r_bsart       FOR zv_mm_eket-bsart.
    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 'ZDS_V_MM_EKET'.
          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
                      ' function modul was created for DS ' &
                      'ZDS_V_MM_EKET"!'.
            "message variable 2
            RAISE error_passed_to_mess_handler.
        ENDCASE.
        APPEND LINES OF i_t_select TO s_t_select.
    Fill parameter buffer for data extraction calls
       S_T_SELECT-REQUNR    = I_REQUNR.
       S_T_SELECT-DSOURCE   = I_DSOURCE.
       S_T_SELECT-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_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_t_select INTO l_s_select WHERE fieldnm = 'EBELN'.
            MOVE-CORRESPONDING l_s_select TO l_r_ebeln.
            APPEND l_r_ebeln.
          ENDLOOP.
          LOOP AT s_t_select INTO l_s_select WHERE fieldnm = 'EBELP'.
            MOVE-CORRESPONDING l_s_select TO l_r_ebelp.
            APPEND l_r_ebelp.
          ENDLOOP.
          LOOP AT s_t_select INTO l_s_select WHERE fieldnm = 'BSART'.
            MOVE-CORRESPONDING l_s_select TO l_r_bsart.
            APPEND l_r_bsart.
          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_t_fields) FROM zv_mm_eket
          WHERE
          ebeln      IN               l_r_ebeln           AND
          ebelp      IN               l_r_ebelp         AND
          bsart    IN             l_r_bsart.
        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 i_maxsize.
        FETCH NEXT CURSOR s_cursor
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE itab_0
                   PACKAGE SIZE i_maxsize.
        LOOP AT itab_0 INTO l_s_data_eket.
          l_tabix = sy-tabix.
    Lesen Erstellungsdatum aus EKKO
          SELECT SINGLE aedat FROM ekko INTO l_s_data_eket-sydat
                         WHERE ebeln = l_s_data_eket-ebeln.
    Lesen Partner aus EKPA
          SELECT SINGLE lifn2 FROM ekpa INTO l_s_data_eket-plief
                         WHERE ebeln = l_s_data_eket-ebeln AND
                               ebelp = l_s_data_eket-ebelp AND
                               ekorg = l_s_data_eket-ekorg AND
                               werks = l_s_data_eket-werks .
          IF NOT l_s_data_eket-matnr IS INITIAL .
    *A Lesen material für Kategoriestruktur j_4kcsgr(F001 oder R002)
            CLEAR ls_mara.
            CALL FUNCTION 'J_3A1_LESEN_MARA_SINGLE'
                 EXPORTING
                      i_matnr         = l_s_data_eket-matnr
                 IMPORTING
                      e_mara          = ls_mara
                 EXCEPTIONS
                      param_not_valid = 1
                      OTHERS          = 2.
            IF sy-subrc NE 0.
            ENDIF.
    *E Lesen material für Kategoriestruktur j_4kcsgr(F001 oder R002)
    *A Aufsplitten Bestandskategorie
            REFRESH lt_cat_fields.
            CALL FUNCTION 'J_4KG_SPLIT_CAT'
              EXPORTING
                client                            = sy-mandt
                csgr                              = ls_mara-j_4kcsgr
                cat_appl                          = 'S'
                cat_value                         = l_s_data_eket-j_4kscat
      NECESSARY_SPECIFIED               = ' '
              TABLES
                cat_fields_tab                    = lt_cat_fields
              EXCEPTIONS
                no_category_structure_found       = 1
              OTHERS                            = 2.
            IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            ELSE."sy-subrc <> 0
    Verarbeitung der Ergebnisse
              LOOP AT lt_cat_fields INTO ls_cat_fields.
                IF ls_cat_fields-j_4kbwef EQ 'BW_CAT_SCONFIG'.
                  l_s_data_eket-zz_bwel_sconfig = ls_cat_fields-j_4kcatv.
                ENDIF.
                IF ls_cat_fields-j_4kbwef EQ 'BW_CAT_CONFIG'.
                  l_s_data_eket-zz_bwel_config = ls_cat_fields-j_4kcatv.
                ENDIF.
                IF ls_cat_fields-j_4kbwef EQ 'BW_CAT_COUNTRY'.
                  l_s_data_eket-j_3abwel_country = ls_cat_fields-j_4kcatv.
                ENDIF.
                IF ls_cat_fields-j_4kbwef EQ 'BW_CAT_COUNTRYGRP'.
                  l_s_data_eket-zz_bwel_coungrp = ls_cat_fields-j_4kcatv.
                ENDIF.
                IF ls_cat_fields-j_4kbwef EQ 'BW_CAT_STOCKTYPE'.
                  l_s_data_eket-zz_bwel_stktype = ls_cat_fields-j_4kcatv.
                ENDIF.
                IF ls_cat_fields-j_4kbwef EQ 'BW_CAT_ORDER'.
                  l_s_data_eket-zz_bwel_order = ls_cat_fields-j_4kcatv.
                ENDIF.
                IF ls_cat_fields-j_4kbwef EQ 'BW_CAT_QUALITY'.
                  l_s_data_eket-j_3abwel_qual = ls_cat_fields-j_4kcatv.
                ENDIF.
              ENDLOOP."lt_cat_fields
            ENDIF.
    *E Aufsplitten Bestandskategorie
    *A Aufsplitten MAtrix
            IF NOT l_s_data_eket-j_3asize IS INITIAL.
              CALL FUNCTION 'J_3A_SPLIT_SIZES'
                   EXPORTING
                        matnr              = l_s_data_eket-matnr
                        j_3asize           = l_s_data_eket-j_3asize
                   IMPORTING
                        j_3akord1          = l_s_data_eket-j_3abwel_color
                        j_3akord2          = h_feldsize1
                        j_3akord3          = h_feldsize2
                   EXCEPTIONS
                        no_grid_determined = 1
                        OTHERS             = 2.
              IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
              ELSE.
                l_s_data_eket-zz_bwel_size1 = h_feldsize1.
                l_s_data_eket-zz_bwel_size2 = h_feldsize2.
              ENDIF.
            ENDIF."not l_s_data_eket-J_3ASIZE is initial
    *E Aufsplitten MAtrix
            MODIFY itab_0 FROM l_s_data_eket INDEX l_tabix.
          ENDIF."not l_s_data_eket-matnr is initial
        ENDLOOP.                                                "itab_0
      An Ausgabe-Tabelle übergeben
        APPEND LINES OF itab_0 TO e_t_data.
        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
    thorsten

  • Generic Datasource with Additive Delta

    Hi all
    I have a question.
    In whic case can I use a generic datasource with additive delta?
    Does this delta mode make sens only with function module extraction?
    If I extract data directly from a table, can I use this delta mode only if a field represents changes?
    Thanks for your help!
    S.

    Stefania,
        To my knowledge what you are thinking is wrong.
    we have 2 Methods for Generic DS.
    1. New status for changed Records.
    2. Additive delta.
    New status for changed records means
    New Order
    order no    quantity
    1000          10
    order changed to quntity 8. then 2 records will posted 2 BW in first case.
    1000          -10
    1000            8
    if you come to Additve delta.
    for the same case it will send the same record as
    1000          10
    changed records
    1000          -2
    this is the difference. New status with changed records should be used only in association with ODS not cube becoz we don't have overwrite option.
    Additive delta we can use for ODS and Cubes with update mode Addition.
    Hope this is clear.
    Regards,
    Nagesh Ganisetti.

  • Generice extracttion with delta

    if we do generic extraction with delta in which table luws will be stored

    LUW's for generic delta can be monitored in RSA7.
    BW Delta queue is based on queue functions in the RFC technology for SAP Web Application servers (qRFC). The data is stored in the following 3 tables:
    1. TRFCQOUT (Client Dependent pointer table per queue name and destination.
    2. ARFCSSTATE: Likn between TRFCQOUT and ARFCSDARA
    3. ARFCSDATA: Compressed data for tRFC/qRFC
    refer following: http://help.sap.com/saphelp_nw04/helpdata/en/6f/66bca6ae43744283d74f1e456ff6c0/content.htm for delta queue maintenance.

  • Problem in creating a generic datasource with infoset

    Dear Expert,
      I have to create a generic datasource with infoset. I linked the infoset with a test program below. In the program, I have one selection option, which is s_order. After creating an infoset and a datasource, this selection option 'SELECT_S_ORDER' is added to my extract structure. However, after try filtering with this SELECT_S_ORDER, it doesn't filter data at all. Why? I want to filter data with my s_order.
    REPORT  ZBI_DS_TEST.
      tables: vbak.
    * DATA
      field-symbols: <vbak>  type vbak.
      data:   t_vbak      type table of vbak,
                w_vbak     type vbak,
                t_vbak2    type table of vbak,
                w_vbak2    type vbak.
    * SELECT-OPTIONS
      selection-screen begin of block b1 with frame title text-001.
        select-options:  s_order   for  vbak-vbeln.
      selection-screen end of block b1.
        start-of-selection.
    * <Query_head>
       perform sub_select_data.
       loop at t_vbak into w_vbak2.
         move-corresponding w_vbak2 to vbak.
    * <Query_body>
       endloop.
    *&      Form  sub_select_data
    *      Select data
    FORM sub_select_data .
        select *
        into    table t_vbak
        from   vbak
        where vtweg = 'IP'.
    ENDFORM.                    " sub_select_data

    What do you mean by linking program with infoset?
    Do you get the field in your RSA3 Tcode?

  • Generic datasource with FM

    All;
    We need to do live cache extraction for APO data. How do we set up that in BW? Is this done using generic datasource with a Function module? Can anyone give me some ideas?
    Thanks,
    Manasa.

    Hi,
    In the Extractution structure you need to put the two dates and mark both like selection parameter.
    This is the template for Generic FM Extractors "RSAX_BIW_GET_DATA_SIMPLE" to create the FM.
    Follow the FM Code, in the part of the first execution you need to do two loops (one for every date).
    Regards,
    Dani

  • Generic Datasource with Fuction Module with delta on Created Date

    Hi Experts,
    I have created a generic datasource using Function Module RSAX_BIW_GET_DATA. I have copied this function module and created a my own Function Module. I want to load delta using this. But I don't know how to handle delta in the code.
    my code is working for full load but not for delta. I have seen that in ROOSOURCE tabel the Delta field is showing the AIE instead of D and extraction method  is showing as F2. I have searched a lot of forums and articles but didn't get how to handle this.
    Please advice.

    Hi Amit,
    Go through the link as suggested by AKhan which lets you understand the concept of offsets and the last extraction status.
    In case of Table or View based GDS, the system takes care of the deltas based on the selections you make in the "Generic Delta" screen whereas in case of FM based DS, it is your responsibility to handle this part. Within your code, capture if the load is a Delta load (I_UPDMODE = D). Since your delta is on Created Date, maintain a Z table with name of the DS as the Key and a field representing the current value of the Delta field(created date in this case). When you first load the delta, there will be no record for your DS in this table. Create an entry with the current day. Next time when you load a delta, take this value, compare it with sy-datum and get all the records falling within these days. This has to be done in the Select stmt. Once selection happens, replace the value in the Z table with sy-datum. This way you can simulate the delta. The Z table can be used for other FM based Datasources also as it has DS as the key.
    It would be easy if the exact SAP table where RSA7 delta field status is stored is known. Otherwise, the above method can be used.
    Revert for any further queries.

  • ODS Delta Process, DataSource and Delta Queue

    Hi to all,
    loading data from a SAP source system into SAP BW 7.0 via generic 3.x datasource causes problems.
    Here is a short description:
    The data flow is from a source table using a generic extractor into a target ODS in full update mode.
    Update rules should move data from table structure into ODS structure in this way:
    Source table structure
    CustKey1     Key2     
    13386          C23     
    13386          B14     
    13387          A13
    13387          E25
    ODS structure
    CustKey1     col1     col2     
    13387          A13     E25     
    This works pretty well - as long as all records with the same CustKey1 are transfered in the same data package. Data Browser (SE16) shows the situation in ODS-"New data" view  (data is not activated):
    Request    Data_packet_number     Data_record_number      CustKey1
    112            000003                  1.061              0000013386
    112            000004                      1              0000013386
    112            000004                      2              0000013387
    There are two records for CustKey1 0000013386 with
    data record 1.061 in data packet 000003   and
    data record       1 in data packet 000004.
    The obove constellation is the cause for errors in the ODS Delta Queue and subsequent data processing.
    I think there may be one solution to solve the problem by changing the Delta Process of the Data Source.
    The properties are:
    - Record type: Full, delta, before, after images
    - Delta type: Delta from delta queue or from extractor
    - Serialization: No serialization, serialization of request, serialization of data packages
    But how can I change these settings? Transactions RSA2 RSO2 RSO6 RSO8 don't do this.
    What is the right delta process to use?
    I have tried changing the delta process generating several 3.x datasources with the following delta processes (see table RODELTAM)
    - " " (Full-upload)
    - AIE
    - ADD
    Unfortunately with no effect.
    Who can help?
    Regards
    Josef
    Edited by: Josef L. on Mar 20, 2009 7:44 PM

    hi venkat,
    whenever you load a delta from ods to cube , whatever the data changed in ods since last delta will be updated, hence from you case, both req1 and req2 will be loaded to cube.
    Assign Points if useful
    Ramesh

  • How to deal with delta queue when importing Support Package/Kernel Patch

    Hi,
    From my experience, when importing a Support Package for an installation, the system will issue an error message and get stuck if this Support Package is about to alter the structures used in delta loads.
    But I would like to double with you if there is possible that the support packet which is going to alter structure, but no error message. If so, the delta data will be lost.
    Do we need to clear down the delta queue every time we import support package?
    Anyway, is there anyone have any suggestions or steps regarding this question?
    Many Thanks
    Jonathan

    Hi,
    Delta queues during support package upgrade
    Its always better to drain the delta queues before an upgrade.
    As a standard practice we drain the delta queues by running the IP/ chain multiple times.
    As a prerequiste we cancel/reschedule the V3 jobs to a future date during this activity.
    The V3 extraction delta queues must be emptied prior to the upgrade to avoid any possible data loss.
    V3 collector jobs should be suspended for the duration of the upgrade.
    They can be rescheduled after re-activation of the source systems upon completion of the upgrade.
    See SAP Notes 506694 and 658992 for more details.
    Page 17
    Load and Empty all Data mart Delta Queues in SAP BW. (e.g. for all export DataSources)
    The SAP BW Service SAPI, which is used for internal and ‘BW to BW’ data mart extraction, is
    upgraded during the SAP BW upgrade. Therefore, the delta queues must be emptied prior to the
    upgrade to avoid any possibility of data loss.
    upgrade preparation and postupgrade checklist
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/472443f2-0c01-0010-20ab-fbd380d45881
    /message/3221895#3221895
    OSS notes 328181 and 762951 as a prerequisites.
    Failure to follow the instructions in those notes may probably result in data loss.
    https://websmp207.sap-ag.de/~form/sapnet?_FRAME=CONTAINER&_OBJECT=011000358700002662832005E
    /thread/804820
    Effect on BW of R/3 Upgrade   
    How To Tackle Upgrades to SAP ERP 6.0
    /people/community.user/blog/2008/03/20/how-to-tackle-upgrades-to-sap-erp-60
    Start with the Why — Not the How — When You Upgrade to SAP ERP 6.0
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/008dddd1-8775-2a10-ce97-f90b2ded0280
    Rapid SAP NetWeaver 7.0 BI Technical Upgrade
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e0c9c8be-346f-2a10-2081-cd99177c1fb9
     https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c2b3a272-0b01-0010-b484-8fc7c068975e
    Hope this helps.
    Thanks,
    JituK

  • Issue with delta queue initialization

    Hello
    I am having a problem with an initialization of the delta queue for a certain extractor. The initialization was successfull, and I can see the extractor in the delta queue maintenance (RSA7) in ECC, but when users are posting transactions in ECC, they are not coming into RSA7.
    The extractor is 0CO_OM_WBS_6, so its not standard LO cockpit where we have V3 (background) jobs which have to be triggered.
    One more thing, the record which was posted was backdated, ie the date is sometime in the past. But I think the delta queue still picks the records. Can i know how the delta queue funtions based on the time stamp?
    Please advise.

    Here is the OOS note fro FI Datasources.
    OSS 485958:
    Symptom
    The FI line item delta DataSources can identify new and changed data only to the day because the source tables only contain the CPU date and not the time as time characteristic for the change.
    This results in a safety interval of at least one day.
    This can cause problems if the batch processing of the period-end closing is still running on the day following the period-end closing and all data of the closed period is to be extracted into BW on this day.
    Example:
    The fiscal year of the company ends on December 31, 2002.
    On January 01, 2003, all data of the closed fiscal year is to be extracted into BW.In this case, the FI line item delta DataSources only extract the data with a safety interval of at least one day.
    This is the data that was posted with a CPU date up to December 31, 2002.
    However, the batch programs for closing the 2002 fiscal year are still running on January 01, 2003.
    The postings created by these programs with a January 01 date for the 2002 fiscal year can therefore only be extracted with delta extraction on January 02, 2003. However, extraction should already be possible on January 01, 2003.
    Other terms
    FI line item delta DataSources
    0FI_AP_4; 0FI_AR_4; 0FI_GL_4
    Reason and Prerequisites
    This problem is caused by the program design.
    Solution
    The functions are enhanced as of PI 2002.1, standard version.
    Due to a customized setting, it is now possible for the FI line item extractors to read the data up to the current date during the delta runs.
    During the next delta run, the data is then read again from the day when the previous extraction was called, up to the current day of the call for the new extraction.This means that the delta extraction of the data always occurs with time intervals overlapping by one day.
    The delta calculation by the ODS objects ensures that the repeatedly extracted data does not cause duplicate values in the InfoCube.
    Activate the new functions as follows:
    1. PI 2001.1 or PI 2001.2:
    Implement the new functions with the correction instructions in this note.As of PI 2002.1, these changes are already implemented in the standard version.
    1. Start a test run for an FI line item DataSource via transaction RSA3.
    2. Two new parameters are now available in the BWOM_SETTINGS table.
    3. Parameter BWFIOVERLA (Default _)
    Set this parameter to "X" using transaction SE16, to activate the new function of overlapping time intervals.
    Caution
    The new function also uses a safety interval of one day to determine the To value of the selection, if the time limit set by BWFITIMBOR is not reached.This means that only data up to the day before the extraction was called is selected, if the extraction starts before 02:00:00 (default for BWFITIMBOR).
    Correction: Parameter BWFITIMBOR (Format HH:MM:SS, default 020000)
    The default value for this parameter is 02:00:00.Do not change this value.
    If this time limit is not reached, only data up to the previous day (with BWFIOVERLA = 'X') or the day before this day (with BWFIOVERLA = ' ') is selected.
    This logic prevents records with a CPU date of the previous day being contained in the posting when the extraction is executed.
    Check any OSS notes for your data source.

  • Generic Extraction with delta

    Hi Every one,
    I use an extractor based on a function module which is copy of the RSAX_BIW_GET_DATA_SIMPLE and gets delta records.
    I have  a doubt of how the communication happens between BW and R/3 when delta info package is ran inorder to get delta records.
    Can any one explain how this FM RSAX_BIW_GET_DATA_SIMPLE works ie., the input parameters,usage of static var, Cursors etc?
    FUNCTION RSAX_BIW_GET_DATA_SIMPLE.
    ""Lokale Schnittstelle:
    *"  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  SFLIGHT OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Example: DataSource for table SFLIGHT
      TABLES: SFLIGHT.
    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_CARRID  FOR SFLIGHT-CARRID,
              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 '0SAPI_SFLIGHT_SIMPLE'.
          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 = 'CARRID'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_CARRID.
            APPEND L_R_CARRID.
          ENDLOOP.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CONNID'.
            MOVE-CORRESPONDING L_S_SELECT TO L_R_CONNID.
            APPEND L_R_CONNID.
          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 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.
        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.
    Also how the delta queue  is loaded in rsa7 when the delta records made?
    When the delta info package is ran, the delta queue in rsa7 is changed to '0'.How is that communication made in between them?
    Please clear my doubts?
    Regards,
    Pra

    Hi Suneel,
    You can load delta to write optimized DSO. Your Data source will have delta load (through infopackage) and then with DTP (with Extraction Mehtod --> Delta) you can load delta records to this write optimized DSO. So only the new requests, which are not loaded yet will be loaded to WO-DSO. I tried it in system and it works.
    They can be used in the following scenarios:
    ●      You use a write-optimized DataStore object as a temporary storage area for large sets of data if you are executing complex transformations for this data before it is written to the DataStore object. The data can then be updated to further (smaller) InfoProviders. You only have to create the complex transformations once for all data.
    ●      You use write-optimized DataStore objects as the EDW layer for saving data. Business rules are only applied when the data is updated to additional InfoProviders.
    it is used when you don't want to wait for DSO activation and error troubleshooting. It will make raportable data available instantly.
    Hope it helps...
    Regards,
    Ashish
    Edited by: Ashish Tewari on May 6, 2009 1:33 PM

  • Issue with Delta Queue

    Dear All,
    We have scheduled Delta Q on developement and it was working fine.
    But on Quality side all the jobs for Application 11 are failing while application 13 are running successfully.
    Please help on the same immediately.
    Regards,
    Sohil Shah.

    Hi Sohil,
    It seems that you have changed the structure of the datasource. When you change the structure of the datasource you have to make sure that there is no data in the delta queue or SMQ1 queue of the target system before you transport it.  Delete the data from the delta queue and SMQ1 queue and reintialise the datasource.
    Let me know if you have any doubt.
    Regards,
    Viren

  • Generic datasource with function module

    I am trying to create a transactional generic datasouce with fm.
    I create my structure ZNVBAK1, create a function group ZRSAX, a FM ZRSAX_BIW_GET_DATA_SIMPLE1 and I adjust my source code.
    I activated both FM and Function Group.
    Now under RSO2 I enter the datasource name as in my code, I enter the application component SD as well as the description
    When I choose extraction by FM, nothing happens, no windows prompting me to enter my function module as well as extract structure, I checked everthing look good.
    Any Idea what I might be doing wrong?
    Thanks!!

    Hi ,
    First put values in Short Description, Medium Description & long Description,fields and then click on the Extraction by FM. You will get those filelds unabled.
    You can also refer.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33?quicklink=index&overridelayout=true
    Edited by: Nilesh Vakil on May 31, 2011 7:57 AM

  • 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

  • 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

Maybe you are looking for

  • How To Remove Empty Node From Source XML

    Hi, How can I remove an empty node from the source xml in a XSLT mapping. For e.g. If the source xml is like: <SRC> <Node1>SAP</Node2> <Node2/> <Node3>XI</Node3> </SRC> Then the xml should become: <SRC> <Node1>SAP</Node2> <Node3>XI</Node3> </SRC> I n

  • Adding link in Pages

    I do a Pages news letter and send it out as a pdf in email. I can add links to email/web site and everything seem ok. Then I send it as a pdf but when my friends receive it the link no longer works. Am I missing something? Thanks in advance. Bryan

  • Packages in webstart archive

    Normally you should specify the class with the main method in a jnlp file, with the tag <application-desc main-class="Auteursomgeving" />However, the class that contains my main method is inside a package "author". Using <application-desc main-class=

  • Edge Animate CC

    salve, io dovrei realizzare un animazione con Edge Animate CC, volevo sapere se era possibile muovere un ogetto e quando ha finito la sua azione farlo sparire e inserirle un altro. Es faccio muovere un triangolo e dopo devo render invisibile il trian

  • FCP 5.1 on snow Lep.

    Hi, I have a question.. will FCP 5.1 work on snow Lep? Planning to get a imac i5 but dont want to buy the upgrades... thanks..