cancel
Showing results for 
Search instead for 
Did you mean: 

Call RFC dynamically

Former Member
0 Kudos

Hi,

I require calling 2 different RFC in the same receiver dynamically based on one of the content in my Message. How can I do this.

Basically, assume i have a message with Create='Y', need to call a one RFC and if Create='N', need to call another RFC.

This is just an example not the actual scenario.

Regards

Unni

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

require calling 2 different RFC in the same receiver dynamically based on one of the content in my Message

You can achieve this using conditional interface determination. No need to go for BPM or conditional receiver determination.

Create 2 different interface mappings with 2 different RFCs and put a condition in conditional interface detrmination to determine your interface .

Former Member
0 Kudos

Thanks for all those answers.

The condition editor gives me flexibility to control based on the outbound message only. Since this value is a derived one out of another value, I am not able to get this value? Can I modify the outbound message within the java mapping? That will help me, but is that allowed, how can I do this (Since InputStream is a read) .

Regards

Unni

Former Member
0 Kudos

The condition editor gives me flexibility to control based on the outbound message only.

Yes...it is the functionality.You can decide the Inbound interface basing on the outbound message only.

Could u explain your problem clearly??

Former Member
0 Kudos

Hi,

The logic of determining the inbound calls are based on parsing of a String value.

Assume I have an element Action='XPCY', in which occurance of C decides to create and if was Action='XPUY', would U would need update it. So want to put value into anoter element within the outboud message (after parsing this field) using the java mapping.

The above is a sample and the actual string is an huge XML string that is within a clob field of oracle.

regards

Unni

Former Member
0 Kudos

I have an element Action='XPCY'

Action is a field in the source structure ?

Former Member
0 Kudos

Yes you are correct, but as i said in my message tht is a huge XML string at the field.

Former Member
0 Kudos

Then you can formulate your expression using conditional editor and substring function.

Take the substring from that message and check the condition.

Check this link to forumulate your expression using substring function.

/people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination

Get back to me if you still have any doubt

Former Member
0 Kudos

Hey,

we can have two solution for this.

Solution 1:

Use a BPM . in that use a switch case.

based on your condition provided in the switch case(for eg create=y or create=N) choose the interface mapping(using transformation step of BPM). two different RFC's will be having two different interface mappings.

Solution 2:

In your configuration you need to create two different services for the same R3. and have two diffent communication channels.

In your reciever determination give your condition(eg create = y or create=N). Give both the services in the service field.

Now give the interface mappings(different for the two RFCs) in the interface determination for each reciever.

I would suggest you to go with solution 1.

Reward points if helpful.

0 Kudos

Hi,

Check this blog http://www.saptechnical.com/Tutorials/XI/RecvDetermination/Enhancement.htm.

Reward points if found helpful.

Regards,

Ramya

former_member556603
Active Contributor
0 Kudos
Former Member
0 Kudos

Hi,

you can enter your conditions in the receiver determination (each condition will point to a different interface (RFC) of the same receiver):

http://help.sap.com/saphelp_nw04/helpdata/en/43/a513f2632c332ce10000000a11466f/frameset.htm

Regards

Patrick