Delta Extraction: Cross Application Table

Hello Gurus,
While enhancing an LO extractor, I understand that we need to create a structure with the fields needed for extraction and then append this to the main extract structure and populate this through the user exit. Now what I am worried about is if the fields happend to be a from a cross application table, how the delta would be taken care of?
As an Example, if I need to add in couple of fields of the delivery tables (LIPS and LIKP) in the Purchasing extractor (2LIS_02_SCL), am I going to get changed fields during the delta extraction?
Thanks...

Is that always true? Please look through the following scenario that Sunmit mentioned in response to Roberto's one of the blogs:
If a scenario demands a cross application enhancement
eg: Enhancing shipment relevant field in a delivery data source/extractor or delivery relevant field in an invoice relevant data source.
Is the delta relevance of these enhanced fields retained by enhancing the datasource at communication structure level? I guess, the delta of these enhanced fields would still be lost, since they are not included in the events that are used to create the delta.
(ie a shipment document (our field) may change without change in delivery document).
Any ideas???

Similar Messages

  • Delta Extraction for Custom Table

    Hi All,
    I have a Custom Table in R/3 with several fields and only one date field ( Creation Date ).
    I need to Create a data source(Function Module extractor) and delta enable it.
    Since i have no field *change date* on this table, is there a procedure/method to captures all
    delta. Appreciate all your help.

    Hi
    If delta field is Date (Record Create Date or change date), then use Upper Limit of 1 day.
    This will load Delta in BW as of yesterday. Leave Lower limit blank. If delta field is Time Stamp, then use Upper Limit of equal to 1800 Seconds (30 minutes).
    This will load Delta in BW as of 30 minutes old. Leave Lower limit blank.
    If delta field is a Numeric Pointer i.e. generated record # like in GLPCA table, then use
    Lower Limit. Use count 10-100. Leave upper limit blank. If value 10 is used then last 10
    records will be loaded again. If a record is created when load was running, those records
    may get lost. To prevent this situation, lower limit can be used to backup the starting
    sequence number. This may result in some records being processed more than once;
    therefore, be sure this DataSources is only feeding an ODS Object.
    Hope it helps and clear.

  • R/3 table to BW via Delta Extraction (Urgent plz)

    Hello Experts,
    How to load a data from one of the R/3 tables to BW when the table doenst contains either a time stamp, Date field or numeric pointer.
    I have PS Table in R/3 (RPSCO) with over 7 hundered thousand records in it. I would like to populate the data to a ODS via delta extraction.
    The table doesnt contain either a timestamp, numeric pointer or date. How would I extract a data now to BW via delta. Would it be possible to use Generic extraction.
    Thanks and Regards,
    Harish

    Hi Harish,
    If you need ODS to make delta DataMart you can not delete data before every upload.
    For spee-up the upload you can follow these solution:
    1)Take off from parameters of your ODS Reporting BEx flag. Without this flag the system does not spent time for reporting activation of data.
    2)If upload is too slow you can try to make delta in R/3 via a program that compare previous upload and new status of your table, introducing in the tableforthe upload only modified records. It can be very slow, but it is all R/3 time.
    Ciao.
    Riccardo.

  • Use of Update Table in Delta Extraction ....

    Hi all ,
           I have a small doubt regarding why there is an update table introduced between statistical table and delta queue in delta extraction process ... why not directly extract data from the statastical table and put it in to the delta queue .....
    Kindly help me regarding this ...
    Regards ,
    Santosh ....

    Hi Santosh,
    I think it is related to resource, batch and memory, problem. Infact you can use only delta queue if you select direct update, but you use this kind of update only for huge amount of data produced in a short period of time.
    The two queue let you divide transaction moment to batch collection moment.
    Hope this help.
    Ciao.
    Riccardo.

  • Time-stamp Table for delta extraction

    Hi SDNers,
    What are the BW Time-stamp Tables for delta extraction in Source System(R/3).
    Thanks,
    Satya

    the tables involved are :
    ROOSPRMS
    ROOSPRMSC
    ROOSPRMSF
    in the second table (ROOSPRMSC) you'll find the timestamp
    M.

  • MVER Table Delta Extraction

    Hi,
    My requirement is to create a generic delta which should run on daily basis to deliver deltas to BW system.
    I am wondering what is the field that i should use in the generic delta definition of the to be created datasource as in the
    Table MVER,  i do not find any date field or timestamp field to determine delta.
    The field i have are Fiscal Year and Period Indicator (Daily,Weekly, Monthly etc Flag).
    Any one has any idea of how one can create generic delta datasource if underlying table does not have any Date field or timestamp field or Numric key for that matter?

    Hi,
    You can achieve that as well using Rule group in transformation. Keep the same datasource as I have mentioned and similar selection conditions as well.
    As you have mentioned that you want to store the data on monthly basis rather than yearly basis, you can achive so in Transformations using concept of Rule Group. See below article on same.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/90754b76-bcf1-2a10-3ba7-b299b2be09f2
    In your case, table has entries in this fashion:
    Material    Fiscal year  Consumption1month consumption2month consumption3month .........
    ABC         2010             10                             20                             30 
    whereas as I understand you want to have data as
    Material   fiscal year  Month    Consumption
    ABC        2010            1           10
    ABC        2010            2           20
    ABC        2010            3           30
    Please see the link below which gives the details about fields that denote data for a particular period in table MVER.
    http://www.sap-img.com/materials/how-to-get-the-total-stock-consumption-data.htm

  • Generic Delta extraction by Function module issue

    Hello Experts,
    Please help !!!
    I have problem for delta extraction by Function module.  For the full load, I wrote function module based on RSAX_BIW_GET_DATA_SIMPLE. It works fine.
    But I would like to have the delta load enabled. Therefore, I modified the datasource, add a delta specific field u2018ztimestampu2019, which type is calendar day.
    Then I create a function module based on template u2018RSAX_BIW_GET_DATAu2019, as this support the upload mode. But when I test this datasource in RSA3, no matter itu2019s full load or initial delta load, it always send me an error, u201CErrors occurred during the extractionu201D.
    I had some debug, and found that there is no value  for i_isource when my function module is called. Therefore it raised the exception.
    But I do not have the chance to debug my code for the delta logic, can somebody help to check?
    I also check the entries in ROOSOURCE,
    For my datasource ZTRNREC_FM_DELTA, The DELTA value is u2018AIEu2019, and extraction method is u2018F2u2019, should I change them to DELTA= u2018Du2019 and extraction method to u2018F1u2019? Where to change?
    FUNCTION ZRSAX_TRAININGREC_DELTA.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SBIWA_S_INTERFACE-REQUNR
    *"     VALUE(I_ISOURCE) TYPE  SBIWA_S_INTERFACE-ISOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SBIWA_S_INTERFACE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SBIWA_S_INTERFACE-INITFLAG OPTIONAL
    *"     VALUE(I_UPDMODE) TYPE  SBIWA_S_INTERFACE-UPDMODE OPTIONAL
    *"     VALUE(I_DATAPAKID) TYPE  SBIWA_S_INTERFACE-DATAPAKID OPTIONAL
    *"     VALUE(I_PRIVATE_MODE) OPTIONAL
    *"     VALUE(I_CALLMODE) LIKE  ROARCHD200-CALLMODE OPTIONAL
    *"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
    *"  TABLES
    *"      I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZTRN_REC_TIME OPTIONAL
    *"      E_T_SOURCE_STRUCTURE_NAME OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    The input parameter I_DATAPAKID is not supported yet !
    Example: InfoSource containing TADIR objects
    Auxiliary Selection criteria structure
      DATA: l_s_select TYPE sbiwa_s_select.
    Maximum number of lines for DB table
      STATICS: l_maxsize TYPE sbiwa_s_interface-maxsize,
              S_S_IF TYPE SRSC_S_IF_SIMPLE,
              S_COUNTER_DATAPAKID LIKE SY-TABIX.
    Parameter I_PRIVATE_MODE:
    Some applications might want to use this function module for other
    purposes as well (e.g. data supply for OLTP reporting tools). If the
    processing logic has to be different in this case, use the optional
    parameter I_PRIVATE_MODE (not supplied by BIW !) to distinguish
    between BIW calls (I_PRIVATE_MODE = SPACE) and other calls
    (I_PRIVATE_MODE = X).
    If the message handling has to be different as well, define Your own
    messaging macro which interprets parameter I_PRIVATE_MODE. When
    called by BIW, it should use the LOG_WRITE macro, otherwise do what
    You want.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF i_initflag = sbiwa_c_flag_on.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    The input parameter I_DATAPAKID is not supported yet !
    Invalid second initialization call -> error exit
        IF NOT g_flag_interface_initialized IS INITIAL.
          IF 1 = 2. MESSAGE e008(r3). ENDIF.
          log_write 'E'                    "message type
                    'R3'                   "message class
                    '008'                  "message number
                    ' '                    "message variable 1
                    ' '.                   "message variable 2
          RAISE error_passed_to_mess_handler.
        ENDIF.
    Check InfoSource validity
        CASE i_isource.
          WHEN 'ZTRNREC_FM_DELTA'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE e009(r3). ENDIF.
            log_write 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      i_isource            "message variable 1
                      ' '.                 "message variable 2
            RAISE error_passed_to_mess_handler.
        ENDCASE.
    Check for supported update mode
        CASE i_updmode.
          WHEN 'F'.
          WHEN 'D'.
          WHEN 'R'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE e011(r3). ENDIF.
            log_write 'E'                  "message type
                      'R3'                 "message class
                      '011'                "message number
                      i_updmode            "message variable 1
                      ' '.                 "message variable 2
            RAISE error_passed_to_mess_handler.
        ENDCASE.
    Check for obligatory selection criteria
        APPEND LINES OF i_t_select TO g_t_select.
    Fill parameter buffer for data extraction calls
        g_s_interface-requnr    = i_requnr.
        g_s_interface-isource   = i_isource.
        g_s_interface-maxsize   = i_maxsize.
        g_s_interface-initflag  = i_initflag.
        g_s_interface-updmode   = i_updmode.
        g_s_interface-datapakid = i_datapakid.
        g_flag_interface_initialized = sbiwa_c_flag_on.
    Fill field list table for an optimized select statement
    (in case that there is no 1:1 relation between InfoSource fields
    and database table fields this may be far from beeing trivial)
        APPEND LINES OF i_t_fields TO g_t_segfields.
      ELSE.                 "Initialization mode or data extraction ?
    Data transfer: First Call      OPEN CURSOR + FETCH
                   Following Calls FETCH only
      LOOP AT G_T_SELECT INTO L_S_SELECT
            WHERE FIELDNM = 'ZTIMESTAMP'.
      ENDLOOP.
          IF G_COUNTER_DATAPAKID = 0.
            IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
            OPEN CURSOR WITH HOLD G_CURSOR FOR
                SELECT (g_t_fields)
                FROM ZTRN_REC_TIME.
            ELSE.
              OPEN CURSOR WITH HOLD G_CURSOR FOR
                SELECT (g_t_fields)
                FROM ZTRN_REC_TIME
                WHERE ZTIMESTAMP >= L_S_SELECT-LOW
                  AND ZTIMESTAMP  <= L_S_SELECT-HIGH.
            ENDIF.
          ENDIF.
      FETCH NEXT CURSOR G_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR G_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
      ENDIF.
    ENDFUNCTION.
    I found some similar issue in this forum by link
    Generic Extractor Delta Function Module code, but still I could not get clear answer.
    Can you please help me:
    1)     why there is no value for i_source , how to fix it?
    2)     For the delta logic for ztimestemp, is it correct?
    3)     Need I modify the entries in ROOSOURCE ?
    Thanks a lot !!!

    Hello Andre,
            Thanks a lot for your help. I did some change , but still does not work. Could you please help check.
    Now the source code are the following, It's based on the RSAX_BIW_GET_DATA_SIMPLE, as you confirm that this also supply the update mode (full, initial delta, delta).
    FUNCTION RSAX_BIW_GET_DATA_TRAININGREC1.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR
    *"     VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
    *"     VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
    *"     VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
    *"     VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY OPTIONAL
    *"     VALUE(I_REMOTE_CALL) TYPE  SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
    *"  TABLES
    *"      I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
    *"      I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
    *"      E_T_DATA STRUCTURE  ZTRN_REC_TIME OPTIONAL
    *"  EXCEPTIONS
    *"      NO_MORE_DATA
    *"      ERROR_PASSED_TO_MESS_HANDLER
    Auxiliary Selection criteria structure
      DATA: L_S_SELECT TYPE SRSC_S_SELECT.
    Maximum number of lines for DB table
      STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
    counter
              S_COUNTER_DATAPAKID LIKE SY-TABIX,
    cursor
              S_CURSOR TYPE CURSOR.
    Select ranges
    RANGES:
            L_R_ZTIMESTAMP FOR ZTRN_REC_TIME-ZTIMESTAMP.
    Initialization mode (first call by SAPI) or data transfer mode
    (following calls) ?
      IF I_INITFLAG = SBIWA_C_FLAG_ON.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Check DataSource validity
        CASE I_DSOURCE.
          WHEN 'ZTRNREC_FM'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE E009(R3). ENDIF.
    this is a typical log call. Please write every error message like this
            LOG_WRITE 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      I_DSOURCE   "message variable 1
                      ' '.                 "message variable 2
            RAISE ERROR_PASSED_TO_MESS_HANDLER.
        ENDCASE.
        APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
    Fill parameter buffer for data extraction calls
        S_S_IF-REQUNR    = I_REQUNR.
        S_S_IF-DSOURCE = I_DSOURCE.
        S_S_IF-MAXSIZE   = I_MAXSIZE.
    Fill field list table for an optimized select statement
    (in case that there is no 1:1 relation between InfoSource fields
    and database table fields this may be far from beeing trivial)
        APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
      ELSE.                 "Initialization mode or data extraction ?
    Data transfer: First Call      OPEN CURSOR + FETCH
                   Following Calls FETCH only
    First data package -> OPEN CURSOR
        IF S_COUNTER_DATAPAKID = 0.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'ZTIMESTAMP'.
          MOVE-CORRESPONDING L_S_SELECT TO L_R_ZTIMESTAMP.
          APPEND L_R_ZTIMESTAMP.
          ENDLOOP.
    Determine number of database records to be read per FETCH statement
    from input parameter I_MAXSIZE. If there is a one to one relation
    between DataSource table lines and database entries, this is trivial.
    In other cases, it may be impossible and some estimated value has to
    be determined.
         IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
            OPEN CURSOR WITH HOLD S_CURSOR FOR
            SELECT (S_S_IF-T_FIELDS)
            FROM ZTRN_REC_TIME.
            ELSE.
            OPEN CURSOR WITH HOLD G_CURSOR FOR
            SELECT (S_S_IF-T_FIELDS)
            FROM ZTRN_REC_TIME
            WHERE ZTIMESTAMP >= L_S_SELECT-LOW
            AND ZTIMESTAMP <= L_S_SELECT-HIGH.
         ENDIF.
        ENDIF.                             "First data package ?
    Fetch records into interface table.
      named E_T_'Name of extract structure'.
        FETCH NEXT CURSOR S_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.
    I think it already includes the important statements you suggested.
    I test this FM in RSA3, for the Full load mode, it works fine. Also if I checked the debug mode in execution , it will stop in the code and let me debug.
    But when I choose other mode, like 'initializion of the delta transfer'  or simulation of initial delta, I always get error 'error occurs  during the extraction' .. even I choose debug mode, but it could not enter the code for debug..
    Till now I did not see any parameter or value for the upload mode..
    Another questions is that, in RSO2, I define Ztimestamp as my delta field.. But , can I add other field as selection condition in the datasource definition, and has its range table in this function module ?
    Should I change the entries in ROOSOURCE for this datasource ??
    Please let me know your feedback, do you have some concret example for generic delta extraction ?
    Thanks a lot !

  • Urgent: Error-Record 39,779, segment 0001 is not in the cross-record table

    Hi Gurus,
    This is an urgent production issue: I got the following error-
    I am updating data records from a DSO to Infocube in delta mode,
    1.Record 39,779, segment 0001 is not in the cross-record table
    2.Error in substep: End Routine
    I dont know problem is in the End Routine or somewhere else,
    The End routine is this:
    PROGRAM trans_routine.
          CLASS routine DEFINITION
    CLASS lcl_transform DEFINITION.
      PUBLIC SECTION.
    Attributs
        DATA:
          p_check_master_data_exist
                TYPE RSODSOCHECKONLY READ-ONLY,
    *-    Instance for getting request runtime attributs;
        Available information: Refer to methods of
        interface 'if_rsbk_request_admintab_view'
          p_r_request
                TYPE REF TO if_rsbk_request_admintab_view READ-ONLY.
      PRIVATE SECTION.
        TYPE-POOLS: rsd, rstr.
      Rule specific types
        TYPES:
          BEGIN OF tys_TG_1,
         InfoObject: ZVEHICLE Unique Vehicle ID.
            /BIC/ZVEHICLE           TYPE /BIC/OIZVEHICLE,
         InfoObject: ZLOCID Mine Site.
            /BIC/ZLOCID           TYPE /BIC/OIZLOCID,
         InfoObject: ZLOCSL Location Storage Location.
            /BIC/ZLOCSL           TYPE /BIC/OIZLOCSL,
         InfoObject: 0VENDOR Vendor.
            VENDOR           TYPE /BI0/OIVENDOR,
         InfoObject: ZNOMTK Nomination Number.
            /BIC/ZNOMTK           TYPE /BIC/OIZNOMTK,
         InfoObject: ZNOMIT Nomination Item.
            /BIC/ZNOMIT           TYPE /BIC/OIZNOMIT,
         InfoObject: ZNOMNR Nomination number.
            /BIC/ZNOMNR           TYPE /BIC/OIZNOMNR,
         InfoObject: ZVSTTIME Vehicle Starting Time Stamp.
            /BIC/ZVSTTIME           TYPE /BIC/OIZVSTTIME,
         InfoObject: ZVEDTIME Vehicle Ending Time Stamp.
            /BIC/ZVEDTIME           TYPE /BIC/OIZVEDTIME,
         InfoObject: ZNETWT Net Weight.
            /BIC/ZNETWT           TYPE /BIC/OIZNETWT,
         InfoObject: TU_GRS_WG Gross Wgt.
            /BIC/TU_GRS_WG           TYPE /BIC/OITU_GRS_WG,
         InfoObject: ZTU_TRE_W Tare Wgt.
            /BIC/ZTU_TRE_W           TYPE /BIC/OIZTU_TRE_W,
         InfoObject: ZCUSTWT Customer Weight.
            /BIC/ZCUSTWT           TYPE /BIC/OIZCUSTWT,
         InfoObject: ZCAR_NO Car Number.
            /BIC/ZCAR_NO           TYPE /BIC/OIZCAR_NO,
         InfoObject: ZINBND_ID Train Consist Inbound ID.
            /BIC/ZINBND_ID           TYPE /BIC/OIZINBND_ID,
         InfoObject: ZOTBND_ID Train Consist Return Load.
            /BIC/ZOTBND_ID           TYPE /BIC/OIZOTBND_ID,
         InfoObject: 0SOLD_TO Sold-to Party.
            SOLD_TO           TYPE /BI0/OISOLD_TO,
         InfoObject: 0CUSTOMER Customer Number.
            CUSTOMER           TYPE /BI0/OICUSTOMER,
         InfoObject: 0SHIP_TO Ship-To Party.
            SHIP_TO           TYPE /BI0/OISHIP_TO,
         InfoObject: ZVEHI_NO Vehicle Number.
            /BIC/ZVEHI_NO           TYPE /BIC/OIZVEHI_NO,
         InfoObject: ZCARSTDAT Car Start Date.
            /BIC/ZCARSTDAT           TYPE /BIC/OIZCARSTDAT,
         InfoObject: ZCAREDDAT Car End Date.
            /BIC/ZCAREDDAT           TYPE /BIC/OIZCAREDDAT,
         InfoObject: ZCARSTTIM Car Start Time.
            /BIC/ZCARSTTIM           TYPE /BIC/OIZCARSTTIM,
         InfoObject: ZCAREDTIM Car End Time.
            /BIC/ZCAREDTIM           TYPE /BIC/OIZCAREDTIM,
         InfoObject: 0COMPANY Company.
            COMPANY           TYPE /BI0/OICOMPANY,
         InfoObject: ZCONTRACT Contract.
            /BIC/ZCONTRACT           TYPE /BIC/OIZCONTRACT,
         InfoObject: 0PLANT Plant.
            PLANT           TYPE /BI0/OIPLANT,
         InfoObject: ZLOADTIME Total Vehicle Loading time.
            /BIC/ZLOADTIME           TYPE /BIC/OIZLOADTIME,
         InfoObject: ZSHIPDATE Shipping Date.
            /BIC/ZSHIPDATE           TYPE /BIC/OIZSHIPDATE,
         InfoObject: ZSHIPTIME Shipping Time.
            /BIC/ZSHIPTIME           TYPE /BIC/OIZSHIPTIME,
         InfoObject: ZMNEDDT Manifest End Date.
            /BIC/ZMNEDDT           TYPE /BIC/OIZMNEDDT,
         InfoObject: ZMNEDTM Manifest End Time.
            /BIC/ZMNEDTM           TYPE /BIC/OIZMNEDTM,
         InfoObject: ZLDEDDT Loaded End Date.
            /BIC/ZLDEDDT           TYPE /BIC/OIZLDEDDT,
         InfoObject: ZLDEDTM Loaded End Time.
            /BIC/ZLDEDTM           TYPE /BIC/OIZLDEDTM,
         InfoObject: ZMANVAR Manifest Variance.
            /BIC/ZMANVAR           TYPE /BIC/OIZMANVAR,
         InfoObject: ZTU_TYPE Trpr Unit Type.
            /BIC/ZTU_TYPE           TYPE /BIC/OIZTU_TYPE,
         InfoObject: ZACTULQTY Actual posted quantity.
            /BIC/ZACTULQTY           TYPE /BIC/OIZACTULQTY,
         InfoObject: ZVEDDT Vehicle End Date.
            /BIC/ZVEDDT           TYPE /BIC/OIZVEDDT,
         InfoObject: ZVEDTM Vehicle End Time.
            /BIC/ZVEDTM           TYPE /BIC/OIZVEDTM,
         InfoObject: ZVSTDT Vehicle Start Date.
            /BIC/ZVSTDT           TYPE /BIC/OIZVSTDT,
         InfoObject: ZVSTTM Vehicle Start Time.
            /BIC/ZVSTTM           TYPE /BIC/OIZVSTTM,
         InfoObject: ZTRPT_TYP Vehicle type.
            /BIC/ZTRPT_TYP           TYPE /BIC/OIZTRPT_TYP,
         InfoObject: 0CALMONTH Calendar Year/Month.
            CALMONTH           TYPE /BI0/OICALMONTH,
         InfoObject: 0CALYEAR Calendar Year.
            CALYEAR           TYPE /BI0/OICALYEAR,
         InfoObject: ZLOEDDT Quality Sent End Date.
            /BIC/ZLOEDDT           TYPE /BIC/OIZLOEDDT,
         InfoObject: ZLOEDTM Quality sent End Time.
            /BIC/ZLOEDTM           TYPE /BIC/OIZLOEDTM,
         InfoObject: ZATMDDT At Mine End Date.
            /BIC/ZATMDDT           TYPE /BIC/OIZATMDDT,
         InfoObject: ZATMDTM At Mine End Time.
            /BIC/ZATMDTM           TYPE /BIC/OIZATMDTM,
         InfoObject: ZDELAY Delay Duration.
            /BIC/ZDELAY           TYPE /BIC/OIZDELAY,
         InfoObject: ZSITYP Schedule type.
            /BIC/ZSITYP           TYPE /BIC/OIZSITYP,
         InfoObject: ZDOCIND Reference document indicator.
            /BIC/ZDOCIND           TYPE /BIC/OIZDOCIND,
         InfoObject: 0BASE_UOM Base Unit of Measure.
            BASE_UOM           TYPE /BI0/OIBASE_UOM,
         InfoObject: 0UNIT Unit of Measure.
            UNIT           TYPE /BI0/OIUNIT,
         InfoObject: ZACT_UOM Actual UOM.
            /BIC/ZACT_UOM           TYPE /BIC/OIZACT_UOM,
         Field: RECORD.
            RECORD           TYPE RSARECORD,
          END   OF tys_TG_1.
        TYPES:
          tyt_TG_1        TYPE STANDARD TABLE OF tys_TG_1
                            WITH NON-UNIQUE DEFAULT KEY.
    $$ begin of global - insert your declaration only below this line  -
    ... "insert your code here
    $$ end of global - insert your declaration only before this line   -
        METHODS
          end_routine
            IMPORTING
              request                  type rsrequest
              datapackid               type rsdatapid
            EXPORTING
              monitor                  type rstr_ty_t_monitors
            CHANGING
              RESULT_PACKAGE              type tyt_TG_1
            RAISING
              cx_rsrout_abort.
        METHODS
          inverse_end_routine
            IMPORTING
              i_th_fields_outbound         TYPE rstran_t_field_inv
              i_r_selset_outbound          TYPE REF TO cl_rsmds_set
              i_is_main_selection          TYPE rs_bool
              i_r_selset_outbound_complete TYPE REF TO cl_rsmds_set
              i_r_universe_inbound         TYPE REF TO cl_rsmds_universe
            CHANGING
              c_th_fields_inbound          TYPE rstran_t_field_inv
              c_r_selset_inbound           TYPE REF TO cl_rsmds_set
              c_exact                      TYPE rs_bool.
    ENDCLASS.                    "routine DEFINITION
    $$ begin of 2nd part global - insert your code only below this line  *
    ... "insert your code here
    $$ end of 2nd part global - insert your code only before this line   *
          CLASS routine IMPLEMENTATION
    CLASS lcl_transform IMPLEMENTATION.
          Method end_routine
          Calculation of result package via end routine
          Note: Update of target fields depends on rule assignment in
          transformation editor. Only fields that have a rule assigned,
          are updated to the data target.
      <-> result package
      METHOD end_routine.
    *=== Segments ===
        FIELD-SYMBOLS:
          <RESULT_FIELDS>    TYPE tys_TG_1.
        DATA:
          MONITOR_REC     TYPE rstmonitor.
    *$*$ begin of routine - insert your code only below this line        *-*
    Fill the following fields by reading Nomination and Vehicls DSO
    SOLD_TO, Customer
    data: L_TIMESTAMP1 TYPE timestamp,
          L_TIMESTAMP2 TYPE timestamp,
          L_TIMESTAMP3 type CCUPEAKA-TIMESTAMP,
          L_TIMESTAMP4 type CCUPEAKA-TIMESTAMP,
          L_TIMESTAMP5 type CCUPEAKA-TIMESTAMP,
          L_TIMESTAMP6 type CCUPEAKA-TIMESTAMP,
          L_TIMESTAMP7 TYPE timestamp,
          L_TIMESTAMP8 TYPE timestamp,
          L_TIMESTAMP9 type timestamp,
          L_TIMESTAMP10 type TIMESTAMP,
          L_CHAR1(14),
          L_CHAR2(14),
          l_duration type I,
          L_TS TYPE TZONREF-TZONE,
          l_flag,
          l_nomit TYPE /BIC/OIZNOMIT,
          l_error_flag.
    l_TS = 'CST'.
    Data: EXTRA_PACKAGE type tyt_TG_1.
    data: extra_fields type tys_TG_1.
    LOOP at RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
    clear l_error_flag.
    Get sold_to and customer from nomination table.
       Select single SOLD_TO /BIC/ZLOCSL /BIC/ZCONTRACT COMPANY
                     /BIC/ZMNEDDT /BIC/ZMNEDTM /BIC/ZLDEDDT
                     /BIC/ZLDEDTM SHIP_TO /BIC/ZACTULQTY
                     /BIC/ZLOEDDT /BIC/ZLOEDTM /BIC/ZDELAY
                     /BIC/ZATMDDT /BIC/ZATMDTM
                     /BIC/ZSITYP /BIC/ZDOCIND
               into (<RESULT_FIELDS>-SOLD_TO,
                     <RESULT_FIELDS>-/BIC/ZLOCSL,
                     <RESULT_FIELDS>-/BIC/ZCONTRACT,
                     <RESULT_FIELDS>-company,
                     <RESULT_FIELDS>-/BIC/ZMNEDDT,
                     <RESULT_FIELDS>-/BIC/ZMNEDTM,
                     <RESULT_FIELDS>-/BIC/ZLDEDDT,
                     <RESULT_FIELDS>-/BIC/ZLDEDTM,
                     <RESULT_FIELDS>-SHIP_TO,
                     <RESULT_FIELDS>-/BIC/ZACTULQTY,
                     <RESULT_FIELDS>-/BIC/ZLOEDDT,
                     <RESULT_FIELDS>-/BIC/ZLOEDTM,
                     <RESULT_FIELDS>-/BIC/ZDELAY,
                     <RESULT_FIELDS>-/BIC/ZATMDDT,
                     <RESULT_FIELDS>-/BIC/ZATMDTM,
                     <RESULT_FIELDS>-/BIC/ZSITYP,
                     <RESULT_FIELDS>-/BIC/ZDOCIND)
               from   /BIC/AZTSW_0000
               where /BIC/ZNOMTK = <RESULT_FIELDS>-/BIC/ZNOMTK
                AND  /BIC/ZNOMIT = <RESULT_FIELDS>-/BIC/ZNOMIT.
    Select Invalid Nominations
      if sy-subrc <> 0.
        l_error_flag = 'X'.
      endif.
       <RESULT_FIELDS>-customer = <RESULT_FIELDS>-SOLD_TO.
    Prepare time stamp for Time Differences
    Vehicle Starting Time Stamp
      clear : L_TIMESTAMP9,L_TIMESTAMP10.
      CONVERT DATE <RESULT_FIELDS>-/BIC/ZCARSTDAT TIME
                   <RESULT_FIELDS>-/BIC/ZCARSTTIM
               INTO TIME STAMP L_TIMESTAMP9 TIME ZONE l_TS.
    Vehicle Ending Time Stamp
      CONVERT DATE <RESULT_FIELDS>-/BIC/ZCAREDDAT TIME
                   <RESULT_FIELDS>-/BIC/ZCAREDTIM
               INTO TIME STAMP L_TIMESTAMP10 TIME ZONE l_TS.
      Clear : L_TIMESTAMP3, L_TIMESTAMP4,
             <RESULT_FIELDS>-/BIC/ZVEDTIME,
             <RESULT_FIELDS>-/BIC/ZVSTTIME.
      <RESULT_FIELDS>-/BIC/ZVEDTIME = L_TIMESTAMP10.
      <RESULT_FIELDS>-/BIC/ZVSTTIME = L_TIMESTAMP9.
      L_TIMESTAMP3 = L_TIMESTAMP10.
      L_TIMESTAMP4 = L_TIMESTAMP9.
    Caliculate the load time
    IF L_TIMESTAMP3 is initial.
       clear <RESULT_FIELDS>-/BIC/ZLOADTIME.
    elseif L_TIMESTAMP4 is initial.
       clear <RESULT_FIELDS>-/BIC/ZLOADTIME.
    else.
       CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
         EXPORTING
           timestamp1       =  L_TIMESTAMP3
           timestamp2       =  L_TIMESTAMP4
         IMPORTING
           DIFFERENCE        = <RESULT_FIELDS>-/BIC/ZLOADTIME
    ENDIF.
    Caliculate the Manifest Variance
       clear : L_TIMESTAMP5,L_TIMESTAMP6,L_TIMESTAMP7,L_TIMESTAMP8.
       CONVERT DATE <RESULT_FIELDS>-/BIC/ZMNEDDT TIME
                    <RESULT_FIELDS>-/BIC/ZMNEDTM
               INTO TIME STAMP L_TIMESTAMP7 TIME ZONE l_TS.
       CONVERT DATE <RESULT_FIELDS>-/BIC/ZLDEDDT TIME
                    <RESULT_FIELDS>-/BIC/ZLDEDTM
               INTO TIME STAMP L_TIMESTAMP8 TIME ZONE l_TS.
      L_TIMESTAMP5 = L_TIMESTAMP7.
      L_TIMESTAMP6 = L_TIMESTAMP8.
    Caliculate the Maniefest Variance
    IF L_TIMESTAMP5 is initial.
       clear <RESULT_FIELDS>-/BIC/ZMANVAR.
    elseif L_TIMESTAMP6 is initial.
       clear <RESULT_FIELDS>-/BIC/ZMANVAR.
    else.
       CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
         EXPORTING
           timestamp1       =  L_TIMESTAMP5
           timestamp2       =  L_TIMESTAMP6
         IMPORTING
           DIFFERENCE        = <RESULT_FIELDS>-/BIC/ZMANVAR
       IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.
    ENDIF.
    Delete datapackets with blank nominations
    Delete datapackets with blank shipdate and Invalid Time Stamps
    *IF <RESULT_FIELDS>-/BIC/ZNOMTK IS INITIAL OR
      <RESULT_FIELDS>-/BIC/ZSHIPDATE IS INITIAL.
    l_error_flag = 'X'.
    *ENDIF.
    <RESULT_FIELDS>-/BIC/ZVEHI_NO = 1.
      <RESULT_FIELDS>-CALMONTH = <RESULT_FIELDS>-/BIC/ZSHIPDATE(6).
      <RESULT_FIELDS>-CALYEAR  = <RESULT_FIELDS>-/BIC/ZSHIPDATE(4).
    if l_error_flag = 'X'.
    Looks like Monitor Entries are not working in SP11.
    Hence the following is commented temporarily.
    CLEAR MONITOR_REC.
    MONITOR_REC-MSGID = '0M'.
    MONITOR_REC-MSGTY = 'S'.
    MONITOR_REC-MSGNO = '501'.
    MONITOR_REC-MSGV1 = <RESULT_FIELDS>-/BIC/ZNOMTK.
    MONITOR_REC-recno = sy-tabix.
    APPEND MONITOR_REC to MONITOR.
    RAISE exception type CX_RSROUT_ABORT.
    DELETE RESULT_PACKAGE index sy-tabix.
    CLEAR L_ERROR_FLAG.
    else.
       MODIFY RESULT_PACKAGE FROM <RESULT_FIELDS>.
    endif.
    clear l_nomit.
    l_nomit = <RESULT_FIELDS>-/BIC/ZNOMIT.
    extra_fields = <RESULT_FIELDS>.
    Actual Qty and Contract details
       Select /BIC/ZLOCSL /BIC/ZNOMIT /BIC/ZCONTRACT /BIC/ZACTULQTY
              /BIC/ZSITYP /BIC/ZDOCIND
              SOLD_TO SHIP_TO COMPANY
               into (extra_fields-/BIC/ZLOCSL,
                     extra_fields-/BIC/ZNOMIT,
                     extra_fields-/BIC/ZCONTRACT,
                     extra_fields-/BIC/ZACTULQTY,
                     extra_fields-/BIC/ZSITYP,
                     extra_fields-/BIC/ZDOCIND,
                     extra_fields-SOLD_TO,
                     extra_fields-SHIP_TO,
                     extra_fields-company)
               from  /BIC/AZTSW_0000
               where /BIC/ZNOMTK = <RESULT_FIELDS>-/BIC/ZNOMTK AND
                     /BIC/ZNOMIT <> l_NOMIT.
           INSERT extra_fields into table EXTRA_PACKAGE.
       endselect.
    ENDLOOP.
    Append lines of extra_package to RESULT_PACKAGE.
    *--  fill table "MONITOR" with values of structure "MONITOR_REC"
    *-   to make monitor entries
    ... "to cancel the update process
       raise exception type CX_RSROUT_ABORT.
    $$ end of routine - insert your code only before this line         -
      ENDMETHOD.                    "end_routine
          Method inverse_end_routine
          This subroutine needs to be implemented only for direct access
          (for better performance) and for the Report/Report Interface
          (drill through).
          The inverse routine should transform a projection and
          a selection for the target to a projection and a selection
          for the source, respectively.
          If the implementation remains empty all fields are filled and
          all values are selected.
      METHOD inverse_end_routine.
    $$ begin of inverse routine - insert your code only below this line-
    ... "insert your code here
    $$ end of inverse routine - insert your code only before this line -
      ENDMETHOD.                    "inverse_end_routine
    ENDCLASS.                    "routine IMPLEMENTATION

    Hi,
    Most probably you are appending some records in the data package or deleting from the data package through end routine or expert routine or start routine.
    I just solved it.....you will have to import the note 1180163.
    Then modify the code which you are using....and include the function module as mentioned in the note 1223532.
    You need to add the function module just before you append the records.This will work perfectly.
    Thanks
    Ajeet

  • Error while doing DELTA Extraction

    Hi BW Experts,
    In my R/3, I have a generic data source ZBUT_VW.
    It receives data from a View which is created based on couple tables.
    When I do full load to the corresponding ODS, it is successful.
    But after that I delete the ODS and created CUBE with DELTA
    I have Initialized delta.
    When I do DELTA extraction, it fails.
    The error
    “The ALE inbox of the SAP BW is identical to the ALE outbox of the source system
    and/or
    the maximum wait time for this request has not yet run out
    and/or
    the batch job in the source system has not yet ended.”
    I delete the initialization load and trying to do DELTA extraction again and it Fails With the same error
    Please let me know how can I resolve this problem.
    URGENT
    gaurav

    I dont think it is possible to have to additive delta with creation date.
    Try a full load to cube to check if the extractor is working.

  • Error while doing DELTA Extraction (generic data source)

    Hi BW Experts,
    In my R/3, I have a generic data source ZBUT_VW.
    It receives data from a View which is created based on couple tables.
    When I do full load to the corresponding ODS, it is successful.
    But after that I delete the ODS and created CUBE with DELTA
    I have Initialized delta.
    When I do DELTA extraction, it fails.
    The error “The ALE inbox of the SAP BW is identical to the ALE outbox of the source system
    and/or
    the maximum wait time for this request has not yet run out
    and/or
    the batch job in the source system has not yet ended.”
    I delete the initialization load and trying to do DELTA extraction again and it Fails.
    With the same error
    Please let me know how can I resolve this problem.
    URGENT
    gaurav

    I dont think it is possible to have to additive delta with creation date.
    Try a full load to cube to check if the extractor is working.

  • No purchasing date in delta extraction (2LIS_02_ITM, 2LIS_02_SCL)

    Hi.
    We have been experiencing some issues with delta extraction of purchasing data, using 2LIS_02_ITM and 2LIS_02_ITM.
    In particular, the posting date's field (BUDAT) is not always filled: for example, I noticed that when users set the final delivery flag even if the purchase delivered quantity does not correspond to the whole order's quantity or the flag has been set later than the change of the delivery date, the field (BUDAT) in the delta queue is not filled.
    By this way, the field may be overwritten: however, we need to keep the posting date value.
    I am wondering whether I am correct and, in this case, it is possible to keep that value: however, it seems that the only way is to use a full extraction of data.
    Thanks a lot

    Roberto Negro,
    While filling setup table by using T-code OLI3BW (Purchasing) it is taking very long time.
    Please let me is there any way to rerduce this time.
    We are at BW 7.3 version.
    Regards,

  • Code For Delta Extraction Using Function Module

    Dear Experts,
    I want a sample code for Delta Extraction using Function Module ( If it is customized already working code very helpful ), I have already created Function Module but Full update is happening. If I give delta update again it is retrieving all records. It is very urgent, if you have please send me to the following mail ID.
    [email protected]
    Best Regards,
    SGK.

    Dear KJ,
    Thank for your response. I saw the code that you sent, you have used some ztables like ZSC_DELTA_IP, ZSC_SAFETY_DELTA, ZSC_SET_EXT_TIME
    What are the fields that you have created in these tables , what is use of these tables, can you send the fields that you have used in these tables.
    Thanks & Regards,
    SGK

  • How to make JOB CONTROL setting for delta extraction in Production system .

    Hello All,
    We are in the process to transport our development to PD server in BI . We have transported the data sources to ECC production and now we are filling the setup table for " SD BILLING BW " . After filling Setup table data in full mode through infoPackage we have to load data in delta mode .    
    How we can set our Update mode(LBWE setting) in PD server ?
    Is LBWE  T.Code authorisation required in ECC PD server to make the setting of Update mode   or   We have to set all  Job Control Paramater in Dev System at the time of transport the datasource request to ECC production .  Is our time which is set in job control of  ECC development  will be reflected in ECC production ?
    can any body tell me about how to make setting for delta extraction in Production system .
    Thanks ...

    Hi,
    How do you load the data in the development system?
    - you set up the update mode in the infopackage. There you must customize "Initialization"
    - you have to filled the setup table in the production system without laoding the data in the BW? then this step was for nothing. Filling the setup table and do the INIT in the BW, this must be together - during no changing will be done in your R/3 SD.
    Sven

  • Short dump in delta extract  using bgRFC in NW 2004s

    Short dump in delta extract after Support Pack install, using bgRFC. 
    InfoSet Query extractor from Z-table residing on BW system into ODS. 
    Init and Full loads load successfully, delta loads short dump.
    "MESSAGE_TYPE_X"        
    "SAPLARFC" or "LARFCU25"     
    "TRFC_SET_QUEUE_RECEIVER_LIST"
    Problem began after support pack install, from SP 9 to SP 12.   Switched to Classic RFC in SM59,  seemed to correct this extractor but caused problems in  other extractors.

    Hi Kevin,
    check out this note: https://websmp205.sap-ag.de/~form/handler?_APP=01100107900000000342&_EVENT=REDIR&_NNUM=1054970&_NLANG=EN
    it might help.
    regards
    Siggi

  • Process for Flat file delta load from Application server to transactional??

    I want to do a flat file extraction in delta loads from application server and that should be loaded into a transactional cubes scheduling a process chain.
    Can any one help with ABAP code and step by step process for this?
    Thank you
    Devi

    Hi Devi,
    As per your explaination, you want to load a list of files from application server using process chain.
    You can do this with below steps.
    1) Create a Event and call event to run Process chain multiple times.
    2) Put all filenames in a file say, source-File
    3) Write a rooting to read filename from Source-File and trigger InfoPackage
    4) At the end of the process chain create new customized program which will delete first line from Source-File so that it will take next file in next run as well as delete currently loaded file. Once this is done trigger event again to start process chain again.
    Regards,
    Ganesh

Maybe you are looking for

  • Disable Date Fields

    I am using javascript to disable date fields, so the users are forced to use the date pickers. The field is disabled and the date picker works but when I save the record the entry in the date field disappears. Page Header <script language="JavaScript

  • Extra photo pages with out extra headers

    Big Time Newb here, I am looking to add extra photo pages as I like the template format and want them all to be under one category name in the header. For example the header might read "My Week" and then have sperate pages listed for Monday, Tuesday,

  • Tranformation of xml

    hi everybody, how could one transform one Xml file into another xml file how could java help me plz... suggest me some materials ,some examples bye advance thanks shekar

  • Password protect web page on FTP sever

    I have created a iweb page and have posted it.  But i'm in the process of changing it up.  how can I protect it from being seen on the internet until i'm done with all changes?

  • Saving picture from text

    Is there a way to save a picture that someone has texted to you and how?