Regarding: RFC Function Mod
Hi all,
Can any body Tell me whats the Difference between Synchroner RFC and Asynchroner
All i KNow is that
Synchroner RFC
CALL FUNCTION func DESTINATION dest
parameter_list.
Asynchroner RFC
2. CALL FUNCTION func STARTING NEW TASK task
[DESTINATION {dest|{IN GROUP {group|DEFAULT}}}]
parameter_list
[{PERFORMING subr}|{CALLING meth} ON END OF TASK].
Can any body Please explain ...
Thanks
Srinivas
hi,
A remote function call (RFC) is the call of a function module that runs in a different system to the calling program. Although it is also possible to call a function module in the same system as an RFC, normally RFCs are used when the caller and the called function module run in the same system.
In the SAP system, these functions are provided by the RFC interface system. The RFC interface system enables function calls between two SAP systems, or between an SAP system and an external system.
The RFC- interface system is made up of the following interfaces:
Calling interface for ABAP programs
Each ABAP program can call a remote function module using the command CALL FUNCTION...DESTINATION. The parameter DESTINATION informs the SAP system that the called function module runs in a different system to the calling system. RFC communication with the remote system takes place as a part of the CALL FUNCTION command.
RFC function modules in an SAP system must be proper function modules and must be registered in the SAP system as remote.
If the calling program and the called program are both ABAP programs, the RFC interface provides both communication partners. The calling program can be any ABAP program, and the called program must be a function module that is registered as remote.
For more detailed information on calling function modules that are registered as remote, see Calling RFC Function Modules in ABAP.
For more information on writing function modules that you want to call remotely, see Writing RFC Function Modules in ABAP.
Interfaces for calling non-ABAP programs
If either the calling program or the called partner is not an SAP program, this program must be programmed in such a way that it can play the role of the other partner in RFC communication.
To support you when implementing RFC partner programs in non-SAP systems, read: Components of the SAP Communication Technology
RFC-supported and GUI-supported interfaces can be used by external programs to call function modules in SAP systems, and execute them in these systems. Likewise, ABAP programs can also use these interfaces to use functions supplied by external programs.
These are the types of RFC :
Asynchronous RFC (aRFC)
Synchronous RFC (sRFC)
Transactional RFC (tRFC)
Queued RFC (qRFC)
Parallel RFC (pRFC)
RFC:
Remote Function Call (RFC) is the standard SAP interface for communication between SAP systems. The RFC calls a function to be executed in a remote system.
Asynchronous RFC :
This is used when you need to increase the performance of ABAP program by having system call more than one function module in parallel than forcing the program to wait for results .
Synchronous RFC:
The first version of RFC is synchronous RFC (sRFC). This type of RFC executes the function call based on synchronous communication, which means that the systems involved must both be available at the time the call is made.
Transactional RFC:
If an error occurs during a synchronous remote function call, the system cannot tell at what point the error occurred (most crucially, whether the function module was actually processed in R/3 before the operation failed). Restarting a failed call is therefore a dangerous thing to do, since you risk duplicating a completed function call.
To alleviate this problem, you can use transactional RFC, which guarantees that each function call you issue will only be executed once, even if you submit it repeatedly to the R/3 System. The system implements this safeguard by assigning a unique transaction ID (TID) to each transaction that you submit. When you attempt to process the transaction, the system checks whether that TID has already been processed. If it has, the transaction is ignored.
Queued RFC:
When you use transactional RFC, you cannot guarantee the order in which the function calls will be processed in the system (it is quite possible that one call might overtake another). For cases where you need to specify a particular processing order, you can use queued RFC, which is an extension of transactional RFC. In qRFC, you place each function call in a logical queue. A function call cannot be executed until all of its predecessors in the queue have been processed. Queued RFC calls are processed asynchronously.
For More Info,
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f078394a-4469-2910-c4bf-853c75674694
Similar Messages
-
How to debug a RFC function mod in background?
Hi all,
I am uploading a file thru a portal application & the output will go to a mail box. Everything happens in background.
First the portal application will call a XI devlopment & then the data processed will call a RFC fun mod and the output is going to a mailbox.
In the function modules, I am getting the errors. Since it is a protal application & it runs in backgrnd, I am unable debug the fun modules. I tried both external break point & internal breakpoints. But I am unable to debug the program.
can anyone help me how to keep external breakpoints & debug it in background?
Thanks,
Vijay.HI ,
you can do Debugging , what you need to do is need not use the login as Public . there will be another group server .
i am sure you are using PUBLIC in this only the front end will work means only inside the sap objects will be stopped . for Portal other thigs you need to take other gropu server .
Your Basis Knows it well ....
Normally , in SAP You will have PUBLIC ,SPACE, MESSAGE ,dialog servers.
Take the last one which will have all facilities ,so that it will stop in the break Points which you kept.
it means the Dialog proces will take care of the screens and also takes Break Point and stops it in sap .
Reward points if it is usefull....
Girish -
Hi ,
Our requirement is like this , we have to send the material long text from r/3 to srm system
for this we have developed a rfc function module with srm system as destination .But when we are using this in the program while rfc funtion module is invoked that time it is going to srm system and asking for credentials. how can i supress this .
Thanks in advance.Hello;
In your RFC destination, you can use a default user.
If you want to use the current user, go check
<a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm">http://help.sap.com/saphelp_nw2004s/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm</a>
It explains how to setup up trusted/trusting system and the use of SSO.
Regards -
Regarding RFC Function module in Multimapping
Hi All
I am trying to use RFC function module in Multimapping at target side.I want to call RFC Function based on some condition, if condition fails i dont want to call the Function Module. So i need to change the occurance of target RFC Message to 0...1 When
i try to change occurance in messages tab, it is displaying message that RFC Function module not found. When i change
occurance to 1..1, then it is showing RFC structure in mapping properly. I am suspecting why it is behaving like this.
Can we use RFC Function Module in Multimapping??. Please share ur experience on this.
Thanks,
BaluHi,
Can any body cofirm how below sender message will behave in Interface Determination,
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_FILE1 xmlns:ns0="http://ctrlanddataconceptsinglereceiver">
<Structure>
<***>male</***>
<ID>12</ID>
<Desig>cons</Desig>
<Sal>1000</Sal>
</Structure>
<Structure>
<***>female</***>
<ID>12</ID>
<Desig>cons</Desig>
<Sal>1000</Sal>
</Structure>
</ns0:MT_FILE1>
In my interface determination, i will add 2 inbound interfaces and two mappings.
For first interface i will check condition like if Structure/***=male then it has to goto one receiver agreement
For second interface i will check condition like if Structure/***=female, then it has to goto another receiver agreement.
But in my sender payload *** is male and female also. Will it execute 2 receiver agreements???.
My openion is it will go through 2 interface mappings and it will execute 2 receiver agreements.
Thanks,
Balu. -
Regarding rfc functional module
hi,
can any one tell me how the rfc FM triggers and how it works?????how to test??
thanksHi
Refer to this link:
http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/mysap4/mysap4104.htm
Regards,
K.Tharani -
ABAP RFC Function to merger table data?
Hi All,
Has anybody tried to merger that from multiple table in 1 table using ABAP RFC function module.
I have to merger 3 table into 1 which I am not able to do using Combine or Union operater.
One solution suggested in the below thread by Marcel was to use ABAP RFC function mod..I dont know how to do that.
If anybody has tried please share.
Union operator between tables
Thanks,
Murtuza.Thank you for the reply,
I got the solution without ABAP code.
I created a structure of table (Key Figures) in Column of query designer and then use that structure in VC to output table.
There I had used formula for each KeyFigures using IF ...something like this:-
NVAL(IF(@Key_Figures=="Prior Sales",0,IF(@Key_Figures=="Price",NVAL(IF(#ID[ACA257]@Price_Impact_value>=0,#ID[ACA257]@Prior_Sales_Value,#ID[ACA257]@Prior_Sales_Value+#ID[ACA257]@Price_Impact_value)),IF(@Key_Figures=="FX",#ID[ACA257]@GAP_3,IF(@Key_Figures=="Volume",#ID[ACA257]@GAP_4,IF(@Key_Figures=="Lost Mix",#ID[ACA257]@GAP_5_6,IF(@Key_Figures=="Gain Mix",#ID[ACA257]@GAP_5_6,IF(@Key_Figures=="Current Sales",0,123))))))))
This way I got the output table as required.
Pls see this thread for the requirement.
link: Table with Formula Values as output table? -
RFC Function Module behaves differently in foreground and background
Hi,
I have RFC function module which works well when executed in debugg mode where as in normal mode it doesnt work as the time stamp is not changed and the record cannot be created with the same timestamp.
Can anybody suggest any solution on how to change the current timestamp when still in the same LUW.
Regards,
Roberts.Hi,
Use:
T1 = SY-UZEIT.
GET TIME.
T2 = SY-UZEIT.
T1 will be different from T2
Best regards,
Leandro Mengue -
Regarding RFC [ URGENT ]
Hello Experts
I am updating a table in SCM server with the data from R/3 tables. I am using RFC with destination.
I created an FM[RFC] in R/3
I created a program in SCM, in that i am calling that RFC.
I created a dummy RFC in SCM with the same paramters.
When i am executing the FM in R/3 i could able to fetch the data as output including some return value.
But when i am executing the program which is calling the RFC i am not getting the data.
But i am able to get the return value in R/3 FM[RFC]*
So i am sure that logical destination name is working
[ call 'FM' destination 'dest name' ].
My problem is i am not getting the data to the SCM server eventhogh i could able to get data in R/3 and I could able to connect to remote server.
*Guys Kindly let me know the solution for this it's a bit urgent
thanks in advance
PramodHi Pramod,
In the RFC function place the code as infinate loop. like
Data : x type c.
do.
if not x is initial.
exit.
endif.
enddo.
when you execute this the process will stop in this loop. Go to SM50 and select the process in debug mode. And in the debug mode you can change the value of x. then you can continue from that step in debug mode and you can trace.
Regards
Ganesh -
Hi Friends,
Is there any transaction to see all the RFC Function Modules.
How can we identify all the RFC Function Modules in SAP System.
Any Transaction / Report or any Customizing Path
Regards:
SridharhI,
You can get it from TFDIR table and specify mode as 'R'.
Regards,
Nagaraj -
Using RFC Function Module to send data to NON SAP Application
Hi friends,
Please guide me how can I send data from SAP -> Dotnet Applcation using Dotnet Connector through RFC function module from SAP side. In my scenerio, I Run Z transaction to executte RFC function module which create some data to pass to dotnet connector.
Regards,
Rajesh KumarHi,
You can make use of Dotnet connector to read the content of SAP RFC .. (eaiest of all)
The RFC can be executed using connector , and can read the data simultaneously.. u need to code in dotnet for this..
else create a webservice and read it from dot net ..
Regards
Renu Gusain
Edited by: Renu Gusain on Jan 25, 2010 12:55 PM -
How to debug a RFC function module remotely from another R/3 system?
Hi experts,
I have RFC function module in one R/3 system. I am calling this from another R/3 system that is cross apps (Xapps).
This function module is Synchronous.
Is it possible to debug this function module from cross apps?
Can somebody give me the steps?
Thanks & Regards
GopalHi Shree,
Can you explain it bit more?
Do I have to call the function module with "IN BACKGROUND TASK"?
Or is it that I have to just put external breakpoint in the function module?
Please help
Thanks
Gopa -
Is it possible to call custom designed RFC function module, apart from BAPI
Hi Friends,
1. Is it possible to call custom designed RFC function module, apart from BAPI.
2. Why we call it Adaptive RFC layer, Since every time the JCO layer updated with SAP, Why cant be dynamic.
Thanx for Ur time.
Cheers,
SamAlso check <a href="http://help.sap.com/saphelp_nw04/helpdata/en/41/38bc8f813719488ddc9d9b21251ec3/frameset.htm">here</a> for more information on aRFC. Here you can find why it is called adaptive.
Regards,
Christophe -
Problem while calling an RFC Function Module in Background
Hello,
I have created a RFC function module for reading data from an external DB system. The FM calls an external RFC program (coded in C++ using RFC SDK), which delivers the required data. This external program is maintainged as an TCP RFC Connection in SM59.
Further I have created a report, that calls the RFC function module to get the data from the external RFC programm.
My problem is, when I call the report in foreground, everything works OK, the RFC connection works and data can be read from the external program.
However, when I schedule the report to run in background as a job, the report is stating in the protocoll that there was a problem calling the defined RFC connection (although the connection is working properly at that time).
More funny is, this particular problem with running in background occurs only in the productive system, in test and development system the report works correctly also while running as a job in background.
Can you suggest the solution to this problem? Could it be something with authorisations or server settings?
I will be on holiday for the next 6 weeks, so take your time to answer .
Regards,
Dusan.
Edited by: Julius Bussche on Jan 22, 2009 7:19 PM
Please read the forum rules about u r g e n t ...This is an external RFC server program, not a remote enabled ABAP RFC function module as the others seem to be assuming, right?
Is it possible that your DEV and QAS systems only have one application server, but the PROD has many and dedicated one(s) for processing low priority background jobs?
It might be that the target server of your TCP connection is not this BTC instance, and your RFC server is returning the data "locally" - so, into nirvana...
Just guessing, but might be worth checking.
Cheers,
Julius -
Calling Synchronous RFC Function Module in Background
Hi all,
Currently we are working on some requirement where in we have to retrieve data from one system(CRM) and update the same into another system(ECC). We have developed a RFC Function in CRM system and it is being called from ECC system as in synchronous mode via a batch program.
Now since all sychronous call to a RFC function will be dialog there is a constraint on the runtime which is being set by maximum run time for each dialog work process. So my question is there an option to call an RFC function synchronously in background (background task) so there is no runtime performance.
The standard TRFC, QRFC calls in background runs asynchronously and so I am trying to check with the SDN world as whether has anyone tried SRFC(Synchronous) call in background?
Thanks in advance,
JagathSo my question is there an option to call an RFC function synchronously in background (background task) so there is no runtime performance.
One solution would be to increase the value of the "time out" parameter defined the CRM system. This i feel is not a fool-proof solution as the run-times cannot be predicted. Check this thread: Re: RFC timeout profile parameter
For me a better solution would be to implement tRFC call instead of a synchronous call. Any reasons why you don't want to implement a tRFC ?
BR,
Suhas
Edited by: Suhas Saha on Jun 26, 2010 8:52 AM -
Problem with RFC function module from R/3 to CRM
Hi, i have a RFC function module created in R/3, this is the code:
function Z_CRM_PRODUCTO_INTERLOCUTOR.
""Interfase local
*" IMPORTING
*" VALUE(GV_VKORG) TYPE VKORG
*" VALUE(GV_VTWEG) TYPE VTWEG
*" VALUE(GV_MATNR) TYPE MATNR
*" VALUE(GV_KUNNR) TYPE KUNNR_V
*" EXPORTING
*" VALUE(GV_KDMAT) TYPE MATNR_KU
*" VALUE(GV_POSTX) TYPE KDPTX
*" EXCEPTIONS
*" NOT_FOUND
UNPACK GV_MATNR TO GV_MATNR.
UNPACK GV_KUNNR TO GV_KUNNR.
select single KDMAT POSTX
into (GV_KDMAT, GV_POSTX) from KNMT
where VKORG = GV_VKORG
and VTWEG = GV_VTWEG
and KUNNR = GV_KUNNR
and MATNR = GV_MATNR.
IF sy-subrc <> 0.
RAISE NOT_FOUND.
ENDIF.
endfunction.
When i call this function from CRM, i do it like this:
CALL FUNCTION 'Z_CRM_PRODUCTO_INTERLOCUTOR'
DESTINATION LV_RFCDEST
EXPORTING
GV_VKORG = lv_vkorg
GV_VTWEG = ORGMAN_H-DIS_CHANNEL
GV_MATNR = ORDERADM_I_WRK-ORDERED_PROD
GV_KUNNR = WA_DATOS_PER-N_PAGADOR
IMPORTING
GV_POSTX = IT_POS_LINE-DESCRIPCION
GV_KDMAT = IT_POS_LINE-material
EXCEPTIONS
not_found = 1.
where:
it_pos_line-descripcion type string
it_pos_line-material type string.
Well, my problem is that when debugging, in R/3 the 2 return values have the correct value, but when they are passed to CRM they have only one position.
As i've been told, it was working ok, but it's being wrong since we made a ¿conversion to unicode?. Maybe I should change the type of return ???
Thanks in advance !!!Hello Maria,
Make sure you define your parameters in CRM exactly the same way as in R3, do not use type string here.
So:
it_pos_line-descripcion type C char 40,
it_pos_line-material type C length 35.
Kind regards,
John.
Maybe you are looking for
-
Problem in drilling out to relational from OLAP worksheet
Hi, I am using level based hierarchy for my dimensions and trying drill out to relation worksheet from OLAP worksheet. The problem I am facing is that the way OLAP stores data is always sufixed with the "_LEVELNAME". Now when passing parameters from
-
How do I connect a 2nd router and 2nd airport extreme network?
I need a wps connection and my airport expreme does not have it. How do I connect a 2nd router with wps?
-
How to use quartz in web applications
Hi people, Can anyone please help me out how i can use quartz scheduler in web applications ? I want to utilize quartz to update databases periodically and automatically. Please help me its urgent ...:(
-
Inbound Queues getting stuck up in PI7.1 for Idoc scenario Mpackg. enabled
Hi Experts, We have an issue while processing Single Idocs in PI 7.1. we have extended MATMAS05 and we are processing these via PI to FTP folder. The inbound queues are frequently getting stuck.we will be sending atleast 1000 idocs every hour from R3
-
Lost Phone and how to suspend PIN
My friend just lost her phone and her Service provider said they can't do anything to help. Aren't they supposed to be able to Disable/Suspend the PIN of the lost device so that the "new owner" can't even log onto BB network? Now I am actually receiv