cancel
Showing results for 
Search instead for 
Did you mean: 

Calling an RFC inside proxy

Former Member
0 Kudos

Hello,

I have a File-XI-R3 scenario. I am planning to use proxies. I have a custom function module (RFC) on the R3 side. Can I call it inside my proxy?

What is the advantage of proxy over just using the RFC itself directly?

I am looking at a best approach for my scenario. The interface is not synchronous. I can send back response any time.

Please suggest..

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Thilothama,

In this case I think your thought process is in the right direction. You can call the RFC from the PROXY.

The advantage that PROXY has that it by-passes the adapter engine and there by increasing the performance. I would suggest you go with the PROXY approach.

Regards,

Ravi

Note : Please mark the helpful answers, if they help.

Former Member
0 Kudos

Ravi,

Thanks for the information.

So in m scenario,

1. I create DT, MT for request and response of the File system (XML).

2. Create Asynchronous message interfaces for request and response separately.

3. Create proxies for this in R3 and get values from request and call my RFC and get the response backfrom RFC.

4. Call the response proxy from within the above req proxy.

In configuration, File adapter for request and XI adapter for R3 side and File adapter again for response.

Am I missing something here??

moorthy
Active Contributor
0 Kudos

Hi ,

Are u planning to do two interfaces here ? Then it will be without BPM

If you are doing Sync and then you need to have BPM right ?

Just go thru following link-

/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit

Regards,

Moorthy

udo_martens
Active Contributor
0 Kudos

Hi Thilothama,

unfortunately it is not so easy

To clear that up: Asynchronous messages have no respose. If you want to have a response, your interface to R/3 must be synchronous.

Now you want to send from file adapter. This is always asynchronous...

A thinkable scenario would be:

1. File->BPM (asynchr)

2. BPM->R/3 proxy (synchr)

3. proxy->RFC (synchr)

4. BPM->File (asynchr)

For that you would need:

1. asynchr outbound interface (1 data, 1 mess type)

asynchr abstr interface (same types)

file adapter

2. sychr abstr interface (2 data, 2 mess types)

synchr inbound interface (same types)

XI adapter

3. inbound proxy and RFC

4. asynchr abstr interface (1 data, 1 mess type)

asynchr inbound interface (same types)

XI adapter

And of course some mappings, SLD entries, receiver determinations and so on...

Regards,

Udo

Former Member
0 Kudos

Its a single scenario and not synchronous. In R3, I am updating a custom table - I have a custom RFC to do so.

I get XML file, read the contents and update R3. For each row update, I return the corresponding message in Bapi return. The volume of data is not very large. once in a week, I might get data in it.

For this - Why Should I need BPM??? If I use Proxies as I said, 2 proxies - one for outbound and one for inbound....inside the outbound proxy I call RFC and assign the response proxy values....

Or If due to less volume I go with RFC and no proxies, how do I make this scenario asynchronous? write a wrapper?? and then pass to file???

Please suggest some ideas...

Message was edited by: Thilothama v

Former Member
0 Kudos

Thilothama,

I think there is some confusion in your statements. On one one side you are saying that its a asynchrnous interface and the other side you are saying you need to send back the response. And more over, your source system is a File system, where are you sending the response to.

In the PROXY, you call the RFC, which might give you back some data, but you don't have to necessarily do something with that data, right?

Even if you are calling the RFC directly, it becomes a synchronous interfaces, only if you configure your message interface as a SYNCH one.

Regards,

Ravi

udo_martens
Active Contributor
0 Kudos

Hi Thilothamma,

i would like to point out following relations:

Asynchron messages are going from a sender to a receiver, no response.

Synchron messages contain a request AND a response.

Because of file adapter you start with a asynchronous message. Because of BAPI return you need a response. Both is not possible without BPM or other complex scenario.

Your proxy is inbound proxy. You cant code in a outbound proxy, you can only call it. This inbound proxy has fields for input (request) and output (response).

As you dont expect problems with adapter performance, you can resign using proxies and call the RFC directly via RFC adapter. That solution would have less performance and is not as save as the proxy solution.

Regards,

Udo

Former Member
0 Kudos

Hi Thilothama,

As I understand your scenario, you are picking a file and sending the data to be updated in the R/3 custom Table.

There are two ways u can do this

1. FileXIRFC

2. FileXIProxy.

IF you want to go the proxy way, you can just write the code of RFC into the proxy itelf rather then calling the RFC in the Proxy.

Hope this helps

Regards

Vijaya

Former Member
0 Kudos

I think there is a confusion in sync and asyn here. Asyn scenario can also have a response. Sync and Asyn doesnt depend on whether there is a response or not but it depends on how immediate you send that response...

If you send the response immediately to the sender and he is awaiting ur response - its syc and

if u dont need to send resp immediately but u can send response later at any time - that means sender is not awaiting ur response - its async....

so in my case, its async and I can send response whenever the process is done..

The source is a file - I get xml file and once I update the custom table in r3, I send back the list of updates which I did in xml format.

Please Let me know if I am wrong somewhere....

Thank you

Thilothama

moorthy
Active Contributor
0 Kudos

Hi Thilothama,

You are right about the Sync/Async concepts. If you want to do both in the one single Interface , then you need to use BPM. Then it will be exactly of type Sync. But you can make use of wait step etx to make it delay..

I have already given you the link how it wokrs etc.

Then otherway is developing two interfaces, without BPM.

Then it will be file to Proxy and then Proxy to File.

Regards,

Moorthy

Former Member
0 Kudos

Thilothama, in asynchronous scenarios , there can be NO response, you can get an application/transport ACK back.

Sync is a blocking call , so there is someone waiting for your response, In case of Async , even if there is a response(!!), no one is waiting for it and so cannot be configured i beleive.

>> The source is a file - I get xml file and once I update the custom table in r3, I send back the list of updates which I did in xml format

What you intend to do with the response , if you intend to write to a file, then you can configure a ccBPM Async-Sync bridge mechanism and you should be done, either it be RFC or a proxy approach.

I think Udo is right here and has given a step by step approach for you.

Regards

Saravana

Answers (0)