Delta criteria in BW??

Dear All,
            I am trying to pull a table ZSNPLAN to BW from R/3 by generic extraction. The table contains data on Planned factory delivery report uploaded to r/3 weekly through a program. the fields in the table are :
Client
Year
Month
Week
Plant
Material Number
Quantity
Material Description
Uploaded Date
Volume unit
In RSO2 I made a datasource and asigned delta specific field as "uploaded date" and "additive delta" selection. In RSA3 and RSA6 all the fields appear for selection criteria but NOT "uploaded date".The system does show a tick in "delta update" checkbox but in "uploaded date" the system has inactivated the checkbox for any checking option. So in BW in my infopackage the uploaded date is NOT appearing. I want to take init delta process in BW based on "uploaded date". But since uploaded date does not appear i can't do it? So how can I take init delta keeping uploaded date as criteria in BW ?
Regards,
Ratish
[email protected]
9820827647

Hi Ketterer,
Not sure if you saw this:
Re: Selections in Export Datasource infopackage
Roberto's reply might help to make things clearer.

Similar Messages

  • Selection Criteria for Delta loads triggered using MDM_CLNT_EXTR

    Hi ,
    Currently we are required to load data only from two specific account groups . Therefore in the selection criteria in mdm_clnt_extr we maintian these two account groups and extract data.
    However, when setting up the delta load there does not to be an option to restrcit the delta to a specify an criteria. Therefore, in our case several records from account groups which are not required are passed on to the MDM system.
    Is there a way to address this requirement ?
    1. There is an option to run the initial load variants at regular intervals, the problem with this is that in our case we have several variant creates as the R/3 system does not allows extraction on more that 999 records at a time. Therefore at point of time to capture the delta records , if we run all these jobs our network gets choked.
    2. Run delta job, but without selection criteria it pulls out records which we don't require
    Any suggestions on how this problem can be addressed are welcome ,
    Thanks in advance,
    Anita George

    Thanks Michael !
    Well, regarding hte ALE settings, we did take a look in bd64 the filters are based on objects which one of these is relevant for customer account groups ? Probably in the future we would require all data, and then is it enogh to remove the filter ?
    Can a filter be maintained at the XI level , this would be good as only the required account groups are passed on to MDM . Is there any documentation on available on this ?
    Regarding the Import Manager, will have to check  this functionality, as it is now no matter how many times we update the map/rename /load/unload it automated imports keep failing.
    Our R/3 system seems to have problem extracting more than 999 records, as we tried with different number of records and all those extraction jobs got cancelled. So, currently we are running multiple jobs for the initial load and even this is very time consuming.
    Thanks & Regards,
    Anita George

  • Delta re-initialisation - cannot enter selection criteria

    Hi Brains Trust,
    We have an existing delta load from an SD ODS to a cube.
    Due to corrupt dates we want to start the initilisation again from a particular billing document number.
    We have deleted the existing delta.
    When we go to set up the delta init infopackage it does not allow us to enter any selections (for a full load we can select but when we choose Delta init  the selection options become unavailable).
    Any ideas?
    Peter

    Hello Peter,
    Actually yes, you can't change any selection criteria in a delta infopackage, beacause it automatically keeps the ones from the Init.
    Have you tried to make a Full Repair based on your billing document only ?
    You just have to create an Infopackage Full, and select it as Full Repair in the Menu -> Scheduler.
    It will work fine !
    Regards,
    Mickael

  • Delta with two different selection criteria

    I have crated two Delta DTPs with different selection criteria (one with Flag = Y and Flag = N).
    With flag = Y selection I have 100 records and flag = N, I have 50 records.
    When I ran first Delta DTP (flag = Y), I got 100 records. Delta DTP worked fine.
    But when I ran 2nd DTP (with flag = Y), 50 records tranferred but no records added.
    Is it possible to have two delta DTPs with different selection criteria?
    Thanks,
    PV
    Edited by: P V on Aug 23, 2009 4:58 AM

    Hi.
    I guess there was a typo error in your query,
    "When I ran first Delta DTP (flag = Y), I got 100 records. Delta DTP worked fine.
    But when I ran 2nd DTP (with flag = Y), 50 records tranferred but no records added."
    I guess it should be,
    "When I ran first Delta DTP (flag = Y), I got 100 records. Delta DTP worked fine.
    But when I ran 2nd DTP (with flag = N), 50 records tranferred but no records added."
    Yes, two Delta DTPs with different selection conditions can be used.
    Can you please check with the availability of 50 records with FLAG = N in the target InfoProvider?
    If the 50 records with FLAG = N loaded through delta already exists in the target InfoProvider,
    then no addition will occur though trasfer will take place.
    Regards.
    VJ

  • Criteria to upload Master Data by Full or Delta

    Dear Experts,
          In our project, all the master data are extracted bu the Full Upload method. However, our users asked for the criteria to judge whether we should use Full or Delta for master data.
    E.g.
    1) the volume of data - (If there are a few records for master data, use full upload) - What is the exact figure that we can use to check? For example, more than 10000 records, use delta upload.
    2) the change of master data - (if the master data is changed every day, use delta upload)
    etc.
        Is there any SAP document recommending these things?
    Thank you in advance.

    Hi,
    One criteria that you can consider is to check whether the datasource is delta enabled or not.
    In few cases where frequent changes of data is not expected e.g. 0PLANT_ATTR (plant master data) , SAP delivers without the option of enabling delta load. In such case, you can go only for full update. In other cases , where data change is expected more frequently like 0MATERIAL_ATTR , it is delta enabled.
    Regards,

  • Selection criteria at delta initialization

    hi,
    I want to initialize delta extraction for given time period but extractor keeps sending me all table data from source system.
    Does somebody know what is going on?
    Regards,
    Andrzej

    hi,
    I have already checked in rsa3 and everything seems ok there.
    I upload storage bins master data.
    regards,
    Andrzej

  • Unable to get delta observation,

    i am trying get delta records from ztable based on time stamp with 900sec lower timestamp,,,,,,,,,,
    please correct my code,
    Example: DataSource for table SFLIGHT
      TABLES: zsales_order1.
    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_zvbeln FOR zsales_order1-zvbeln,
              l_r_zerdat FOR zsales_order1-zerdat,
              l_r_zerzet FOR zsales_order1-zerzet,
              l_r_ztimestamp FOR zsales_order1-ztimestamp.
      DATA : startdate TYPE sy-datum,
             starttime TYPE sy-uzeit,
             enddate TYPE sy-datum,
             endtime TYPE sy-uzeit,
             timestamp TYPE tzonref-tstamps.
    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 'ZSALES_ORDER_FUN1'.
          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 = 'ZVBELN'.
            MOVE-CORRESPONDING l_s_select TO l_r_zvbeln.
            APPEND l_r_zvbeln.
           LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'ZERDAT'.
              MOVE-CORRESPONDING l_s_select TO l_r_zerdat.
              APPEND l_r_zerdat.
           LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'ZERZET'.
                MOVE-CORRESPONDING l_s_select TO l_r_zerzet.
                APPEND l_r_zerzet.
       LOOP AT s_s_if-t_select INTO l_s_select WHERE fieldnm = 'ZTIMESTAMP'.
                  timestamp = l_s_select-low.
                  CONVERT TIME STAMP timestamp
                  TIME ZONE sy-zonlo INTO DATE startdate TIME starttime.
                  timestamp = l_s_select-high.
                  CONVERT TIME STAMP timestamp
                  TIME ZONE sy-zonlo INTO DATE enddate TIME endtime.
                  l_r_zerdat-low = startdate.
                  l_r_zerdat-sign = l_s_select-sign.
                  l_r_zerdat-option = l_s_select-option.
                  l_r_zerdat-high = enddate.
                  APPEND l_r_zerdat.
                  l_r_zerzet-low = starttime.
                  l_r_zerzet-sign = l_s_select-sign.
                  l_r_zerzet-option = l_s_select-option.
                  l_r_zerzet-high = endtime.
                  APPEND l_r_zerzet.
                ENDLOOP.
              ENDLOOP.
            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 zvbeln
    zerdat
    zerzet
    zland1
    zkunnr
    zlgort
    zposnv
    zmatnr
    znetpr
    waerk
    zkpein
    zkmein
    zarktx
    zstadat
    zaedat
    zaezet
    ztimestamp FROM zsales_order1 WHERE zvbeln IN l_r_zvbeln
                                  AND zerdat IN l_r_zerdat
                                  AND zerzet IN l_r_zerzet
                                  AND (
          ( zerdat >= startdate AND ( zerzet >= starttime     OR
          ( zerdat <= enddate   AND   zerzet <= endtime ) ) ) OR
          ( zaedat >= startdate AND ( zaezet >= starttime     OR
          ( zaedat <= enddate   AND   zaezet <= endtime ) ) )
        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.
    thanks in advance

    As per the description of this forum at the top of the page I do not think this is posted correctly:
    This forum is dedicated to all other development-related questions which are not directly addressed by other forums. This includes Business Objects SDKs, products, or technologies which do not fall under BusinessObjects Enterprise, BusinessObjects Edge, Crystal Reports Server, or Crystal Reports (for example Desktop Intelligence SDK, Universe Designer SDK, Portal Integration Kits, Java User Function Libraries, and other third party technologies or development languages).
    - Ludek

  • I_UPDMODE has no value in my Function Module when using Delta Extraction

    Help me please.
    My system is BW 3.52
    Please see the source code below and tell me why I_UPDMODE has not been passed value. I have ever used "I_SOURCE" but the value pass to I_DSOURCE. Can anyone tell me where is the upload mode pass to?
    FUNCTION ZBWFN_TEST_DELTA.
    ""Local Interface:
    *"  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 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_RLOGSYS) TYPE  SRSC_S_INTERFACE-RLOGSYS OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SRSC_S_INTERFACE-READONLY OPTIONAL
    *"  TABLES
    *"      I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZISU_ERCHC OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    This extractor is part of a delta scenario based on a timestamp
    included in the fields of table ROVERCUBE1. The interesting part
    takes place in form get_time_interval, where the date range is
    calculated update modespecifically.
    The pointer for the date up to which delta was extracted during
    the last delta update is held in table ROBWQTSTAT.
      TABLES: ZISU_TP_ERCHC, ERCH, ERCHC.
    Auxiliary Selection criteria structure
      DATA: L_S_SELECT TYPE SBIWA_S_SELECT.
      DATA: L_ERCHC LIKE ZISU_TP_ERCHC OCCURS 0 WITH HEADER LINE.
      DATA: L_DATE LIKE SY-DATUM,
                L_ACTUAL_DATE LIKE SY-DATUM,
                L_LAST_DATE LIKE SY-DATUM.
    Maximum number of lines for DB table
      STATICS: L_MAXSIZE TYPE SBIWA_S_INTERFACE-MAXSIZE,
               BEGIN OF S_S_INTERFACE.
      INCLUDE TYPE SBIWA_S_INTERFACE.
      INCLUDE TYPE SRSC_S_INTERFACE.
      STATICS: END OF S_S_INTERFACE.
    STATICS: BEGIN OF S_R_TSTMP OCCURS 1,
                SIGN(1),
                OPTION(2),
                LOW  LIKE ROVERCUBE1-TSTMP,
                HIGH LIKE ROVERCUBE1-TSTMP,
              END   OF S_R_TSTMP.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF I_INITFLAG = SBIWA_C_FLAG_ON.
    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 DataSource validity
        CASE I_DSOURCE.
          WHEN 'ZOVER_TRANS'.
          WHEN 'TEST_ROVERCUBE'.
          WHEN 'DO_DATASOURCE'.
          WHEN '0VER_DELTA_WITH_LONG_NAME'.
          WHEN '0VER_CUBE_OLD_LIS'.
          WHEN '0VER_TYPE_ATTR'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
            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.
    Check for supported update mode
        CASE I_UPDMODE.
          WHEN 'F'.
          WHEN 'D'.
          WHEN 'C'.
          WHEN 'R'.
          WHEN 'S'.
          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.
        APPEND LINES OF I_T_SELECT TO G_T_SELECT.
    Fill parameter buffer for data extraction calls
        S_S_INTERFACE-REQUNR    = I_REQUNR.
        S_S_INTERFACE-ISOURCE   = I_DSOURCE.
        S_S_INTERFACE-MAXSIZE   = I_MAXSIZE.
        S_S_INTERFACE-INITFLAG  = I_INITFLAG.
        S_S_INTERFACE-UPDMODE   = I_UPDMODE.
        S_S_INTERFACE-RLOGSYS   = I_RLOGSYS.
        S_S_INTERFACE-READONLY  = I_READ_ONLY.
        G_FLAG_INTERFACE_INITIALIZED = SBIWA_C_FLAG_ON.
        APPEND LINES OF I_T_FIELDS TO G_T_FIELDS.
    here the timerange for update modes concerning delta is calculated
    and the status table is updated
        PERFORM GET_CAL_INTERVAL TABLES G_R_DELTA_DATE[]
                                  USING  S_S_INTERFACE-ISOURCE
                                             S_S_INTERFACE-UPDMODE
                                             S_S_INTERFACE-RLOGSYS.
      ELSE.                 "Initialization mode or data extraction ?
    Data transfer: First Call      calcualte range tables for key fields
                                   calculate date range due to update mode
                                   OPEN CURSOR + FETCH
                   Following Calls FETCH only
    First data package -> OPEN CURSOR
        G_COUNTER_DATAPAKID = G_COUNTER_DATAPAKID + 1.
        IF G_COUNTER_DATAPAKID = 1.
    Fill range tables.
         LOOP AT G_T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'COUNTRY'.
           MOVE-CORRESPONDING L_S_SELECT TO L_R_COUNTRY.
           APPEND L_R_COUNTRY.
         ENDLOOP.
         LOOP AT G_T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'REGION'.
           MOVE-CORRESPONDING L_S_SELECT TO L_R_REGION.
           APPEND L_R_REGION.
         ENDLOOP.
         LOOP AT G_T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'KUNNR'.
           MOVE-CORRESPONDING L_S_SELECT TO L_R_KUNNR.
           APPEND L_R_KUNNR.
         ENDLOOP.
         LOOP AT G_T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'TYPE'.
           MOVE-CORRESPONDING L_S_SELECT TO L_R_TYPE.
           APPEND L_R_TYPE.
         ENDLOOP.
         LOOP AT G_T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'GJAHR'.
           MOVE-CORRESPONDING L_S_SELECT TO L_R_GJAHR.
           APPEND L_R_GJAHR.
         ENDLOOP.
    no data must be selected in Init simulation mode
          CHECK S_S_INTERFACE-UPDMODE NE SRSC_C_UPDMODE_INITSIMU.
    Determine number of database records to be read per FETCH statement
    from input parameter I_MAXSIZE.
          L_MAXSIZE = G_S_INTERFACE-MAXSIZE.
          REFRESH: L_ERCHC.
          SELECT * FROM ERCH WHERE ERDAT IN G_R_DELTA_DATE
                                          OR AEDAT IN G_R_DELTA_DATE.
            SELECT SINGLE * FROM ERCHC WHERE BELNR = ERCH-BELNR.
            IF SY-SUBRC = 0.
              CLEAR: L_ERCHC.
              L_ERCHC-BUKRS = ERCH-BUKRS.
              L_ERCHC-ABRVORG = ERCH-ABRVORG.
              L_ERCHC-PORTION = ERCH-PORTION.
              L_ERCHC-GPARTNER = ERCH-GPARTNER.
              IF ERCHC-CPUDT IN G_R_DELTA_DATE.
                L_ERCHC-DELDT = ERCHC-CPUDT.
                L_ERCHC-DOCDT = ERCHC-BUDAT.
                L_ERCHC-RELNO = 1.
                COLLECT L_ERCHC.
              ENDIF.
              IF ERCHC-INTCPUDT IN G_R_DELTA_DATE AND
                 ERCHC-INTCPUDT IS NOT INITIAL.
                L_ERCHC-DELDT = ERCHC-INTCPUDT.
                L_ERCHC-DOCDT = ERCHC-INTBUDAT.
                L_ERCHC-REVNO = 1.
                COLLECT L_ERCHC.
              ENDIF.
            ENDIF.
          ENDSELECT.
          DELETE FROM ZISU_TP_ERCHC.
          LOOP AT L_ERCHC.
            MOVE-CORRESPONDING L_ERCHC TO ZISU_TP_ERCHC.
            INSERT ZISU_TP_ERCHC.
          ENDLOOP.
          OPEN CURSOR WITH HOLD G_CURSOR FOR
          SELECT * FROM ZISU_TP_ERCHC.
        ENDIF.                             "First data package ?
        IF S_S_INTERFACE-UPDMODE = SRSC_C_UPDMODE_INITSIMU.
          RAISE NO_MORE_DATA.
        ENDIF.
    Fetch records into interface table.
        FETCH NEXT CURSOR G_CURSOR
                   APPENDING CORRESPONDING FIELDS OF TABLE E_T_DATA
                   PACKAGE SIZE  S_S_INTERFACE-MAXSIZE.
        IF SY-SUBRC <> 0.
          RAISE NO_MORE_DATA.
        ENDIF.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.

    Dave,
    1. You can fire SELECTS in an RFC as well, but in your case the data exists in SYSTEM A and the RFC is in System B, so you can't do that. You can fire SELECTS on tables in the same system.
    2. Quick example of two table loops - EKKO (HEADER) EKPO (ITEM).
    LOOP AT EKKO.
    LOOP AT EKPO WHERE EBELN = EKKO-EBELN.
    ENDLOOP.
    ENDLOOP.
    I hope this is clear now.
    Regards,
    Ravi

  • Delta Initialization vs Delta Update

    We're having some issues with performance when loading our GL cube.  What I would like to do is perform many delta initializations, each delta inititialization containing one month/period.
    My confusion is in the fact that the last time I attempted this, when I subsequently went to run my delta UPDATE the same selection criteria was automatically inserted into my delta update.
    So for example my INIT may look like this;
    REQUEST1: Selection = 001.2005
    REQUEST2: Selection = 002.2005
    etc........etc...
    REQUEST12: Selection = 012.2005
    Next the UPDATE info package seems to inherit the same criteria... doesn't this mean it will not update anything beyond that criteria??
    I'm just wondering if it is possible to do an incremental initialization and still be able to enable delta updates for future periods?
    Thanks!

    Hi Patrick,
    The delta update will load the data as per the selections made in the Init run. A delta requested after several initializations, contains the sum of all the successful initial selections as a selection condition. This selection condition can then no longer be changed for the delta.
    Take a look here for more info:
    http://help.sap.com/saphelp_nw04/helpdata/en/80/1a65dce07211d2acb80000e829fbfe/content.htm
    Hope this helps...

  • Cube to cube data transferred ,and delta status

    Hi Gurus
    I need to do Portioning in cube
    I have a cube Zaa_c01 which is updated by two data source ZDS1 and ZDS2 (Delta Update) I copy the Zaa_c01 and I created new cube Zaa_c02, also I transferred the data to that. But it is shoeing in single request in cube, after partion I again reloaded to ZAA_C01 , know I am seeing only single request in a cube.
    Whether I lose delta in this case , or I am missing any step, this activity I done in Development, and need to do in production. 
    Regards
    Shashi

    Hai Shashidhar,
    Partitioning is split the large dimensional cube into smaller cubes.... regarding performance point of view we have to do this partitioning.
    there are two types of partitioning..
    1. Logical Partitioning.
    2.Physical Partitioning
    physical partitioning is done at Database level . and logical partitioning done at Data target level.(EX: Info cube level)
    Cube partitioning with time characteristics 0calmonth Fiscper is physical partitioning.(so, we need at leats one of the above time charecterstics for doing partioning...).
    Logical partitioning is u partition ur cube by year or month that is u divide the cube into different cubes and create a multiprovider on top of it.
    STEPS :
    SELECT YOUR CUBE.. AND DOUBLE CLICK IT..->
    in the menu's select EXTRAS menu--> in that select -->DB PERFORMANCE sub menu..-> in that again select Partitioning sub menu..
    and specify how many partions you want to do...
    but you cube should be contain atleast ocalmonth or phical varient should be there...
    Prerequisites
    You can only partition a dataset using one of the two partitioning criteria ‘calendar month’ (0CALMONTH) or ‘fiscal year/period (0FISCPER). At least one of the two InfoObjects must be contained in the InfoProvider.
    http://help.sap.com/saphelp_nw04s/helpdata/en/8c/131e3b9f10b904e10000000a114084/frameset.htm
    Thanks,
    kiran.

  • Delta fo Generic extractor using function module

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

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

  • Delta error in GE-Function Module

    Hi ,
    my GE-delta is based on UDATE ( chenged date) from CDHDR table.
    i created datasource in RS02 and i defined delta based in UDATE with upper limit 1 day and lower limit is '0'..
    i created FM based on RSAX_BIW_GEDATA_SIMPLE.
    for full load it working fine.
    i put some extra code for delta.
    it is not take any records...
    i dont know much ABAP.
    plz tell me where is wrong in my code for delta..
    code ...
    FUNCTION ZXBWMM_INV_POT_ID.
    ""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  ZVSAIPID OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Example: DataSource for table SFLIGHT
    TABLES: SFLIGHT.
    TABLES: EBAN , CDPOS , CDHDR , ZVSAPR.
      TYPES : BEGIN OF TY_OBJDATE ,
            OBJECTID TYPE CDHDR-OBJECTID,
            VALUE_NEW TYPE CDPOS-VALUE_NEW,
            VALUE_OLD TYPE CDPOS-VALUE_OLD,
            UDATE TYPE CDHDR-UDATE,
            MINBE TYPE MARC-MINBE,
            BSTMA TYPE MARC-BSTMA,
            WERKS TYPE MARC-WERKS,
            VERPR TYPE MBEW-VERPR,
            STPRS TYPE MBEW-STPRS,
            LBKUM TYPE MBEW-LBKUM,
            BUDAT TYPE MKPF-BUDAT,
            MBLNR TYPE MSEG-MBLNR,
            MENGE TYPE MSEG-MENGE,
            DMBTR TYPE MSEG-DMBTR,
            END OF TY_OBJDATE.
      data : int_cdhdr type table of cdhdr with header line,
           int_cdpos type table of cdpos with HEADER LINE,
           INT_OBJDATE TYPE TABLE OF TY_OBJDATE WITH HEADER LINE.
          int_marc type table of marc with header line.
    *DATA: int_pr1 TYPE TABLE OF ZVSAIPID WITH HEADER LINE.
      DATA : BEGIN OF INT_MATNR OCCURS 10,
             MAtnr like mara-matnr,
             end of int_matnr.
    DATA : BEGIN OF INT_MARC OCCURS 10,
             matnr like marc-matnr,
             MINBE like marC-mINBE,
             BSTMA LIKE Marc-bstma,
             WERKS LIKE MARC-WERKS,
             end of int_marc.
    DATA : BEGIN OF INT_MBEW OCCURS 10,
             MATNR LIKE MBEW-MATNR,
             VERPR LIKE MBEW-VERPR,
             STPRS LIKE MBEW-STPRS,
             LBKUM LIKE MBEW-LBKUM,
             end of int_MBEW.
    DATA : BEGIN OF INT_MKPF OCCURS 10,
             MBLNR LIKE MKPF-MBLNR,
             BUDAT LIKE MKPF-BUDAT,
             END OF INT_MKPF.
    DATA : BEGIN OF INT_MSEG OCCURS 10,
             MATNR LIKE MSEG-MATNR,
             MBLNR LIKE MSEG-MBLNR,
             MENGE LIKE MSEG-MENGE,
             DMBTR LIKE MSEG-DMBTR,
             END OF INT_MSEG.
    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.
      RANGES : ra_OBJECTID FOR E_T_DATA-OBJECTID.
              RA_UDATE FOR E_T_DATA-UDATE.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF I_INITFLAG = SBIWA_C_FLAG_ON.
      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.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Check DataSource validity
        CASE I_DSOURCE.
          WHEN 'ZOI_MM_INVENTORY_IPID'.
          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.
      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.
    READ TABLE I_T_SELECT INTO L_S_SELECT
    WITH KEY FIELDNM = 'UDATE'.
        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.
        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 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
      LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT
      WHERE FIELDNM = 'UDATE'.
      ENDLOOP
        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.
         IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''. "FULL or INIT
          OPEN CURSOR WITH HOLD S_CURSOR FOR
          select * from cdhdr where OBJECTCLAS = 'MATERIAL' AND TCODE = 'MM02'.
          ELSE. "DELTA
         OPEN CURSOR WITH HOLD G_CURSOR FOR
         select * from cdhdr where OBJECTCLAS = 'MATERIAL'
         AND TCODE = 'MM02'
         AND UDATE >= L_S_SELECT-LOW
         AND UDATE <= L_S_SELECT-HIGH.
         ENDIF.
         ENDIF.
       ENDIF.
        "First data package ?
        FETCH NEXT CURSOR S_CURSOR
              APPENDING  TABLE int_cdhdr
              PACKAGE SIZE S_S_IF-MAXSIZE.
       into table int_cdhdr
        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
        SELECT * FROM CDPOS INTO TABLE INT_CDPOS
             FOR ALL ENTRIES IN INT_CDHDR
             WHERE OBJECTID = INT_CDHDR-OBJECTID
             AND TABNAME = 'MARC'
             AND ( FNAME =  'BSTMA' OR FNAME = 'MINBE' ).
        LOOP AT int_cdpos.
          int_matnr-matnr = int_cdpos-objectid.
          APPEND int_matnr.
        ENDLOOP.
        SELECT  matnr MINBE BSTMA WERKS FROM MARC INTO TABLE INT_marc
                FOR ALL ENTRIES IN int_matnr
               WHERE MATNR = INT_matnr-matnr.
        SELECT  matnr VERPR STPRS LBKUM FROM MBEW INTO TABLE INT_MBEW
                FOR ALL ENTRIES IN int_matnr
               WHERE MATNR = INT_matnr-matnr.
        SELECT  matnr MBLNR MENGE DMBTR FROM MSEG INTO TABLE INT_MSEG
                FOR ALL ENTRIES IN int_matnr
               WHERE MATNR = INT_matnr-matnr.
         LOOP AT int_MSEG.
          int_MKPF-MBLNR = int_MSEG-MBLNR.
          APPEND int_MKPF.
        ENDLOOP.
        SELECT  MBLNR BUDAT FROM MKPF INTO TABLE INT_MKPF
                FOR ALL ENTRIES IN int_MKPF
               WHERE MBLNR = INT_MKPF-MBLNR.
    *BREAK-POINT.
        LOOP AT INT_CDPOS.
          READ TABLE INT_CDHDR WITH KEY OBJECTID = INT_CDPOS-OBJECTID .
          IF SY-SUBRC = 0.
            INT_OBJDATE-OBJECTID = INT_CDPOS-OBJECTID.
            INT_OBJDATE-VALUE_NEW = INT_CDPOS-VALUE_NEW.
            INT_OBJDATE-VALUE_OLD = INT_CDPOS-VALUE_OLD.
            INT_OBJDATE-UDATE = INT_CDHDR-UDATE.
            READ TABLE INT_MARC WITH KEY MATNR = INT_CDPOS-OBJECTID .
            IF SY-SUBRC = 0.
              INT_OBJDATE-MINBE = INT_MARC-MINBE.
              INT_OBJDATE-BSTMA = INT_MARC-BSTMA.
              INT_OBJDATE-WERKS = INT_MARC-WERKS.
              ENDIF.
            READ TABLE INT_MBEW WITH KEY MATNR = INT_CDPOS-OBJECTID .
            IF SY-SUBRC = 0.
              INT_OBJDATE-VERPR = INT_MBEW-VERPR.
              INT_OBJDATE-STPRS = INT_MBEW-STPRS.
              INT_OBJDATE-LBKUM = INT_MBEW-LBKUM.
             ENDIF.
            READ TABLE INT_MSEG WITH KEY MATNR = INT_CDPOS-OBJECTID .
            IF SY-SUBRC = 0.
              INT_OBJDATE-MBLNR = INT_MSEG-MBLNR.
              INT_OBJDATE-MENGE = INT_MSEG-MENGE.
              INT_OBJDATE-DMBTR = INT_MSEG-DMBTR.
             ENDIF.
            READ TABLE INT_MKPF WITH KEY MBLNR = INT_MSEG-MBLNR .
            IF SY-SUBRC = 0.
              INT_OBJDATE-MBLNR = INT_MKPF-MBLNR.
              INT_OBJDATE-BUDAT = INT_MKPF-BUDAT.
             ENDIF.
            APPEND INT_OBJDATE.
          ENDIF.
        ENDLOOP.
    *SELECT * FROM EBAN
        INTO CORRESPONDING FIELDS OF TABLE INT_PR1
        FOR ALL ENTRIES IN INT_OBJDATE
        WHERE BAnfn = int_objdate-objectid.
    *ZZPRREL
        LOOP AT INT_OBJDATE.
          E_T_DATA-OBJECTID = INT_OBJDATE-OBJECTID.
          E_T_DATA-UDATE = INT_OBJDATE-UDATE.
          E_T_DATA-VALUE_NEW = INT_OBJDATE-VALUE_NEW.
          E_T_DATA-VALUE_OLD = INT_OBJDATE-VALUE_OLD.
          E_T_DATA-MINBE = INT_OBJDATE-MINBE.
          E_T_DATA-BSTMA = INT_OBJDATE-BSTMA.
          E_T_DATA-WERKS = INT_OBJDATE-WERKS.
          E_T_DATA-VERPR = INT_OBJDATE-VERPR.
          E_T_DATA-STPRS = INT_OBJDATE-STPRS.
          E_T_DATA-LBKUM = INT_OBJDATE-LBKUM.
          E_T_DATA-MBLNR = INT_OBJDATE-MBLNR.
          E_T_DATA-MENGE = INT_OBJDATE-MENGE.
          E_T_DATA-DMBTR = INT_OBJDATE-DMBTR.
          E_T_DATA-BUDAT = INT_OBJDATE-BUDAT.
          APPEND E_T_DATA.
          CLEAR  E_T_DATA.
        ENDLOOP.
    Fetch records into interface table.
      named E_T_'Name of extract structure'.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.
    i assign points....
    Regards,
    PSR.

    Hi ,
    i am not find any sollution for this..
    any body help me for this problum...
    i assign points..
    Regards,
    PSR

  • 0HR_PY_1_CE - Delta init with time limitations

    Hallo everyone,
    I want to use the Content-Extractor 0HR_PY_1_CE to transfer payroll data into SAP BW in delta mode.
    As the source system is running payrolls for a very long time allready, I would like limit the data by time. Pittily the extractor does not support filtering by time in delta mode. (Found this on SAPs help pages and also tried to set start and enddate ... no luck as assumed.)
    So I had a look at the source systems customizing, but the only setting regarding a time frame for extraction I found is the one for PT-data. (Transaction SBIW -> Settings for Application-Specific DataSources (PI) -> Human Resources -> Define Time Frame for Transfer)
    Within the PY-Customizing there is no option to limit the extraction interval.
    Is there any other way to limit the extraction to a specific time frame when loading data via 0HR_PY_1_CE?
    Thanks a lot in advance and regards
    Chris
    Edited by: Christian Baum on Jul 27, 2010 12:15 PM

    Hi Yuvaraaj,
    thanks for taking the time to answer my question.
    For time selection I use the extractors default datafields: BEGDA and ENDDA.
    Pseudo-delta might be an option IF the two fields you mention are processed in the extractors selection logic. I actually don't know and would need to take a closer look on the extractors programm logic.
    Anyway my goal is to stay as close to SAPs standard as possible.
    Pittily the extractor does not support filtering by time in delta mode. (Found this on SAPs help pages and also tried to set start and enddate ... no luck as assumed.)
    I had another look at [SAPs documentation for 0HR_PY_1_CE|http://help.sap.com/saphelp_nw70ehp2/helpdata/en/6a/cccc6015484464b25605375a5db965/content.htm] and have to recall the statement above.
    As there is no restriction mentioned about delta and time selection there must be a way to pass a time frame when initializing the delta.
    I tried the following:
    1. I startet an Infopackage in full mode with the follwing filter criteria: BEGDA = 01.10.2009; ENDDA = 31.10.2009
    The extractor dilivers ~60000 records; their inper is allways 10.2009. -> Selection worls fine
    2. I started an Infopackage in delta init mode and exactly the same selection criteria as the full mode Infopackage and i receive millions of records whichs inper is spread over several years.
    So the time selection is definitely not working in delta mode.
    Are there any customizing settings I missed in the OLTP system?
    Regards
    Chris

  • Issue with Delta in Function Module

    Hi Team,
    I have an issue with delta in Genric extraction using function module.Full load is working fine and i have taken post_date as delta field.plz chk the code if any delta related statements are missing.
    FUNCTION ZRSAX_BIW_MANGEMENT_RAT .
    ""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
    *"  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  ZQMBW_FUJ_MANAGEMENT OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Example: DataSource for table MANAGEMENT RATING
      TABLES: ZQMBW_MANAGEMENT.
    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.
      RANGES: POST_DATE FOR ZMMTVEND_RATING-POST_DATE,
              VENDOR FOR ZMMTVEND_RATING-VENDOR.
    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 'ZQMMANAGEMENT_DS'.
          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 ?
        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 = 'VENDOR'.
            MOVE-CORRESPONDING L_S_SELECT TO VENDOR.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                INPUT  = VENDOR-LOW
              IMPORTING
                OUTPUT = VENDOR-LOW.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                INPUT  = VENDOR-HIGH
              IMPORTING
                OUTPUT = VENDOR-HIGH.
            APPEND VENDOR.
          ENDLOOP.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'POST_DATE'.
            MOVE-CORRESPONDING L_S_SELECT TO POST_DATE.
            CONCATENATE L_S_SELECT-LOW6(4)  L_S_SELECT-LOW3(2) L_S_SELECT-LOW+0(2) INTO POST_DATE-LOW.
            CONCATENATE L_S_SELECT-HIGH6(4)  L_S_SELECT-HIGH3(2) L_S_SELECT-HIGH+0(2) INTO POST_DATE-HIGH.
            APPEND POST_DATE.
          ENDLOOP.
    **Get Management rating details
          OPEN CURSOR WITH HOLD S_CURSOR FOR
          SELECT VENDOR POST_DATE OVERALL_MNGT_RAT OVERALL_DEV_RAT FROM ZMMTVEND_RATING WHERE VENDOR IN VENDOR AND POST_DATE IN POST_DATE .
        ENDIF.
    Fetch records into interface table.
        FETCH NEXT CURSOR S_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.

    Hi
    Check URLs:
    How to populate the ranges using FM for the SELECTs
    Re: Generic Delta Function Module

  • Why we will go for Queue delta instead of Unserialized and Direct delta ?

    Hi Experts,
    Why we will go for Queue delta instead of Unserialized and Direct delta ? specify any reasons for that ?
    What happens internally when we use Queue delta , Direct delta ?
    I will allocate points to those who help me in detail. My advance thanks who respond to my query.

    Hi,
    Direct Delta
    With this update mode, extraction data is transferred directly to the BW delta queues every time a document is posted. In this way, each document posted with delta extraction is converted to exactly one LUW in the related BW delta queues. If you are using this method, there is no need to schedule a job at regular intervals to transfer the data to the BW delta queues. On the other hand, the number of LUWs per DataSource increases significantly in the BW delta queues because the deltas of many documents are not summarized into one LUW in the BW delta queues as was previously the case for the V3 update.
    If you are using this update mode, note that you cannot post any documents during delta initialization in an application from the start of the recompilation run in the OLTP until all delta init requests have been successfully updated successfully in BW. Otherwise, data from documents posted in the meantime is irretrievably lost. The restrictions and problems described in relation to the "Serialized V3 update" do not apply to this update method.
    This update method is recommended for the following general criteria:
    a) A maximum of 10,000 document changes (creating, changing or deleting documents) are accrued between two delta extractions for the application in question. A (considerably) larger number of LUWs in the BW delta queue can result in terminations during extraction.
    b) With a future delta initialization, you can ensure that no documents are posted from the start of the recompilation run in R/3 until all delta-init requests have been successfully posted. This applies particularly if, for example, you want to include more organizational units such as another plant or sales organization in the extraction. Stopping the posting of documents always applies to the entire client.
    Queued Delta
    With this update mode, the extraction data for the affected application is compiled in an extraction queue (instead of in the update data) and can be transferred to the BW delta queues by an update collective run, as previously executed during the V3 update.
    Up to 10,000 delta extractions of documents to an LUW in the BW delta queues are cumulated in this way per DataSource, depending on the application.
    If you use this method, it is also necessary to schedule a job to regularly transfer the data to the BW delta queues ("update collective run"). However, you should note that reports delivered using the logistics extract structures Customizing cockpit are used during this scheduling. This scheduling is carried out with the same report which is used when you use the V3 updating (RMBWV311, RMBWV312 or RMBWV313).There is no point in scheduling with the RSM13005 report for this update method since this report only processes V3 update entries. The simplest way to perform scheduling is via the "Job control" function in the logistics extract structures Customizing Cockpit. We recommend that you schedule the job hourly during normal operation - that is, after successful delta initialization.
    In the case of a delta initialization, the document postings of the affected application can be included again after successful execution of the recompilation run in the OLTP (e.g OLI7BW, OLI8BW or OLI9BW), provided that you make sure that the update collective run is not started before all delta Init requests have been successfully updated in the BW.
    In the posting-free phase during the recompilation run in OLTP, you should execute the update collective run once (as before) to make sure that there are no old delta extraction data remaining in the extraction queues when you resume posting of documents.
    Using transaction SMQ1 and the queue names MCEX11, MCEX12 or MCEX13 you can get an overview of the data in the extraction queues.
    If you want to use the functions of the logistics extract structures Customizing cockpit to make changes to the extract structures of an application (for which you selected this update method), you should make absolutely sure that there is no data in the extraction queue before executing these changes in the affected systems. This applies in particular to the transfer of changes to a production system. You can perform a check when the V3 update is already in use in the respective target system using the RMCSBWCC check report.
    In the following cases, the extraction queues should never contain any data:
    - Importing an R/3 Support Package
    - Performing an R/3 upgrade
    For an overview of the data of all extraction queues of the logistics extract structures Customizing Cockpit, use transaction LBWQ. You may also obtain this overview via the "Log queue overview" function in the logistics extract structures Customizing cockpit. Only the extraction queues that currently contain extraction data are displayed in this case.
    The restrictions and problems described in relation to the "Serialized V3 update" do not apply to this update method.
    This update method is recommended for the following general criteria:
    a) More than 10,000 document changes (creating, changing or deleting a document) are performed each day for the application in question.
    b) In future delta initializations, you must reduce the posting-free phase to executing the recompilation run in R/3. The document postings should be included again when the delta Init requests are posted in BW. Of course, the conditions described above for the update collective run must be taken into account.
    Un-serialized V3 Update
    Note: Before PI Release 2002.1 the only update method available was V3 Update. As of PI 2002.1 three new update methods are available because the V3 update could lead to inconsistencies under certain circumstances. As of PI 2003.1 the old V3 update will not be supported anymore.
    With this update mode, the extraction data of the application in question continues to be written to the update tables using a V3 update module and is retained there until the data is read and processed by a collective update run.
    However, unlike the current default values (serialized V3 update); the data is read in the update collective run (without taking the sequence from the update tables into account) and then transferred to the BW delta queues.
    The restrictions and problems described in relation to the "Serialized V3 update" do not apply to this update method since serialized data transfer is never the aim of this update method. However, you should note the following limitation of this update method:
    The extraction data of a document posting, where update terminations occurred in the V2 update, can only be processed by the V3 update when the V2 update has been successfully posted.
    This update method is recommended for the following general criteria:
    a) Due to the design of the data targets in BW and for the particular application in question, it is irrelevant whether or not the extraction data is transferred to BW in exactly the same sequence in which the data was generated in R/3.
    Thanks,
    JituK

Maybe you are looking for

  • Black screen with cursor blinking for a long time before loading windows 7

    Hey guys, i'm having an annoying problem with my macbook pro... i installed windows 7 using bootcamp and now i get a black screen with cursor blinking for a long time before loading windows... it *****, it takes about 3 minutes to get my notebook run

  • SQL Developer in Read-Only-Mode

    Oracle SQL Developer version 1.2.1 BUILD MAIN-32.13 Running under WinXP Issue description: Impossible to start SQL Developer in Read-Only-Mode for certain users who should not be able to modify any data.

  • Authentication Paramaters in LDAP/AD

    Hi Everybody, I have limited information about AD and LDAP. I am going to install one application in my server, and I need to setup some parameters from our LDAP or AD server. In our company , my user has limited access to "Active Directory Users and

  • Error accessing library class

    Hi, I'm new to jdev coming from the eclipse world. I've got a problem when using a library (sapjco.jar). Here is what I'm doing: build a news class, start writing JCO.Client myConnection = JCO.createClien(....); Next step is that jdev wants me to imp

  • ITunes required password

    Every time I turn on my iPad it now presents a pop up box that asks for my iTunes password even when I am not in Itunes....very annoying. Anyone have any ideas? Thanks