cancel
Showing results for 
Search instead for 
Did you mean: 

Regarding Conditional Interface Determination

madhusudana_reddy2
Contributor
0 Kudos

Hi All,

I need small confirmation on behavior of conditional interface determination,

My source message is like below

<?xml version="1.0" encoding="UTF-8"?>

<PROS_CustInfo><Structure>

<name>ABC</name>

<data>100</data>

</Structure>

<Structure>

<name>XYZ</name>

<data>101</data>

</Structure>

</PROS_CustInfo>

I am having 2 Receiver RFC messages for same receiver.

If name=ABC then i need to send this data(ABC, 100) to first RFC by using 1st mapping else

if name=XYZ then i need to send that data(XYZ,101) to second RFC by using 2nd mapping.

But in my message name contains ABC and XYZ also. Now how conditional interface determination bahaves. Will it execute 1st mapping or 2nd mapping or both.

If you find any related post please share.

Thanks,

Madhusudhan

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Madhu,

As praveen said correctly, you can segregate your messages using Multimapping.

You design your interface like:

1. Use multimapping (1..N)

2. You require one rcvr determination with enhanced config.

3. One Interface Determination dat uses d Multimapping

4. As your R3 system is one your RFC channel can work for all the RFCs, so no need of 4 Rcver Determination. You require only one Rcver Determination.

Hope this helps.

Regards

Rahul.

Answers (5)

Answers (5)

Former Member
0 Kudos

Hi Madhusudhana,

because of the problem, that only one condition can ever be true at runtime, you can avoid this by using count function. Because you can't build a Statement like count(xy) > 1 with ExpressionEditor of SAP PI, you have to use this expression with SAP PI:

/PROS_CustInfo[count(Structure[name='XYZ'])>=1]  EX

This condition works on whole document.

Regards,

Alex

Edited by: Alexander Kirsch on Feb 16, 2010 4:43 PM

Edited by: Alexander Kirsch on Feb 16, 2010 4:45 PM

prateek
Active Contributor
0 Kudos

First distinguish the messages with ABC and XYZ using enhance interface determination. Then you can use respective message with different mappings.

Regards,

Prateek

former_member181962
Active Contributor
0 Kudos

Hi,

Instead of conditional interface determination, you can probably try Enhanced Receiver Determination.

/people/venkataramanan.parameswaran/blog/2006/03/17/illustration-of-enhanced-receiver-determination--sp16

Regards,

Ravi Kanth Talagana

madhusudana_reddy2
Contributor
0 Kudos

Hi Ravi,

In this case i am having only single receiver, but multiple interfaces. I want to send data to multiple interfaces based on condition.

In my real time scenario, Single Outbound interface---> 4 RFC Functions at receiver side. So i need to develop

single receiver determination and 4 interface determinations and 4 receiver agreements.

Thanks,

Madhusudhan

former_member181985
Active Contributor
0 Kudos

MultiMapping concept works for your scneario. Segregate the messages accordingly using multimapping.

- praveen

Former Member
0 Kudos

Hi,

Please have a look at this..

http://help.sap.com/saphelp_nw04/helpdata/en/42/ea20e737f33ee9e10000000a1553f7/frameset.htm

Only one condition can ever be true at runtime.

former_member181962
Active Contributor
0 Kudos

Hi Madhusudhana,

You can use the index option in the XPATH condition (in square braces i think.)

Otherwise , it will take the first occurance into consideration and execute the first mapping.

Regards,

Ravi Kanth Talagana

madhusudana_reddy2
Contributor
0 Kudos

Hi Ravi,

In my source message Structure may repeate several times, so i can not use index.

Any ideas please.

Thanks,

Madhusudhan