Function Module Extractor
Hi All,
There is this function module which is used to extract values into BW. "FCIW_HIERARCHY_TRANSFER_CSIT"
I guess this is a standard SAP FM. I want to know if there are table names mentioned for extracting the Nodes of the hierarchies, in this code.
Pls respond.
Sajan.M
Hi All,
There is this function module which is used to extract values into BW. "FCIW_HIERARCHY_TRANSFER_CSIT"
I guess this is a standard SAP FM. I want to know if there are table names mentioned for extracting the Nodes of the hierarchies, in this code.
Pls respond.
Sajan.M
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....
ThanksFUNCTION 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 -
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
ShrutiDear 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 -
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. -
Function Module Extractor with Delta
I'm very new to working with the BW, so I hope I'm explaining my question in a way that makes sense.
I need to make a BW extractor that pulls data from at least one table, possibly more, and which also calculates some data.
I think the only way I can do that is by using an extractor with a function module.
I've been looking at the examples in function group RSAX, and I think I sort of get it, except for one part.
I'm really confused about how the delta works.
I'm looking at the example: RSAX_BIW_GET_DATA_SIMPLE
Does it even use a delta?
I'm trying to understand how the delta gets passed, and how it gets used to filter the data in the function module. I'm not sure if it's something I need to code in myself, or if it's something that BW does by itself, or what.
I'm not sure if I'm making sense, but if anyone could help me, I'd appreciate it.Thanks guys, you've been super helpful so far, so I'm just going to keep asking questions. I promise to award points at the end
I'm looking at it now, and I think if I change it to read from a table, instead of read from a function module I can use the 'numeric pointer' option for the delta. (Does that just mean a number? For example, payroll runid is a number, so I could use that and only get new payroll runs?)
However, there still are some calculated fields they want. Someone mentioned doing that on the BW side. How would that work?
Sorry for such vague questions, but any help is really appreciated. -
PROBLEM in function module extractor
Hi ,
i m facing a problem in creating a function module as extractor in srm but its not working plz letme know the way i can create the zfunction module as extrator.
i created a datasource ZSRM_CS in which i m using BBP_PDS_CND as extraction structure and Z_BIW_GET_DATA_SIMPLE as zfunction module
but even wen i use rsa3 in debug mode its not stoping and gives error
ERROR6 plz letmme know the problem.
i copied the standard module RSAX_BIW_GET_DATA_SIMPLE .
n hide the irrelvant things. tell me y its not stoping in debug mode in rsa3
Thnx
RegardsThnx for ur concern ...but i have already mentioned. my code goes llike this.plz have a luk
FUNCTION Z_BIW_GET_DATA_SIMPLE.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR OPTIONAL
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA TYPE ZT_BBP_PDS_CND OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Example: DataSource for table SFLIGHT
TABLES: ZQUOTATION.
Auxiliary Selection criteria structure
DATA : L_S_SELECT TYPE SRSC_S_SELECT.
DATA : GIT_QTN type table of ZQUOTATION with header line .
DATA : GIT_TAB type table of BBP_PDS_CND with header line .
Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,
cursor
S_CURSOR TYPE CURSOR.
Select ranges
RANGES: L_R_CARRID FOR SFLIGHT-CARRID,
L_R_CONNID FOR SFLIGHT-CONNID.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
CASE I_DSOURCE.
WHEN '0SAPI_SFLIGHT_SIMPLE'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
this is a typical log call. Please write every error message like this
LOG_WRITE 'E' "message type
'R3' "message class
'009' "message number
I_DSOURCE "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDCASE.
APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
Fill parameter buffer for data extraction calls
S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
First data package -> OPEN CURSOR
IF S_COUNTER_DATAPAKID = 0.
Fill range tables BW will only pass down simple selection criteria
of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
select * from ZQUOTATION
into table GIT_QTN .
LOOP AT GIT_QTN .
CALL FUNCTION 'BBP_PDCND_GETDETAIL'
EXPORTING
i_p_guid = GIT_QTN-GUID1
I_P_KIND = 'B'
I_OBJECT_TYPE = GIT_QTN-OBJECT_TYPEH
IV_VERSION_TYPE = ' '
iv_header_guid = GIT_QTN-HEADER
IV_WITH_DELETED_RECORDS = ' '
IMPORTING
ET_CONDITIONS = GIT_TAB
E_COM =
TABLES
E_T_DATA =
MOVE-CORRESPONDING GIT_TAB TO E_T_DATA.
ENDLOOP.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CARRID'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_CARRID.
APPEND L_R_CARRID.
ENDLOOP.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CONNID'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_CONNID.
APPEND L_R_CONNID.
ENDLOOP.
Determine number of database records to be read per FETCH statement
from input parameter I_MAXSIZE. If there is a one to one relation
between DataSource table lines and database entries, this is trivial.
In other cases, it may be impossible and some estimated value has to
be determined.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT (S_S_IF-T_FIELDS) FROM SFLIGHT
WHERE CARRID IN L_R_CARRID AND
CONNID IN L_R_CONNID.
ENDIF. "First data package ?
Fetch records into interface table.
named E_T_'Name of extract structure'.
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
IF SY-SUBRC <> 0.
CLOSE CURSOR S_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF. "Initialization mode or data extraction ?
ENDFUNCTION.
plz letme know where i m wrong in code,
wt my code is doing its picking the GUID! and header from view zquation and through fm 'BBP_PDCND_GETDETAIL' its returning et conditions whichi have to pass to data source .
Thnx -
Functional module extractor for INDX
Help to write please an optimum code of the functional module for an extractor from table INDX
While in the functional module on the basis of RSAX_BIW_GET_DATA_SIMPLE ' has made the following
* Data transfer: First Call OPEN CURSOR + FETCH
* Following Calls FETCH only
* íà÷àëî îáðàáîòêè
* First data package -> OPEN CURSOR
IF S_COUNTER_DATAPAKID = 0.
delete from zdbasetable1.
import inttable1 inttable2 inttable3 from database INDX(IM) ID 'IDENT'.
loop at inttable1.
move-corresponding inttable1 to zdbasetable1.
modify zdbasetable1.
clear zdbasetable1.
endloop.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT (S_S_IF-T_FIELDS) FROM zdbasetable1.
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.
But it would be desirable, without use database table - zdbasetable1 -
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 KapoorRefer 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. -
Function Module Extractor with Delta Functionality
Hi Friends,
I have to extract the entire data of CDPOS table in R/3 , as its a cluster table I am unable to build a view, I am planning to go for FM extraction, Could someone help me as how to build it with Delta Functionality.
I think I need to develop the Datasource, with Extract Structure,( Do I need to create a Structure in SE11) Please help me out .
Thanks,
KrishHi,
you can either use an existing structure or else create one on your own. (SE11).
The DeltaHandlig fairly easy.
When having finished the extractor (FunctionModule, Structur and DatasSource), go to the "generic Delta" button and select the relevant field.
The Generic Delta and its DeltaPointer is managed within the DeltaQueue (RSA7) and works more or less like a selection. Don't think too hard about it in your function module except taht you need to select by this field in your FM.
Did that come clear?
hth
Cheers
Sven -
Fields inclusion for Function Module Extractor
Hi Gurus,
I am planning to design a Function Module based extractor. This Function modules is supposed to extract data from approx 10 different tables. Most of the tables have 5 or more fields of it to be pulled in.
However, there are also few tables, which have got just a single field or just 2 fields.
As a design, is it a good idea to include the logic of extracting these fields in the Function module? or
Is it recommended to have these fields included via a user exit, once the datasource is developed?
I appreciate all the helpThanks Dash I have assigned the points.
I guess you are recommending the User Exit approach as mentioned in my original post where few of my tables have got just a single field or just 2 fields.
Let me know please.
Other SDNers,
Let me have your thoughts too -
DB table for function module extractor
I would really appreciate any comment or suggestion about this topic: Function module based extraction. I opened this thread on the BC & Extractors forum, but unfortunately none has given me any feedback yet.
Thanks & Regards, DavideSo none see any advantage with storing the extracted data in a materialized DB table, before transmitting the records to BW. Can I infer it's probably not a good idea wasting time with an additional massive write operation?
Cheers, Davide -
Function Module Extractor with Internal Table
Hi All,
I have a need to extract records from a complex SQL Statements, so I will be using different SQL Statements and merging the results in to a single internal table. In the function modules what will happen if I do not use cursor WITH HOLD option, (I know it maintains the cursor position) and what if I directly load into E_T_DATA from my internal table. How this will affect the datapackage size?
In the future I will have records beyond 1 million and I am concerned to send all the 1 million record in one package rather than multiple packages during extraction.
Please give a solution if you have come acroos this kind of situation with your development.
Thanks,
Alex.Alex,
I do not see why the complexity of ABAP statements should make you change the data processing logic proposed by SAP by way of the sample Function module.
It appears to me that you are changing something knowing fully well its implications and then trying to find a solution for it.
Good Luck!
Mathew. -
Effect of Multiple cursors in Function Module Extractors
Hi,
I am trying to use multiple cursors in an FM extractor, like this:
OPEN CURSOR WITH HOLD c1 FOR <select query 1>.
OPEN CURSOR WITH HOLD c2 FOR <select query 2>.
FETCH NEXT CURSOR c1
INTO CORRESPONDING FIELDS
OF TABLE i_equi.
FETCH NEXT CURSOR c2
APPENDING CORRESPONDING FIELDS
OF TABLE i_equi.
" Further processing of equipments
" obtained in i_equi
I am also checking SY-SUBRC, after each Fetch statement. If both cursors happen to be empty, the extractor exits by raising no_more_data, like other extractors.
It is possible to do so, since I just tried it. The question is, are there any disadvantages of this kind of approach in terms of memory or speed?
Edited by: Suhas Karnik on Sep 29, 2008 12:06 PMhI kiran,
The simple way is to create a data element & domain with value range where u provide set of fixed values or provide a check table to it.
Use that data element in a table <ztable>.
Code:
Parameters:
p_burks like <ztable>-dataelement.
Call Function <function_name>
exporting
p_burks = p_burks,
Maybe you are looking for
-
Update Header Partner data in a Purchase Order in 4.6C system.
Hello all, I have written a report program to add/update partner data at PO header level. The report uses BAPI POCHANGE for the update. But the BAPI_PO_CHANGE does not transfer/update Partner Information for the PO's in 4.6 C system. The same code fu
-
how do i restore my mac mini to factory settings?
-
Hi, Materialized view can't be renamed, so how can I reduce the downtime for any new column addition in the materialized view. Regards, Koushik
-
Hi, I have an idoc imported in XI. It comes with standard message type while importing . I need to route this IDOC to two different systems. But the problme is the Message type is different for both of this system, but the IDOC type is same. And th
-
Solstice X.25 license problem?
I installed Solstice x.25 on an Ultra 1 (Solaris 7) and installed the license key using lit. When I try to start the network using x25tool, I get the message similar to "x.25 is looking for a license server, still trying" followed by network has been