Generic Fn Module Extractor Issue

Hi guys,
   As i understand the function module extraction, when i use the open cursor and if i have to delete the datA in e_t_data, what kind of impact does it have in my data package as the size gets reduced by the above operation.
Thanks,
Your help is greatly appreciated.

The thing is i open the cursor with selection fields right, what if i have
to manipulate this data reduce it in the function module, the datapacket size gets reduced right. so what should i do to tackle this and also what should i do so if the data packet data from each packet is interrelated.
Thanks,
Your help is greatly appreciated

Similar Messages

  • Function Module in a Generic Function Module Extractor

    I want to use a generic function module (ZFM_CONNECTION_DETAIL) in a Generic Function Module based Extractor.
    After Creating, I have checked it in RSA3... Data is showing properly on the Extractor Check.
    And replicated on BW side, after triggering the extractor using infopackageu2026 only one record is coming on the target side (BW).
    And one job is running endless on the source system.
    Generic extractor on the normal code is working properly on both sides.
    But problem occurs while I was using Function Module in the Generic function Module extractor.
    Waiting for a Reply with solution...........
    Hi Siegfried Szameitat,
    I have searched a lot to find out the solution of my Question (Problem). But there is no solution for the problem I have.
    Please let me to find out a proper solution of my issue....
    Thanks

    FUNCTION zcrm_questionnaire.
    Its a full Load...
    Codes are as followed..........
      DATA:lv_times     TYPE i.
      DATA:lv_datapakid TYPE numc4.
      CLEAR:lv_datapakid,lv_times .
      STATICS: s_s_if TYPE srsc_s_if_simple,
               sd_no_more_data  TYPE flag.
      DATA: l_s_select TYPE srsc_s_select.
      DATA :  s_counter_datapakid LIKE sy-tabix,
              s_cursor TYPE cursor.
      RANGES :  date  FOR  zresult_lt-date.
      DATA: lv_count TYPE i VALUE 1.
      IF i_initflag = sbiwa_c_flag_on.
    Initialization: check input parameters
                    buffer input parameters
                    prepare data selection
    Check InfoSource validity
        CASE i_dsource.
          WHEN 'ZCRM_QUESTIONNAIRE'.
          WHEN OTHERS.
            IF 1 = 2. MESSAGE e009(r3). ENDIF.
            log_write 'E'                  "message type
                      'R3'                 "message class
                      '009'                "message number
                      i_dsource            "message variable 1
                      ' '.                 "message variable 2
            RAISE error_passed_to_mess_handler.
        ENDCASE.
        APPEND LINES OF i_t_select TO s_s_if-t_select.
        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.                 "Initialization mode or data extraction
        IF NOT sd_no_more_data IS INITIAL.
          RAISE no_more_data.
        ENDIF.
        LOOP AT s_s_if-t_select INTO l_s_select .
          MOVE-CORRESPONDING l_s_select TO date.
        ENDLOOP.
        DATA : v_questionire  TYPE  crm_svy_db_sid.
        DATA : itab_questionire TYPE zsurveyid.
        DATA : e_tt_data_get TYPE  zresult_lt OCCURS 10.
        v_questionire = 'CALL CENTER'.
        APPEND v_questionire TO itab_questionire.
        v_questionire = 'METER INSTALLATION TEAM'.
        APPEND v_questionire TO itab_questionire.
        v_questionire = 'METER READING & BILLING'.
        APPEND v_questionire TO itab_questionire.
        v_questionire = 'NO SUPPLY'.
        APPEND v_questionire TO itab_questionire.
        v_questionire = 'CASH COLLECTION CENTER'.
        APPEND v_questionire TO itab_questionire.
        v_questionire = 'STREET LIGHT'.
        APPEND v_questionire TO itab_questionire.
        v_questionire = 'CONSUMER CARE CENTER'.
        APPEND v_questionire TO itab_questionire.
        v_questionire = 'WEBSITE'.
        APPEND v_questionire TO itab_questionire.
        DATA : counter TYPE i,
              high  LIKE sy-datum,
               low LIKE sy-datum.
        CONCATENATE
        l_s_select-high+6(4)
        l_s_select-high+3(2)
        l_s_select-high+0(2)
        INTO
        high.
        CONCATENATE
        l_s_select-low+6(4)
        l_s_select-low+3(2)
        l_s_select-low+0(2)
        INTO
        low.
        BREAK-POINT.
       do i_maxsize times.
        CALL FUNCTION 'ZCRM_SURVEY_REPORTING'
          EXPORTING
            e_date_frm    = low
            e_date_to     = high
            e_questionire = itab_questionire
          CHANGING
            it_result     = e_tt_data_get.
        IF sy-subrc IS INITIAL.
          e_t_data[] = e_tt_data_get[].
          APPEND e_t_data.
        ELSE.
          EXIT.
        ENDIF.
         sd_no_more_data = 'X'.
      ENDIF.              "Initialization mode or data extraction ?
    ENDFUNCTION.
    lk

  • Function Module extractor extracting as a Single Package?

    Hi All,
    I have created a generic function module extractor, which works fine, but extracts all the records in a single package. The default is set in SBIW as 50000 records. But right now I have only 2500 records. But I changed the packet size to 100 in my info package setting and also specified as 100 with in the function module.
    But still I get all the data come as a single package of 2500. I want to make sure that this extractor will not create any problem in production, so I want to test the data packet size. Any suggestion. I have used he standard function module DATASIMPLE and I do setup I_MAXSIZE as 100 in the IMPORT parameter in the function and hav ethe following code in the function module...
             APPEND mgremp_stru to E_T_DATA.
              mseq = mseq + 1.
              if mseq = 100.
                 G_COUNTER_DATAPAKID = G_COUNTER_DATAPAKID + 1.
                 mseq = 0.
              endif.
        endloop.
        IF SY-SUBRC <> 0.
           RAISE NO_MORE_DATA.
        ENDIF.
        S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
    Any Suggestions?
    Thx,
    Alex.

    Ramesh,
    The simple truth is that what ever you define as a data structure for E_T_DATA should be exactly matching to your selections in the CUSOR. My scenario is way too trichy not just because too many sqls, but because of the nature of HR Tables. Same field will have two different values such as in one record SOBID refers to Org Unit, in the next record the same is Person and in the next record it is Position. So I should have the same field 3 times in a single record. But it is not possible. SO what I did was found 3 different fields whose length and type are same as what I need and selected them but inside my function module I manipulated with internal tables. So the extractor thinks I declare cursor for the same fields I defined in the data source (the value you use in E_T_DATA) and extract them in the FETCH. In the fetch all it checks internally is that whether the only the CURSOR selected fields are extracted , because you will update the E_T_DATA. I know this is little more than what I explained here, but this is the concept.
    I am planning to have a weblog or a white paper published on this in a week or two.
    If this idea helps assign points.
    Goodluck,
    Alex.

  • How to Function module extractor

    Can anybody give me a step by step procedure to do a function module extractor ?
    Like the steps that I need to perform even before i start writing my code
    Thanks
    Shruti

    Dear Shruthi,
    Do a Search in SDN .you get lot of threads for FM Extraction ...
    The easiest way to work out with Function Module is to copy the standard one and modify according to your reqirement.
    The standard one is RSAX_BIW_GET_DATA_SIMPLE .
    Dont forget to copy the Function grp RSAX into a custom defined Grp and Modify the Ranges options as per ur req.
    and in Function module, in Sourcecode and Tables, Do modify the E_T_data with ur Generic datasource ,make sure u also modify the select statements within the sourcecode. If you have an idea on ABAP its really easy to work out.
    And regarding the creation of Datasource.
    Its really Simple.
    Goto RSo2.
    Give the name of Datasource.
    Give the Fm name and Extract Struc ( name of D.S only).
    Save and Generate.
    thats it.
    Dont forget to assign points.Its a way of saying thanks.
    Thanks,
    Krishna

  • Can generic function module extractions possible with CRM data sources.

    Hi Friends,
    can generic function module extractions possible with CRM data sources.
    90% extractions are generic function module extractions.
    How is it possible without BW adapters..
    It's very urgent ...Please.
    Thanks,
    Basava Raju

    Hi Madhu,
       Just curious ... if you already have a generic FM extractor then just go into it and find out where it is reading the data from. If its reading data from the CRM system then thre is no need for any BW adapter ... just in case you need any ABAP help ... post here ... I may be of use to you.
    Best regards,
    Kazmi

  • Help on Generic Plugable module

    Hi to all
    I am going to create a generic plugable module for swing application. My project is a xml editor that create jtree from xml files
    and now i want some nodes on jtree that are part of generic plugable module, if i remove this module then my existing work should work properley , Please help me if someone give me example or an idea then it will be great help for me.
    Thanx

    Hi ,
    can u share ur experience for correcting this error .
    and how can i define deleta for this data sources ...
    the delta is based on the Udate field ( calander day ) ...
    i assign points....
    Regards,
    PSR

  • Generic function module for input two Infocubes and output one infocube-APO

    Hi All,
    My requirement is we have to pick data from two infocubes(Billing and Backlog) and send to One info cube.
    can you please send me an;y generic function module is available in APO or explain me how to solve my requirement.
    waiting for your response.
    Thanks for Advance.
    Shubhojit.

    Hi,
    I recommend using a multi-cube also but if you insist in JOINing two cubes then you can do that in an ABAP SELECT statement. You need to join the fact table and the dimension tables for all dimensions (for all InfoCubes). Please only retrieve data whose OBJVERS="A".
    Please post again if you need more help.
    Regards,
    Emmanuel

  • HR module extractors

    Hi Guru's,
    Please name any HR module extractors used for the extraction.

    Hi Vasu,
    Refer this Business Content Help link according to your requirement.
    http://help.sap.com/saphelp_nw04/helpdata/en/2a/77eb3cad744026e10000000a11405a/frameset.htm
    Regards,
    BVC

  • Standard & Generic R/3 Extractor Differences

    Hello,
    Can someone please explain what the differences are between a "Standard R/3 Extractor" and a "Generic R/3 Extractor".
    I'm slightly confused by the terminology.
    Many thanks

    Hi Mark,
    Standard Extractors are the extractors which are provided by SAP.
    Generic extractors are the extractors which are created by the developer according to the requirement.
    Hope this helps
    Regards
    Karthik

  • Delta for generic master data extractor

    Hello,
    Is it not possible to load deltas for a generic master data extractor?
    I have created a generic extractor on R/3 table MEAN (EAN number assigned to material). I have also performed the init run which worked fine, but no deltas are being loaded.
    Why is this?
    Best regards,
    Fredrik

    hi,
    its possible
    how to generic delta
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
    SAFETY DELTA
    check these links
    oss note 368739
    Symptom
    For the setup of summarization levels and summarization data in the Profitability Analysis a 'Safety delta' of half an hour is used. This means, the system only includes records which exist half hour already. You want to reduce this delta in order to get more current data in reporting.
    Additional key words
    Summarization levels, summarization data, safety delta, time stamp
    Cause and prerequisites
    The reason for the duration of these safety deltas are possible differences in the clocks on different application servers. If the delta is selected too short, when updating the summarization levels/data, records may not be taken into account. In particular the Account-based Profitability Analysis depends on the sufficient length of the delta, so that update processes which take longer do not cause inconsistencies. For the Costing-based Profitability Analysis a lock is set. If not active update processes exist, it fails and the update terminates.
    Solution
    The attached source code correction is not part of the standard system. With this change the safety delta is set from 30 to 5 minutes. You should only implement this, if exclusively the Costing-based Profitability Analysis is active in your system. If you also use Account-based Profitability Analysis we do not recommend the change for the above-mentioned reasons.
    Generic delta safty intervals
    oss note 392876
    safety interval
    0FI_GL_4 Safety Delta
    Genric delta fro table
    check this thread which already discussed about this topic
    Generic Extractor - Delta
    Shreya

  • Generic Extractor Issue

    Hello Experts,
    I have one small doubt on the Generic Extractor. My Generic Extractor is based on the Delta with the changed on Field(AEDAT) and I wanted to know is it possible to extract the data if changed on is not updated to the document but other fields are getting updated.
    Like if the Sales Document status is changing from One status to other. In this case the AEDAT for that sales order wont get updated. in this case is it possible to extract that record as Delta thru the Generic Extractor if the Extractor is based on AEDAT.
    Suggestions will be appreciated..
    thanks
    Bulli

    Hello Bulli
    Its very muc possible to define delta on 2 fields in generic data source , you need to use created on and changed on field to define delta by modifying standard extractor program
    follo below threads
    generic delta   using function module with two fields  AEDAT AND ERDAT
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    Thanks
    Tripple k

  • Generic Datasource Delta upload Issue

    Hi all,
    I have created a Generic Datasource for Solution Manager ODS 0crm_process_srv_h which contains the userstatus, transaction number, transaction desc and GUID of CRM Order Object (ods key field),only these fields.
      I have taken transaction number as delta field and it is as timestamp. But delta upload is not happening. If I give GUID or Status also delta upload is not happening . Please suggest which is the best way to give to delta upload.
    Thanks and Regards,
    SGK.

    Hi,
    in your case you need to create a function module as a extractor. Create a extract structure as well and add a timestamp field (lets call it zdeltahelp) to be used as the delta relevant field of the datasource. After successful init the last extraction timestamp will be passed to the fm and you can start selecting all resb entries for orders created and/or changed from that time on as well as the ones deleted (but therefore you need to read the change documents as well). For more information about generic extraction using fm search the forum or check out my business card. There you will find a link to a weblog about that issue.
    regards
    Siggi

  • Functional Module Extractor not pulling all the record on BW side

    Hi,
    i have written a FM extractor to pull data from CDHDR and CDPOS table. the Records count shows on RSA3 is more than 3,00,000 but while pulling it on BW side it brings only 41,000  Around records.
    I steps i have taken is -
    tried setting and resetting the package side in Info package.
    Tried putting the default package size to 50K in FM setting
    but nothing is working.
    It seems like the pacet size is not incrementing in the code. i have tired to find ou the fault but coult not and RSA3 is working fine.
    can anyone please suggest a correct piece of code or find out where exactly the fault is?

    Vikrant,
    The structure of your generic extractor function module should be something like:
    If initialisation
      Store parameters, clear packet count
    Else
      If first packet
        Create cursor
      Endif
      Read block of records from cursor
      If cursor returns no more records
        Raise NO_MORE_DATA exception
      Endif
      Process records from cursor and output
      Add one to packet count
    Endif
    This function module code can get called repeatedly.  Possibly you are only extracting data for the first packet?
    Mark

  • Create Function Module  Extractor

    Hello Friends, Please help me in developing the extractor. I want to write the custom extractor using the three Table fields FAGLFLEXA and FAGLFLEXT with some logic to merge data. if you have any abap code. please email me at [email protected] will be very thankful for the help. i do not want to use the generic datasource. want to use the finction module option beacuse the logic is there from 3-4 tables.
    Thanks
    Soniya Kapoor

    Refer to sample function module RSA3_GET_DATA_SIMPLE. it's on every system.
    Tomer.
    FUNCTION RSA3_GET_DATA_SIMPLE.
    ""Lokale Schnittstelle:
    *"       IMPORTING
    *"             VALUE(I_REQUNR) TYPE  SBIWA_S_INTERFACE-REQUNR
    *"             VALUE(I_CHABASNM) TYPE  SBIWA_S_INTERFACE-CHABASNM
    *"                             OPTIONAL
    *"             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_RLOGSYS) TYPE  SRSC_S_INTERFACE-RLOGSYS
    *"                             OPTIONAL
    *"       TABLES
    *"              I_T_SELECT TYPE  SBIWA_T_SELECT OPTIONAL
    *"              I_T_FIELDS TYPE  SBIWA_T_FIELDS OPTIONAL
    *"              E_T_DATA OPTIONAL
    *"       EXCEPTIONS
    *"              NO_MORE_DATA
    *"              ERROR_PASSED_TO_MESS_HANDLER
      STATICS: S_S_IF_SIMPLE TYPE SRSC_S_IF_SIMPLE,
               S_FNAME     LIKE TFDIR-FUNCNAME.
      IF I_INITFLAG = 'X'.
    *====== INIT ===========================================================
    *------ create interface structure -
        S_S_IF_SIMPLE-REQUNR = I_REQUNR.
        IF NOT I_ISOURCE IS INITIAL.
          S_S_IF_SIMPLE-DSOURCE = I_ISOURCE.
        ELSE.
          S_S_IF_SIMPLE-DSOURCE = I_CHABASNM.
        ENDIF.
        S_S_IF_SIMPLE-MAXSIZE = I_MAXSIZE.
        S_S_IF_SIMPLE-INITFLAG = I_INITFLAG.
        APPEND LINES OF I_T_SELECT TO S_S_IF_SIMPLE-T_SELECT.
        APPEND LINES OF I_T_FIELDS TO S_S_IF_SIMPLE-T_FIELDS.
        DATA L_S_OSOURCE TYPE RSAOT_S_OSOURCE.
        CALL FUNCTION 'RSA1_SINGLE_OLTPSOURCE_GET'
             EXPORTING
                  I_OLTPSOURCE    = S_S_IF_SIMPLE-DSOURCE
             IMPORTING
                  E_S_OLTPSOURCE  = L_S_OSOURCE.
       S_FNAME = L_S_OSOURCE-EXTRACTOR.
    call extractor in init mode -
        DATA L_DEBUG(1).
        IMPORT L_DEBUG FROM MEMORY ID 'RSFH_DBG'.
        IF L_DEBUG = RSFH_C_DEBUG_LATE.
          BREAK-POINT.                                        "#EC NOBREAK
        ENDIF.
        CALL FUNCTION S_FNAME
             EXPORTING
                  I_REQUNR                     = S_S_IF_SIMPLE-REQUNR
                  I_DSOURCE                    = S_S_IF_SIMPLE-DSOURCE
                  I_MAXSIZE                    = S_S_IF_SIMPLE-MAXSIZE
                  I_INITFLAG                   = S_S_IF_SIMPLE-INITFLAG
             TABLES
                  I_T_SELECT                   = S_S_IF_SIMPLE-T_SELECT
                  I_T_FIELDS                   = S_S_IF_SIMPLE-T_FIELDS
             EXCEPTIONS
                  NO_MORE_DATA                 = 1
                  ERROR_PASSED_TO_MESS_HANDLER = 2
                  OTHERS.
      ELSE.
    *======= FETCH =========================================================
        REFRESH E_T_DATA.
        CLEAR E_T_DATA.
        CLEAR S_S_IF_SIMPLE-INITFLAG.
        CALL FUNCTION S_FNAME
             EXPORTING
                  I_REQUNR                     = S_S_IF_SIMPLE-REQUNR
                  I_ISOURCE                    = S_S_IF_SIMPLE-DSOURCE
                  I_DSOURCE                    = S_S_IF_SIMPLE-DSOURCE "30C
                  I_MAXSIZE                    = S_S_IF_SIMPLE-MAXSIZE
                  I_INITFLAG                   = S_S_IF_SIMPLE-INITFLAG
             TABLES
                  I_T_SELECT                   = S_S_IF_SIMPLE-T_SELECT
                  I_T_FIELDS                   = S_S_IF_SIMPLE-T_FIELDS
                  E_T_DATA                     = E_T_DATA
             EXCEPTIONS
                  NO_MORE_DATA                 = 1
                  ERROR_PASSED_TO_MESS_HANDLER = 2
                  OTHERS                       = 3.
      ENDIF.
    *========= ERROR HANDLING ==============================================
      CASE SY-SUBRC.
        WHEN '0'.
        WHEN '1'. RAISE NO_MORE_DATA.
        WHEN '2'.
          LOG_WRITE SY-MSGTY SY-MSGID SY-MSGNO SY-MSGV1 SY-MSGV2.
          RAISE ERROR_PASSED_TO_MESS_HANDLER.
        WHEN OTHERS.
          LOG_WRITE SY-MSGTY SY-MSGID SY-MSGNO SY-MSGV1 SY-MSGV2.
          RAISE ERROR_PASSED_TO_MESS_HANDLER.
      ENDCASE.
    ENDFUNCTION.

  • Enhancing Function Module Extractor

    Is it possible to enhance an extract structure which is using a function module as an extractor.
    Basically I want to extract some more fields which the function module is not extracting. Can someone let me know how to do this.
    Best Regards,
    James.

    hi James,
    is it generic extractor or business content ?
    if generic extractor, since it's our own, you can add field(s) in extract structure and add code in the function module to populate these fields.
    go to transaction RSO2, and you will see the extract structure, use SE11 to 'change' the structure and activate. then add code in function module, use SE37.
    if business content, RSA6, choose your datasource and double click the extract structure and click 'append structure', add field(s) with prefix ZZ. activate the structure.
    and populate the field(s) via user exit ZXRSAU01 (for transaction data).
    hope this helps.

Maybe you are looking for

  • How to set the returned value of CFL in a matrix

    dear all, I got a matrix binded to a DataSource and two CFLs are in this matrix. The codes for handling AfterChooseFromList is as following.  It works almost fine. But when a docoment containing more than two rows in the matrix and I reselect the CFL

  • SRM 7.02 Shopping Cart Monitor

    Good afternoon Gurus, I am having difficulty with commitments posting incorrectly in our backend system.  I am currently running ECC 6 and SRM 7.02 Extended Classic. I use the SRM Application Monitor for error checking etc........... I as the adminis

  • Calculate time difference in Labview from excel file

    I am reading in values from a excel files, the file contains date and time data in one cell, then either an On or Off value in the cell next to it. I would like to find the time difference between the on and the off cycles. The VI I have so far bring

  • ITunes is showing as authorised on five computers. However I only own two computers? How can I sort this issue out?

    I have just installed iTunes on a lap top and when I authorised the software I received a message that I had used my five autorisations. However I only own one PC and one lap top. To the best of my knowledge I've never authorised any other computer.

  • Linking blackberry service to iPad

    is there a way to use my corporate bberry phones 3G service to connect my iPad to the web and to retrieve bberry emails?