Generic Extractor source code

Hi ,
I made a generic extraction. I can find the extractor name in ROOSOUCE table. The extractor names are getting generated for all my generic datasources,  But im not able to view the souce code of my extractor in se37 or se38. Can any one guide me how to find my source code for my generic extraction. Is it possible to see?
Regards,
Harish Raju.

The step by step procedure is as follows:
Create your extract structure (let's name it EXTRSTR); this extract structure will have a field on which your Delta (of type timestamp or other supported); its name: DELTAFLD.
create a function module (EXTRFM) as a copy of RSAX_BIW_GET_DATA_SIMPLE.
Create a generic DSource (GENDS) based on EXTRSTR and FM EXTRFM. Enable this generic DS for delta, type timestamp on field DELTAFLD.
You Function module:
code
FUNCTION EXTRFM.
""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
*" TABLES
*" I_T_SELECT TYPE SBIWA_T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SBIWA_T_FIELDS OPTIONAL
*" E_T_DATA OPTIONAL
*" E_T_EXTRSTR STRUCTURE EXTRSTR
*" OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Auxiliary Selection criteria structure
DATA: L_S_SELECT TYPE SBIWA_S_SELECT.
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
S_COUNTER_DATAPAKID LIKE SY-TABIX.
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 InfoSource validity
CASE I_ISOURCE.
WHEN 'GENDS'.
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.
READ TABLE I_T_SELECT INTO L_S_SELECT
WITH KEY FIELDNM = 'DELTAFLD'.
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.
ELSE. "Initialization mode or data extraction ?
First data package -> OPEN CURSOR
CASE G_S_INTERFACE-ISOURCE.
LOOP AT G_T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'DELTAFLD'.
ENDLOOP.
IF G_COUNTER_DATAPAKID = 0.
IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''. "FULL or INIT
OPEN WITH HOLD G_CURSOR FOR
SELECT <FIELDS>
FROM TABLE1, TABLE2.....
ELSE. "DELTA
EXEC SQL.
SELECT <FIELDS>
FROM TABLE1, TABLE2.....
WHERE DELTAFLD >= L_S_SELECT-LOW
AND DELTAFLD <= L_S_SELECT-HIGH
ENDIF.
ENDIF.
DO.
lv_recordcount = 1.
FETCH NEXT G_CURSOR INTO workarea
IF sy-subrc <> 0.
EXIT.
ELSE.
APPEND workarea to E_T_EXTRSTR.
IF lv_recordcount = G_S_INTERFACE-MAXSIZE.
EXIT.
ELSE.
lv_recordcount = lv_recordcount + 1.
ENDIF.
ENDIF.
ENDDO.
IF sy-subrc 0.
RAISE NO_MORE_DATA.
lv_recordcount = 1.
ENDIF.
G_COUNTER_DATAPAKID = G_COUNTER_DATAPAKID + 1.
ENDCASE.
ENDIF.
ENDFUNCTION.
[/code]
For the problem number#2 you are actuall right; the system doesn't provide the update mode; you'll have as well to mainain the table roosource after having created your DSource:
it should look like:
code
Field Value
OLTPSOURCE GENDS
OBJVERS A
TYPE TRAN
APPLNM BW
BASOSOURCE
DELTA E
STOCKUPD
UPDFLG1
UPDFLG2
UPDFLG3
READONLY X
INITSIMU 1
INITCOMMIT
ZDD ABLE X
EXMETHOD F1
EXTRACTOR EXTRFM
EXSTRUCT EXTRSTR
GENFLAG
VIRTCUBE 1
APPENDFLAG
TSTPNM OCORA
TSTPDAT 11.12.2003
TSTPTIM 18:10:12
INVFIELD
GENDELTAFD DELTAFLD
GENDELTATP T
DELTASAFE1
DELTASAFE2 600
DLTAGETMAX
SEGMENT
AFTERIMP
BEFOREXP
MAINTAIN
CHECKDS
SAVEDS
TRANSPDS
DELETE DS
RESETDELTA RSA8_GENDELTA_RESET
APPL PROP
ACTIVATE
ZDD REPLAY RSA8_GENDELTA_ZDD_REPLAY_GET
TFMETHODS
[/code]
Also Go through these
checked Siggi's weblog
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
For Code
http://www.bwexpertonline.com/ downloads/Extractor_Source_Code.doc
For further information
Check in SDN
Hope it helps
Regards
Bala

Similar Messages

  • Creation of a generic extractor and data source for the FAGLFLEXA table

    Hi All,
    Need to create a generic extractor and data source for the FAGLFLEXA table to support AR reporting. This table contains the necessary profit center information to perform LOB reporting against the AR data.
    Please advice on how to do this.
    Regards, Vishal

    Hi Vishal,
    Its seems a simple a work out.
    1.Go to RSO2 & choose the relevant option ie. whether you want to create Transactional DS, Master Data DS or Text DS.
    2. Name it accordingly & then create.
    3. Give description to it & then give table name FAGLFLEXA.
    4. Save it & activate. If you need it to be delta enabled then click over Delta & you can choose accordingly.
    If you still face some problem then do mail me at [email protected]
    Assign points if helpful
    Regards,
    Himanshu

  • Code Page Setting while extracting data using Generic Data Source

    Hi,
    Can anybody tell me about the Code Page setting used in Generic Data Source in SAP BW 3.5?
    I am extracting data from a Master Table using Generic data Source, but the data which is in Ukrane language is getting loaded as "#". Where do we set the Code Page for it?
    Regards,
    YK.

    To continue with earlier question, is there any particular setting for a master data, to load non english data as a text of master data?
    I want to load TEXT of a master in Ukraine language. I am extracting this text from the P table of same master (From Description Field). But TEXT is not getting populated whenever it is Ukraine language. English TEXT is populated correctly.
    Please share your experiences...
    Thanks,
    YK.

  • Regarding: Loading data from R/3 To BI for a Generic Data source

    Hi Every,
    Need Help Urgent
    I had created a Generic data source with function Module as the data source, in Rsa3 it is working fine.
    1-> I had replicated the data source to Bi then i had created a info package and then I executed the same. when it is getting the data and it is show in the request monitor (Number of records )  but the status is not changing from Yellow to Green.
    Status in Step by step analysis is every step is green Except "Data selection successfully finished ?"  (RED)
    2-> Then I had seen the Back ground job in Source system which is executing still. I waited for it for a long time but nearly 30 min.
    (I had done Steps one and 2 number of time by activating replicating the data source and so on, but still their is no change in it)
    3-> Then I had canceled that back ground job with the help of BASIS (as i feel that it is something going wrong).
    4-> I feel that their is some thing wrong in the Code of Extractor.
    Please Help...............
    ""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  ZBI_MATGRIR OPTIONAL
    *Need to get the data only for two Gl account which are fro material purchase while MIGO
    *G/L Account Numbers: 0010502001 0010502002
    data: E_T_DATA1 type table of ZBI_MATGRIR.
      RANGES: R_BUKRS FOR BSIS-BUKRS,
              R_BUDAT FOR BSIS-BUDAT,
              R_GJAHR FOR BSIS-GJAHR,
              R_HKONT FOR BSIS-HKONT.
      DATA: L_S_SELECT TYPE SRSC_S_SELECT.
      STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
               S_COUNTER_DATAPAKID LIKE SY-TABIX,
               S_CURSOR TYPE CURSOR.
    *Declare
      TYPES: BEGIN OF TY_FAGL,
        RBURS TYPE FAGLFLEXA-RBUKRS,
        RYEAR TYPE FAGLFLEXA-RYEAR,
        DOCNR TYPE FAGLFLEXA-DOCNR,
        BUZEI TYPE FAGLFLEXA-BUZEI,
        DOCLN TYPE FAGLFLEXA-DOCLN,
        PRCTR TYPE FAGLFLEXA-PRCTR,
        SEGMENT TYPE FAGLFLEXA-SEGMENT,
      END OF TY_FAGL.
      DATA: GT_FAGL TYPE TABLE OF TY_FAGL,
            GS_FAGL TYPE TY_FAGL.
      IF I_INITFLAG = SBIWA_C_FLAG_ON.
        CASE I_DSOURCE.
          WHEN 'ZFI_GL_M4'.
          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.
        APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
      ELSE.
    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 = 'BUKRS'.
            MOVE-CORRESPONDING L_S_SELECT TO R_BUKRS.
            APPEND R_BUKRS.
          ENDLOOP.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'GJAHR'.
            MOVE-CORRESPONDING L_S_SELECT TO R_GJAHR.
            APPEND R_GJAHR.
          ENDLOOP.
          LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'BUDAT'.
            MOVE-CORRESPONDING L_S_SELECT TO R_BUDAT.
            APPEND R_BUDAT.
          ENDLOOP.
    *GRIR Inventory (RM/Stores/Spares/FG)   10502001
    *GRIR Services & Others Payable   10502002
          R_HKONT-SIGN = 'I'. "i_t_select-sign.
          R_HKONT-OPTION = 'BT'." i_t_select-option.
          R_HKONT-LOW = '0010502001'.
          R_HKONT-HIGH = '0010502002'. "i_t_select-high.
          APPEND R_HKONT.
    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 BUKRS
                  AUGBL
                  ZUONR
                  BELNR
                  GJAHR
                  BUZEI
                  BUDAT
                  HKONT
                  BLART
                  MONAT
                  BSCHL
                  SHKZG
                  DMBTR
                  WAERS
                  FROM BSIS
                 INTO TABLE E_T_DATA
                  WHERE BUKRS  IN R_BUKRS
                    AND GJAHR IN R_GJAHR
                    AND BUDAT IN R_BUDAT
                    AND HKONT IN R_HKONT.
    Fetch records into interface table.
      named E_T_'Name of extract structure'.
        FETCH NEXT CURSOR S_CURSOR
                   APPENDING CORRESPONDING FIELDS
                   OF TABLE E_T_DATA1
                   PACKAGE SIZE S_S_IF-MAXSIZE.
        IF SY-SUBRC <> 0.
          CLOSE CURSOR S_CURSOR.
          RAISE NO_MORE_DATA.
        ENDIF.
    DELETE E_T_DATA WHERE BLART NE 'WE'.
          SELECT BUKRS
                 AUGBL
                 ZUONR
                 BELNR
                 GJAHR
                 BUZEI
                 BUDAT
                 HKONT
                 BLART
                 MONAT
                 BSCHL
                 SHKZG
                 DMBTR
                 WAERS
                 FROM BSAS
                 into table   E_T_DATA
                 WHERE BUKRS  IN R_BUKRS
                   AND GJAHR IN R_GJAHR
                   AND BUDAT IN R_BUDAT
                   AND HKONT IN R_HKONT.
               FETCH NEXT CURSOR S_CURSOR
                  APPENDING CORRESPONDING FIELDS
                  OF TABLE E_T_DATA
                  PACKAGE SIZE S_S_IF-MAXSIZE.
    append LINES OF e_t_data1 TO E_T_DATA.
    DELETE E_T_DATA WHERE BLART NE 'WE'.
    ENDIF.                             "First data package ?
        DATA: F_YEAR TYPE BKPF-GJAHR.
        DATA: F_PERI TYPE BAPI0002_4-FISCAL_PERIOD.
    IF E_T_DATA[] IS NOT INITIAL.
       SELECT RBUKRS
              RYEAR
              DOCNR
              BUZEI
              DOCLN
              PRCTR
              SEGMENT
              FROM FAGLFLEXA
              INTO TABLE GT_FAGL
              FOR ALL ENTRIES IN E_T_DATA
           WHERE RYEAR = E_T_DATA-GJAHR
               AND DOCNR = E_T_DATA-BELNR
               AND RLDNR = '0L'
               AND RBUKRS = E_T_DATA-BUKRS
               AND BUZEI = E_T_DATA-BUZEI.
             WHERE RYEAR = E_T_DATA-GJAHR
               AND DOCNR = E_T_DATA-BELNR
               AND RBUKRS = E_T_DATA-BUKRS.
         AND DOCLN = E_T_DATA-BUZEI.
    ENDIF.
    LOOP AT E_T_DATA.
          IF E_T_DATA-SHKZG = 'H'.
            E_T_DATA-DMBTR = E_T_DATA-DMBTR * -1.
          ENDIF.
          CLEAR: F_YEAR.
          CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
            EXPORTING
              COMPANYCODEID       = E_T_DATA-BUKRS
              POSTING_DATE        = E_T_DATA-BUDAT
           IMPORTING
             FISCAL_YEAR         = F_YEAR
             FISCAL_PERIOD       = F_PERI.
          DATA: V_DOC(6) TYPE C .
          CLEAR: V_DOC.
          V_DOC =  E_T_DATA-BUZEI.
          IF V_DOC  IS NOT INITIAL.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                INPUT  = V_DOC
              IMPORTING
                OUTPUT = V_DOC.
          ENDIF.
         aS PROFIT center is not updated in all the lines in Bsis
          READ TABLE GT_FAGL INTO GS_FAGL WITH KEY  RYEAR = E_T_DATA-GJAHR
                                                    DOCNR = E_T_DATA-BELNR
                                                    RBURS = E_T_DATA-BUKRS
                                                    BUZEI = E_T_DATA-BUZEI.
          IF SY-SUBRC = 0.
            E_T_DATA-PRCTR = GS_FAGL-PRCTR.
            E_T_DATA-SEGMENT = GS_FAGL-SEGMENT.
          ENDIF.
    *As we are using the amount DMBTR in which the amount
    *will be in company code currency that is Local currency
    *group currency always in the main company code currency.
          CONCATENATE   F_YEAR '0' F_PERI INTO E_T_DATA-FISCPER.
          MODIFY E_T_DATA. " from gs_bsis transporting dmbtr fiscper.
          CLEAR: E_T_DATA.
        ENDLOOP.
          S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
       ENDIF.

    Hi,
    Please check the log of same jobs for last week and check is today its taking more time,also check with basis is their any backup initited at same time.
    Moreover until the background job failed automatically its difficult to imagine what is the exact issue.
    Thanks,

  • 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

  • Generic Data Source with View

    Hi Experts.....
         previously i am creating one view based on VBRP & VBRK common field is VBELN but i have some confusion long days, these two tables having same data Source i.e..2LIS_13_VDHDR , why u create View. So please explain one real time sinario.

    Hi,
    When we don't find any standard extractor then we can go for Generic(if i want information sales along with finance information in a data source then generally we dont get standard one hence we can go for generic DS)
    Re: Extraction, Flat File, Generic Data Source, Delta Initialization
    Eg : If you want the information about the All Customers  across the regions in that case if i have the information
    Like 1)Table 1 has all the information  about  the Customer number But not having the Customer address and region and Pin code but same information has in other table
    table 2 : Customer no,Address, region and Pincode
    So since in Two tables i have common field Customer no is present hence if create view then i can get All the information in single in view then you can create Generic DS based on the then same you ca extract the data to BW.
    Regards,
    Satya

  • Generic Data Source Creation (Very Urgent)

    Hi Friends,
           I am getting errors while i am creating Generic Data source using Table "ECMCT" .This table contains all fields which is required for my Data Source.
    ---> I gave <b>ECMCT</b> table in "Extraction from DB view " but when i click save its showing error message "INVALID EXTRACT STRUCTURE TEMPLATE ECMCT OF DATASOURCE ZFI_ECMCT(is name of my data source)".
    > I created Function Module using this Table.
    In Function Module "Tables tab"
    i gave "ITAB LIKE ECMCT".
    In "Source Code tab"
    i gave "SELECT * FROM ECMCT INTO TABLE ITAB".
    In RSO2 "Extraction Using Function Module"
    i gave FM name and Extract Structure name as ECMCT. After clicking save its showing ERRORS:
    1) ZFI_ECMCT(is my data source name) : Tables parameter E_T_DATA for     Extractor ZFI_CONSOLIDATION(is my Function module)
    2) Units field CURR1 for feild HSLVT of datasource ZFI_ECMCT is hidden.
    3) ......................................HSL01.....................................................
    4)........................................HSL02...................................................
    ;etc.
    Could u anybody suggest me where i am doing wrong. This is very very urgent for me.
    Thanks,
    Mani.

    Hi,
    For " Extraction Using Table" the system does not create an extract structure automatically if  the  Amount field (type CURR) and currency key field (type CUKY )  are in different tables . Hence u create a View of  the data table and the reference table (Say PA0002 and T001) wherein, include all the fields from PA0002 and just the referenced fields from T001 so that all the fields come under the view.
    But if the above solution is not possible say for ex. if the key fields don't match , then u should go for function modules.
    Regards

  • Missing Source in Generic Data Source in CRM

    Hi All,
    Currently I am having an issue with a Generic Data Source in CRM. The consultants have actually build a data source by referring to the transparent table. I am not too sure how he did it.
    Whenever I open up the transaction RSO2 to look at the data source, the "Extraction from DB View", "Extraction from SAP Query" and "Extraction by Function Module" is totally blank.
    How would I know how does the consultant setup this extractor? Is there any other program that will have some kind of code to pull it from which transparent table?
    Thanks.

    Hi David,
    Your datasource is based on "extraction using Function module". You need to check the function module SMOX3_GET_DATA in se37 and find the tables from where the data is fetched.
    Also check this blog by Roberto to find the table and fields: /people/sap.user72/blog/2005/09/05/sap-bw-and-business-content-datasources-in-pursuit-of-the-origins
    Bye
    Dinesh

  • Simulation Vs Real in Generic Data Source

    Hi ,
    I have got a generic data source based on Function Module. In the FM it is actually updating some mapping tables. I would like to update those tables only when extractor is actually executed using Infopackage or using DTP(Direct access). But don't want to update other tables when data source is executed using RSA3 simulation mode.
    Is there a way to find whether data source is run in simulation or real in the Function Module?
    I found 0REQUID is getting value as TEST when executing data source in simulation (RSA3), but I can't hard code just this in my function module as this can be changed to any thing in future.
    Regards,
    Ramesh

    Thanks Vikram for your promt reply.
    Lets wait for other experts comments on this and will see if there is any work around.

  • How to replicate Generic data source from R/3 to BI

    Hi,
    I have created generic datasource in r/3 using view. I replicated to BI.
    I selected  for DataSource (RSDS) instead of selecting  3.x DataSouce.
    Now what r the steps to load data into cube.
      Please help me in this regard. Please give me detail steps to proceed further.
    Thanks,
    Jaswantha

    Hi,
    About Generic Extraction:
    In Sometimes the Standard Extraction Does not Satisfy the Customers Needs that time We have to use Generic Extraction.
    generic extraction is also classified in to three types
    using
    1. View
    2.Infoset query
    3.Function module.
    Procedure:
    -->Go to Tcode : RSo2,
    -->There give the name of data source which you want to create like
    transaction data source or master data attribue or Text data source.
    -->enter
    -->again in the next screen you need to give application like SD or MM
    etc
    -->in the same screen need to select table/view or infosetquery or
    function module. these are different ways of creating data sources.
    -->Give the name for the same like if u r creating data source on table
    give the name of table.
    -->click on Generic delta which will there in application tool bar and
    fil the required columns in that screen like type of delta and all
    -->continue and save
    -->it will give all the fieds
    -->enable the check boxes based on your requirement like selection or
    hide or field only..
    -->save
    please see the below links:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    Re: Generic Extractor - Delta
    Re: Generic Extractor - Delta
    Please do check the link for step by step for generic xtraction
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    check the following
    http://help.sap.com/bp_biv235/BI_EN/html/bw.htm
    business content
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/biw/g-i/how%20to%20co-pa%20extraction%203.0x
    https://websmp203.sap-ag.de/co
    http://help.sap.com/saphelp_nw04/helpdata/en/37/5fb13cd0500255e10000000a114084/frameset.htm
    (navigate with expand left nodes)
    also co-pa
    http://help.sap.com/saphelp_nw04/helpdata/en/53/c1143c26b8bc00e10000000a114084/frameset.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/fb07ab90-0201-0010-c489-d527d39cc0c6
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/1910ab90-0201-0010-eea3-c4ac84080806
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ff61152b-0301-0010-849f-839fec3771f3
    LO Extraction
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f83be790-0201-0010-4fb0-98bd7c01e328
    Check these links:
    /people/sap.user72/blog/2004/12/16/logistic-cockpit-delta-mechanism--episode-one-v3-update-the-145serializer146
    /people/sap.user72/blog/2004/12/23/logistic-cockpit-delta-mechanism--episode-two-v3-update-when-some-problems-can-occur
    /people/sap.user72/blog/2005/01/19/logistic-cockpit-delta-mechanism--episode-three-the-new-update-methods
    /people/sap.user72/blog/2005/02/14/logistic-cockpit--when-you-need-more--first-option-enhance-it
    /people/sap.user72/blog/2005/04/19/logistic-cockpit-a-new-deal-overshadowed-by-the-old-fashioned-lis
    Re: LO-Cockpit  V1 and V2 update
    Also Refer this link:
    http://www.sap-img.com/business/lo-cockpit-step-by-step.htm
    FI-CO 'Data Extraction -Line Item Level-FI-CO
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/a7f2f294-0501-0010-11bb-80e0d67c3e4a
    FI-GL
    http://help.sap.com/saphelp_nw04/helpdata/en/c9/fe943b2bcbd11ee10000000a114084/frameset.htm
    http://help.sap.com/saphelp_470/helpdata/en/e1/8e51341a06084de10000009b38f83b/frameset.htm
    http://www.sapgenie.com/sapfunc/fi.htm
    FI-SL
    http://help.sap.com/saphelp_nw2004s/helpdata/en/28/5ccfbb45b01140a3b59298c267604f/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/41/65be27836d300ae10000000a114b54/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/ee/cd143c5db89b00e10000000a114084/frameset.htm
    How to do basic LO extraction for SAP-R3-BW
    1. Go to transaction code RSA3 and see if any data is available related to your DataSource. If data is there in RSA3 then go to transaction code LBWG (Delete Setup data) and delete the data by entering the application name.
    2. Go to transaction SBIW --> Settings for Application Specific Datasource --> Logistics --> Managing extract structures --> Initialization --> Filling the Setup table --> Application specific setup of statistical data --> perform setup (relevant application)
    3. In OLI*** (for example OLI7BW for Statistical setup for old documents : Orders) give the name of the run and execute. Now all the available records from R/3 will be loaded to setup tables.
    4. Go to transaction RSA3 and check the data.
    5. Go to transaction LBWE and make sure the update mode for the corresponding DataSource is serialized V3 update.
    6. Go to BW system and create infopackage and under the update tab select the initialize delta process. And schedule the package. Now all the data available in the setup tables are now loaded into the data target.
    7.Now for the delta records go to LBWE in R/3 and change the update mode for the corresponding DataSource to Direct/Queue delta. By doing this record will bypass SM13 and directly go to RSA7. Go to transaction code RSA7 there you can see green light # Once the new records are added immediately you can see the record in RSA7.
    8.Go to BW system and create a new infopackage for delta loads. Double click on new infopackage. Under update tab you can see the delta update radio button.
    9.Now you can go to your data target and see the delta record.
    find your scenario and find what data sources do you need on R3 side and ensure they are active as well:
    http://help.sap.com/saphelp_nw04/helpdata/en/37/5fb13cd0500255e10000000a114084/frameset.htm
    find your scenario -> data sources -> go to R3 -> sbiw and activate required data source
    replicate data sources in BW:
    RSA1 -> source systems -> right click on your source system -> replicate
    then activate your BC:
    service.sap.com/bi -> BI Business Content -> General Information -> SAP BW Business Content - Activation
    and execute infopackage (it should be delivered with BC)
    Useful links:
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/e60138fede083de10000009b38f8cf/frameset.htm
    service.sap.com/bi -> BI InfoIndex
    sdn.sap.com -> Business Information Warehouse -> How-To guides (under Quick Links)
    Assign points if useful.

  • 3 generic data sources or only one function module

    Hi all,
    I have 3 custom tables
    1. ZCOUNTRY (giving the link between code entity and country)
    1. ZCURR (giving the link between code entity and currency)
    1. ZYTPE (giving the link between code entity and type entity)
    I shall  fill an info object which has as fields code entity, country,currency and type entity.
    I have 2 solutions i suppose:
    1. Create 3 generic data sources based on the 3 tables.
    2. Create a generic data source by using the function module.The function module will populate an extract extracture from data from these 3 tables.
    What is the best solution?What is the advantage of the chosen solution?
    Thks a lot.

    Hi,
    Generic Extractors are based on View/Table or Fn Module or Infoset Query i.e all the extractors created via RSO2. The extractors you create for the customers would generally be generic extractors only. SAP has some other extractors like your LIS, LO Cockpit which are based on different extraction method.
    Generic extractors are of 3 types:
    1. Based on table/view
    2. Based on Infoset Query
    3. Based on Function module
    The first 2 are straight forward extraction where you would either use a standard SAP or custom table/view or Infoset query to extract data.
    However if you have to get data from more than 1 table and also incorporate some logic then you would use a fn module extractor. It is like a program where you would code using ABAP and have all your logic incorporated.
    Check this blog for more info on fn module extractor:
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    Raj

  • Generic Extractor Messages

    Hi, I'm looking to put messages into the Monitor during Generic extractor.  In the template they use the LOG_WRITE macro which puts out entries into the SLG1 Application Logs.  I am using this, but I think it puts out to the application log only and not the monitor. 
    1. What do I have to do to output incoming record errors to the Monitor and show up as errors in PSA?
    2. I notice some strange code "IF 1 = 2. MESSAGE E009(R3).  ENDIF.
    What would this be for?
    Aswer: This is for maintenance reasons.  Executing a where-used for this message number will return a hit if this is in place.  If only the LOG_WRITE is in place then a where-used for this message number would not produce a hit.
    Found the answer here:
    http://ezinearticles.com/?SAP-If-1=2What-Is-This-Code-About?&id=937994
    Thanks,

    Hi,
    To put the records in error use the below:
        DATA:
          MONITOR_REC    TYPE rsmonitor.
    IF <condition>.
    else.
    MONITOR_REC-MSGID = 'RSM'.
          MONITOR_REC-MSGTY = 'E'.
          MONITOR_REC-MSGNO = '799'.
          MONITOR_REC-MSGV1 =
    'No value found in the source field'.
          ENDIF.
    -Vikram

  • FUNCTIONAL MODULE AS A GENERIC EXTRACTOR

    Hi,
    Im looking to extract fields in from the following tables and want to create a functional module as a generic extractor for that:
    BSEG
    BKPF
    COEP
    MBEW
    EINA
    Could some one tell me how I can create a FUNCTIONAL MODULE AS A GENERIC EXTRACTOR for this or send me a documet at mysapsource at  gmail com
    Thanks

    Hi,
    Please find the steps to create FM:
    Step 1.
    GO to transaction SE80.In the drop box list select function group enter your Z Function group name.Press enter it will ask for creating the function group.Create your function group.
    OR
    In SE37 transaction,in the menu bar Goto - > Function Group - > Create Group.Your Function Group will be created.
    Step 2.
    Go to transaction SE37.Enter your Z Function module name,your recently created function group name and the description.Press Enter.Now your FM is created.
    Step 3.
    Enter Export,Import parameters.In the source code tab write the code what you want to write.If any exception write in the exception tab.
    Method 2:
    First u have to create Function Group.
    1.se37->Goto->Function Group--->Create.
    2.Create FM.
    3.maintain import /export parameters and tables , exceptions.
    4.based on the ur requirement u have to bulid ur logic in Source Code by using there Import parameters and u can pass the results by using Export or table.
    5.u can raise error by using exception.
    Create Function Module:
    http://help.sap.com/saphelp_nw04s/helpdata/en/9f/db98fc35c111d1829f0000e829fbfe/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/26/64f623fa8911d386e70000e82011b8/frameset.htm
    Creating Function Modules.
    Create Generic Datasource using Function Module:
    Generick Extarction using Function Module.
    Hope this helps u...
    Regards,
    KK.
    Edited by: koundinya karanam on May 2, 2008 7:29 AM

  • Generic Data Source Based On Function Module (Delta capable)

    Hi,
    My requirement is to develop a Generic Extractor based on Function Module (Delta capable). As I already found many threads explaining this concept, but most of them discussing FM RSAX_BIW_GET_DATA_SIMPLE with Extraction Method F2. There is another FM RSAX_BIW_GET_DATA which, one can use to build delta enabled extractor.
    Although I do have some doubts:
    what is the E_T_SOURCE_STRUCTURE_NAME ?
    read table i_t_select into l_s_select with key fieldnm = 'PGMID'. Use of this code ?
    Templet only showing
    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.
    i.upmode as F, D(delta) is not included, do i need to include this?
    Can someone help to solve this. Appropriate points will be allotted to helpful suggestions.
    Edited by: Debjit_Singha_86 on Jul 23, 2011 8:35 AM

    Try using following piece of code;
    READ TABLE g_t_select INTO l_s_select
                                 WITH KEY fieldnm = 'Date Field for Delta'.
          IF sy-subrc EQ 0.
    SELECT SINGLE *
                           FROM ROOSGENDLM
                           WHERE oltpsource EQ 'DataSource Nameu2019
                           AND slogsys      EQ lw_slogsys.
              IF sy-subrc EQ 0.                                            
                lw_date = roosgendlm-deltaid+0(8).
                lw_time = roosgendlm-deltaid+8(6).
                                                                                    ENDIF.                       " IF SY-SUBRC EQ 0.
    ENDIF.
    OPEN CURSOR WITH HOLD S_CURSOR FOR
    SELECT * FROM TABLE
                                   WHERE  CPUDT     GE   lw_date   AND
                                               CPUTIME  GE   lw_time.
        ENDIF.                            
    Table R00SGEMDLM stores the date and time data was last extracted from a data source.
    Alternatively, you can also try using the i_updmode.
    When 'F'.
    SELECT * FROM TABLE (without any where clause on last change date)
    When 'D'
    SELECT * FROM TABLE
                                   WHERE  CPUDT     GE   lw_date   AND
                                               CPUTIME  GE   lw_time.
    These are just suggestions. Try these out, I hope it helps.
    Regards,
    Gaurav

  • I am running 10.6.8 and using iweb for my web site. After several SEO analysis they all indicate I need H1-6 header tags. After looking at the source code I see there are none in iweb. Is it necessary to add? If so, how do I add H Tags to iweb.

    I am running 10.6.8 and using iweb for my web site. After several SEO analysis they all indicate I need H1-6 header tags. After looking at the source code I see there are none in iweb. Are they necessary to add?  Why would one add these tags and how do I add H Tags to iweb? And are there examples to look at? I am slowly learning about simple web design and assumed that iweb was stand alone without having to write code. Is this one of the reasons iweb is no longer supported? Thanks for looking at this!

    A simple text page like this:
    Heading
        sub heading
              text paragraph ....
    Is traditionally represented by html tags like:
    <h1>Heading</h1>
         <h2>sub heading</h2>
              <p>text paragraph ... </p>
    I would guess that the use of h1-h6 tags helps search engines to understand the structure of a page as the tags imply a certain structure.
    This can be compared to more generic tags like <div> that could represent any kind of content - and may be what iWeb uses (you'll have to check yourself).
    I would generally recommend that you use some kind of up to date blog/site building tool, perhaps Wordpress or Squarespace (I haven't used either one myself) that support current web technologies - this should reduce your SEO issues and make it easier to properly support mobile/tablet users.

Maybe you are looking for