Clarification on some reading: Datasource and Function Module extraction
Hi,
I found a link on Help.sap which explains how to create a function module and I have some questions after my review:
It basically uses function module to read some filght data from the table SPFLI
1.
I got into this research since one of the methods for data extraction from R3/ECC to BW is through Function Modules.
Why couldn't that extraction be based on a view of the table SPFLI.
i.e. why is this complication of writing an ABAP code to achieve something which could be done with a DB view or table?
2.
Any example or scenario where you think a datasource could NOT be created based on a table, Database View or Sap Query and that it must be done with a Function Module?
3.
So, once the function module is successfully created; how to do create a Datasource based on this function modeule to take care of the delta's on the source data?
4.
There was a discussion about "remote function call" which I did not get completely. Will extracting data from R3/ECC to BI be regarded as "remote call"
Thanks
1. Why couldn't that extraction be based on a view of the table SPFLI. i.e. why is this complication of writing an ABAP code to achieve something which could be done with a DB view or table?
A DataSource could have been created directly from table SPFLI. It was used as an example in the case of the document is my guess. There are some table types, however, that you cannot create a DataSource directly off of.
2. Any example or scenario where you think a datasource could NOT be created based on a table, Database View or Sap Query and that it must be done with a Function Module?
Pool/Cluster tables cannot be directly read and therefore must use a Function Module for extraction. Another reason for using a Function Module, even against a single table, is in the case that you have more than one field that you want to create a generic delta against. SAP delivers the capability in the application to set a generic delta on only one field within the DataSource. If there is more than one, say created on and changed on dates, a Function Module is require in order to enable that.
3. So, once the function module is successfully created; how to do create a Datasource based on this function modeule to take care of the delta's on the source data?
Go to tocde RSO2, enter the DataSource name, click on the Create button. In the next screen, there are three buttons toward the top to tell what is the source of the DataSource: 1) Extraction from View (default); 2) Extraction from Query; and 3) Extraction from Function Module. When you click on the Extraction from Function Module button, the View/Table field will gray out and the Function Module and Extraction Structure fields will un-gray.
4. There was a discussion about "remote function call" which I did not get completely. Will extracting data from R3/ECC to BI be regarded as "remote call"
I think that this is referring to a process whereby you create a remote-enabled Function Module on the source R3/ECC system and then create an ABAP program in BW that calls that remote-enabled Function Module. Basically, the ABAP program on BW would send some parameters through to the remote-enabled Function Module on R3/ECC. The Function Module would extract data into an internal table and then pass that internal table back through to the ABAP program in BW for further processing.
Edited by: Dennis Scoville on Aug 20, 2009 8:18 AM
Similar Messages
-
Can anybody explain me creating Generic Datasource using Function module?
Hi,
can anybody explain me creating Generic Datasource using Function module?
Thax in advance,
Ravi.Generic Extraction via Function Module
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
1. Create s structure with the fields that you need from the 4 tables . Activate.
2. Goto SE 80 Select The Function Group , Copy , Select the Function module
" RSAX_BIW_GET_DATA_SIMPLE " and Give a New name starting With
Y or Z .
3. SE37 ->Your Function module name -> Change , In table tab give your structure
name by deleting the associated type given in " E_T_DATA " .
4. Now select source code and Do the coding . Give Data source name in Coding .
In your case you have to take data from more that 1 table .
5. Activate the Function Group .
6. In RSO2 Create the Data source , Give the Function Module Name , And Save.
7. RSA3 -> Give data source name and Check for the Records .
Creation of custom datasource. (Using function module)
<b>is an example</b>
1.Create a function group .
2. Structure ZTEST123
ZMATNR MATNR CHAR 18 0 Material Number
ZMTART MTART CHAR 4 0 Material type
ZMBRSH MBRSH CHAR 1 0 Industry sector
ZMATKL MATKL CHAR 9 0 Material group
ZBISMT BISMT CHAR 18 0 Old material number
ZMAKTX MAKTX CHAR 40 0 Material description
3. Create function module (i.e. ZTEST .) .
FM - YMARA_DATA_TRNS
FUNCTION YMARA_DATA_TRNS.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" TABLES
*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZTEST123 OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
data : ZTEST123 type ZTEST123 occurs 0 with header line.
Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
S_COUNTER_DATAPAKID LIKE SY-TABIX.
DATA: begin of t_mara occurs 0,
ZMATNR type MATNR,
ZMTART type MTART,
ZMBRSH type MBRSH,
ZMATKL type MATKL,
ZBISMT type BISMT,
end of t_mara.
DATA: begin of t_makt occurs 0,
ZMATNR type MATNR,
ZMAKTX type MAKTX,
end of t_makt.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
Check DataSource validity
CASE I_DSOURCE.
WHEN 'ZZMARA_DATA'.
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.
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.
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.
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.
select MATNR
MTART
MBRSH
MATKL
BISMT
from mara up to 10 rows
into table t_mara.
if not t_mara[] is initial.
select MATNR
maktx
from makt
into table t_makt
for all entries in t_mara
where matnr = t_mara-zmatnr.
endif.
loop at t_mara.
read table t_makt with key zmatnr = t_mara-zmatnr.
ZTEST123-zmatnr = t_mara-zmatnr.
ZTEST123-ZMTART = t_mara-ZMTART.
ZTEST123-ZBISMT = t_mara-ZBISMT.
ZTEST123-ZMBRSH = t_mara-ZMBRSH.
ZTEST123-ZMATKL = t_mara-ZMATKL.
ZTEST123-zmaktx = t_makt-zmaktx.
append ZTEST123.
clear ZTEST123.
endloop.
clear E_T_DATA.
refresh E_T_DATA.
E_T_DATA[] = ZTEST123[].
ENDIF.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF. "Initialization mode or data extractio
ENDFUNCTION.
3. Create the data source using transaction (RSO2).
4. If structure exists for the table parameter of your function module then ok else create a structure for the table parameter E_T_DATA.
5. Test the datasource in R/3 using transaction RSA3.
6. Transfer the data source to BW System and replicate it in the BW-System. -
How to create a generic datasource from function module?
Dear experts,
I have created a generic datasource from function module. For this extrator, I created a function module and a structure.
I have now some difficulties to continue:
In this function module, i get data from different transparent tables. Then i put these data into an internal table.
I just don't know what is the relatioin between the structure i defined and this internal table.
I should make "iTab structure AA" in the source code?
ThanksHi..
check this
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/84bf4d68-0601-0010-13b5-b062adbb3e33
Generic Extraction via Function Module
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
1. Create s structure with the fields that you need from the 4 tables . Activate.
2. Goto SE 80 Select The Function Group , Copy , Select the Function module
" RSAX_BIW_GET_DATA_SIMPLE " and Give a New name starting With
Y or Z .
3. SE37 ->Your Function module name -> Change , In table tab give your structure
name by deleting the associated type given in " XXXX " .
4. Now select source code and Do the coding . Give Data source name in Coding .
In your case you have to take data from more that 1 table .
5. Activate the Function Group .
6. In RSO2 Create the Data source , Give the Function Module Name , And Save.
7. RSA3 -> Give data source name and Check for the Records .
Creation of custom datasource. (Using function module)
.Create a function group .
. Structure ZTXXXX
Create function module (i.e. ZTESTXXX) .
. Create the data source using transaction (RSO2).
. If structure exists for the table parameter of your function module then ok else create a structure for the table parameter .
Test the datasource in R/3 using transaction RSA3.
Transfer the data source to BW System and replicate it in the BW-System.
Message was edited by:
shiv -
Creating generic datasource using function module in R/3 4.6c
Hi,
I am not able to see the option (in TC RSO2) to create generic datasource using function module in R/3 4.6c. Is there any special plug in or some SAP Note to be applied to get the option ?
Waiting for a quick response.
Thanks and Regards,
DeepakHi Sat,
Thanks for the reply.
I know that creating generic datasource from function module is available in R/3 4.7.
In 4.6c version there are only two options available. They are Extraction from DB View and Extraction from SAP Query.
The third option i.e. Extraction from Function Module is not available in 4.6c. I wanted to know if there is any plugin that needs to be installed to get this option.
Thanks and Regards,
Deepak -
Generic DataSource on Function Module - Query
Hi All,
We have a requirement wherin we have to pull data from MARM (Material UOM fields) table. This table has some 1,130,000 records. Since this table doesn't have a Last Changed on or Created on field we are not able to create a Generic Delta on the table itself.
We have come to know that in MM02, we can change the Unit of Measure fields for material. When we update in MM02, both MARA and MARM table gets changed. MARA will be updated with the last changed date.
So we are thinking of creating a Generic DataSource on Function module so that we can perform the delta on Last changed or Created on field of MARA.
I have a doubt about creating the function module. How should we achieve the initial load (Getting all the material and it's UOM to BW) and then Delta loads through the function module?
Does the first load needs to be or should be a full load?
If someone can tell me the steps that should be followed, it would be very helpful
Please let me know your suggesstion.
Regards,
Vivek Das GuptaHi
Could u try creating a view based Datasource.
Also u can do a full load in parallel by creating 4-5 Infopackages. After which a Init without data transfer can be done.
Hope this helps.
Reg
Aparna -
To use SubRoutines and function modules and include
Hellow Friends ,
Can any body suggest me at waht situations we have to use SubRoutines and function modules and include in an abap report and also i need the standards in an abap program.Hi Rajesh,
You use create subroutines within your programs for those block of codes which are used often within the scope of the development. Function modules are like global subroutines , hence any number programs which might want to use the functionality within the function module can do so.
Creating includes is a good programming prctise, e.g. one for data declerations , one for subroutines, so that it makes the code more reader friendly and also helps in modularizing the program. Also once you put a subroutine in an include, you can use the same subroutine in other programs by referring to the include with the INCLUDE statement in your other programs.
Hence basically they are used for :
1. Reusability
2. Modularization of code (make it more readable)
Hope this is of some help.
Regards,
Aditya -
I need to know thelist of bapi's and function modules used for transaction
I need to know thelist of bapi's and function modules used for transaction in order to use these FM or BAPI in reading some fields of equipment master and functional loocation.Can any one suggest me some methods...or do i need to write a report for the same.
Steps to find the BAPI/function modules used in a transaction
1) Find the package of the transaction thro' SE93.
For example the package for the transaction VA03 is VA
2) Go to Se80, key-in the package (say VA)
3) You can see the function modules under the folder finction group and
you can see the BAPI's under the folder Business Engineering-> Business Objects-> double click on the released methods of the Business Objects -
To know thelist of bapi's and function modules used for transaction IH10
I need to know thelist of bapi's and function modules used for transaction in order to use these FM or BAPI in reading some fields of equipment master and functional loocation.Can any one suggest me some methods...or do i need to write a report for the same.
hi,
provide report name (here: RIEQUI20)
goto se38 - utilities - cross reference - function modules
or use report RPR_ABAP_SOURCE_SCAN
with search string call function
A.
Message was edited by:
Andreas Mann -
Hi All,
Need some urgent help..
Iam facing some issue with the Function Module 'SKWF_FIND_BY_QUERY' in a BW ECC6.0 system.
As shown below, in the function module, the Table IT_PROPERTIES_RESULT gets populated with some values based on inputs like IT_CLASSES, IT_QUERY, and L.
This updation of IT_PROPERTIES_RESULT table is happening for some of the services sent through IT_QUERY and is not getting populated for some.
call function 'SKWF_FIND_BY_QUERY
exporting
CONNECTION_SPACE =
OBJ_TYPE = 'L'
PTYPE =
X_STRICT =
IMPORTING
ERROR =
tables
CLASSES = IT_CLASSES
QUERIES = IT_QUERY
RESULT_OBJECTS = IT_LOIO
PROPERTIES_REQUEST = PROPERTIES_RESULT = IT_PROPERTIES_RESULT.
The values are as follows:-
Values getting populated in IT_CLASSES BW_LO_TRAN Values getting populated in IT_QUERY 1) BW_QUERY, 2) /BIC/ZSERVICE
I would like to know whether any Standard Customizing BW transaction is present that is maintaining IT_PROPERTIES_RESULT table properties and fetching through this Function Module.
Also, suggest how this issue can be resolved
Thanks & Regards,
Shailesh nagarThanks Suhas. That definitely helped.
Also the following links helped.
http://help.sap.com/saphelp_nw70/helpdata/EN/86/1c8c3e94243446e10000000a114084/frameset.htm
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
Cheers,
Preethi -
What is the difference between subroutine and function module?
What is the difference between subroutine and function module?
Hi,
they can both return values.
FMs are mainly used when a routine is to be performed by many programs.
Subroutines (forms) are generally only executed within one program.
You can perform routines from other programs, but it's not often done.
both forms and FMs are reusable modularization units.
To distinguish we generally say that forms are used for internal modularization and
FMs are used for external modularization.
To decide on which to implement, consider whether you need the content to be used just for a limited program
or wheteher it can be called from many independent programs.
For the first purpose it is better to implement a form whereas for the second we implement an FM.
However, ABAP does not isolate the usage context.
That is; you can call a form from another program within whose code the form is not actually implemented.
However, this requires attention since the form may utilize global variables.
The same issue holds for FMs.
FMs are encapsulated in function groups and function groups may have global variables that can be globally
used by all FMs inside it.
Thanks,
Reward If Helpful. -
Tracing Form and Function modules using SE30
Hi,
I want to trace only the Forms and function modules that are executed by a program using SE30. I have tried setting the variants in different ways but it still gives lot of junk information which i dont need. How can I set up the variant so that it only traces Forms and function modules executed by a program?
Will give points to right answer. Thanks for readingHi Srikrishna,
First of all create a vraian tin SE30. While creating the variant, in th Tab 'Duratn/Type' select the radio buton 'NONE'. Now execute yur program and then analyse.Select 'GROUP HIT LIST' Icon which gives Function Modules,Subroutines etc.
Regards,
Srinivas. -
Creating a Generic Datasource using Function Module
Hi Guru's
We are tryin to create a Generic datasource using function module, we have found few old how to guides for doing the same but it is not effective and need to be altered. Can anyone suggest me the latest step by step procedure to create the above, also if you have the how to guide kindly paste the link as it will be a great help at this point.
Thanks in advance
Regards
LiquidHi,
Please goto the Following links :-
PDF
1) http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c062a3a8-f44c-2c10-ccb8-9b88fbdcb008?quicklink=index&overridelayout=true
2) http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33?quicklink=index&overridelayout=true
SAP Forum
3) Re: DataSouce based on FM
4) http://forums.sdn.sap.com/post!reply.jspa?messageID=10050614
5) https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a0f46157-e1c4-2910-27aa-e3f4a9c8df33
6) Re: Generic datasource with functional module
7) Generic Extractor (FM based) - Delta Enabled
Regards
Obaid -
Datasource via function module
Hi,
I am building a function that is due to be used by a Datasource (via Function Module).
This function uses table WDRD. It applies to this table a code that needs the use of an internal table for the calculation (for intermediary calculation storage). After which, I want to get the result of this internal table (say T1_DATA), and return it to E_T_DATA, which will be used to fill my datasource. This is where I am stuck.
-> When I try to get the content of my internal table in my cursor (code: OPEN CURSOR WITH HOLD S_CURSOR FOR
select * from T1_DATA
endif.),
I get an error message stating the table is not defined in the ABAP dictionary.
-> When I try to avoid the cursor and put directly the content of my table T1_DATA in table E_T_DATA, I don't get anything in my Datasource.
Any help would be greatly appreciated.
Thanks,
PierreHi,
Which structure are you using??
Are you using the same old structure for this function module as well.
Have you enhanced the structure with new required fields.
New extrac fields needs to be added to existing structure if you are using the same or create a new one and make sure that you have all the fields in the structure which you are going to use in the data source.
You need to take care for the append as well and the issue could be in the code as well.
Make sure you have written the proper code and just for the new fields done an append
Thanks
Ajeet -
RE:Idoc type and function module
HI All
What are the generic IDoc types and function modules used for the following objects ??We are on SAP R/3 4.7.
Invoice Release (inbound)
Payments (outbound)
Purchase Orders (outbound)
Goods Receipts (outbound)
Cost Centers (outbound)
GL Codes (outbound)
Internal Orders (outbound)
WBS (outbound)
Materials (outbound)
Invoices (inbound)
Invoices Blocked (outbbound)
And How do i judge which IDOC types and function module fit my requirement( I mean what are the things i have to keep in mind while choosing idoc types and function modules)?
Any help will be very much appreciated
Thank you
SteveHi Steve...
You can find the IDOC types in Tcode WE30 , WE60.
Invoice Release (inbound)
INVOIC03
Payments (outbound)
Purchase Orders (outbound)
ORDERS03
Goods Receipts (outbound)
ACC_GOODS_MOVEMENT02
Cost Centers (outbound)
GL Codes (outbound)
Internal Orders (outbound)
WBS (outbound)
Materials (outbound)
MATMAS04
Invoices (inbound)
ACC_INVOICE_RECEIPT03
Invoices Blocked (outbbound)
<b>REWARD IF HELPFUL.</b> -
Diff b/w BAPI and Function Module.
What is the difference between BAPI and Function Module....
By Interface programming do we mean posting data thru BAPI,BDC....Hi Alex,
BAPI: Standard Interface in the R/3 system that allows the system to communicate with components of other business suites.
FM: These are the procedures that are defined in the Function Groups and can be called from any ABAP Program. FM allow you to encapsulate and reuse global functions int he R/3 system.
The main basic difference between BAPI and FM are
1) All BAPIs are FM but not all FMs are BAPIs
2) BAPIs are remote enabled
3) BAPIs interface will not have a changing and exceptions. They can not be used to have use dialog.
Interface programs can post data to SAP either through a BDC, BAPI, IDOC etc. It depends on the type of requirement.
Hope this solves your question.
Enjoy SAP
Rajasekhar
Maybe you are looking for
-
Where is user name and password stored for database adapter
dear all, does any body know where is the password stored in database adapters. I noticed it mentioned in wsdl file in encrypted format, but is there any other place it stored. a ) before deployment b) aftre deployment . Thanks in advance . Regards A
-
Hi, I am writing a program. It has a select statement with joins on 6 tables. select LIKPBOLNR LIKPROUTE LIKPVBELN LIKPVSTEL LIKPWADAT_IST LIPSANZSN LIPSPOSNR LIPSVBELN VBFAPOSNN VBFAPOSNV VBFA~VBELN VBFAVBELV VBFAVBTYP_N VBRPALAND VBRPBRGEW V
-
I'm hoping someone can identify a graph "tool" that's interfering with my LabVIEW program. It's not on the normal graph palette and I can't find reference to it anywhere. It activates seemingly on its own during runtime, and sticks around if I abor
-
I don't know beans about wireless connections, and I ask how I might do it with my Performa 6400. Currently the 6400 connects to DSL through an Ethernet card. The price of the DSL service keeps going up, and my city runs a free WiFi network just outs
-
ORA-12154 error connecting CR 2008 to Oracle XE on Windows 7
I have Crystal 2008 SP3 running on Windows 7. I have Oracle Database Express Edition installed and running. Using the DirectData CR Oracle ODBC Driver 5.1 I test connect fine to Oracle but when I try to use Database Expert to connect to my Oracle dat