cancel
Showing results for 
Search instead for 
Did you mean: 

PI 7.1 interface determination condition not working

former_member183906
Active Contributor
0 Kudos

hi,

i have put 2 conditions in interface determination.

(/Test/Extra/@name = HOST)

(/Test/Extra/@name = IP)

when both conditions are present in interface determination condition,message is failing.Error comes - Unable to find an inbound interface

If only one condition is there in interface determination message is success.

please provide solution for multiple condition in interface determination in PI 7.1

rgds

Accepted Solutions (1)

Accepted Solutions (1)

former_member183906
Active Contributor
0 Kudos

Hi,

I have 2 operation mapping.

1.(/Test/Extra/@name = HOST)

2. (/Test/Extra/@name = IP)

For condition 1 , a operation mapping is called.

For condition 2, different operation mapping need to be called.

and both kind of messages has to go to a single receiver.

when i am putting 2 conditions in receiver interfaces of Interface Determination,message is failing with error unable to find inbound interface,but when i am putting only 1 condition (any of these 2) message is successful.

The reply posts dint help yet.Please respond on it.

Former Member
0 Kudos

Hi,

Put  the conditions as below in Interface determination.

/p1:Test/Extra[(name = "HOST")] --> Rec_SI1

/p1:Test/Extra[(name = "IP")]  -->Rec_SI2

>>unable to find inbound interface

This occurs when neither of the above conditions were not met .Check the input data once.

Regards

Venkat

smavachee
Active Contributor
0 Kudos

Can you elaborate more on end to end scenario please ?

Seems that the payload is not satisfying the condition.

Regards,

Sunil

former_member183906
Active Contributor
0 Kudos

i am in PI 7.1.

when i am going to interface determination->receiver interfaces->condition, its asking to use context object or xpath. i am using xpath and selecting the node HOST

Its coming like

/Test/Extra/@name = HOST

I am not able to edit it.

former_member183906
Active Contributor
0 Kudos

scenario is HTTP request is coming where he name attribute (node) value is HOST.When it is true then relevant mapping to be called and sent to a receiver via HTTP again.

/Test/Extra/@name = HOST

when node/attribute value is other than HOST then different mapping to be called.

In the payload name attribute comes as HOST as shown below :

<Extrinsic name="USERNAME">HOST</Extrinsic>

please let me know how to put condition in interface determination PI 7.1 for it so that payload check is done properlty and corresponding mapping program is called.

Message was edited by: SAP PI

gagandeep_batra
Active Contributor
0 Kudos

Hi ,

please check following x-path that may help:

/Test/Extra/Extrinsic[@name = 'HOST']

for more information check below link:

http://www.w3schools.com/xpath/xpath_syntax.asp

Regards

Gagan

former_member183906
Active Contributor
0 Kudos

<cXML>

<Request>

<TEST>

  <Extra name="USER">HOST</Extra>

</TEST>

  </Request>

  </cXML>

This is the input payload.

I need to check if name USER attribute value is HOST or not in XPATH interface determination. please help in it

smavachee
Active Contributor
0 Kudos

>  Have a look into the SAP NOTE 787484. It may resolve this issue.

If you found that everything is fine then..

>  Cross check Parameter setting in CC

> Test the scenario from source to target, instead of RWB if you are testing.

>  Make sure that Cache is up to date.

Regards,

Sunil

Former Member
0 Kudos

Hi,

First try as below

Proceed as above don't edit .Put the respective conditions.Do one round of test to check whether it works not .

/Test/Extra/@name = HOST -->SI1

/Test/Extra/@name = IP  -->SI2.

If the above does not work then

open the editor -->select xapth-->you can white editor ,there copy paste the below cond.

/p1:Test/Extra[@name] click ok and give value = HOST outside .repeat the same for IP as well

Regards

Venkat

former_member183906
Active Contributor
0 Kudos

I tried for One only

/Test/Extra/@name = HOST , i gave this condition in XPATH and selected operation mapping,SI.The result is if name is any value message is successful.Its not checking the condition.

I tried 2nd option too

/p1:Test/Extra[@name] click ok and give value = HOST outside

for this also its sending message for any value of name field.

The input payload is

<cXML>

<Request>

<TEST>

  <Extra name="USER">HOST</Extra>

</TEST>

  </Request>

  </cXML>

Please advise on it

Answers (6)

Answers (6)

former_member183906
Active Contributor
0 Kudos

<cXML>

<Request>

<TEST>

  A

</TEST>

  </Request>

  </cXML>

I refined my input payload as above and putting condition as

/Request/Test=A

/p1:Request/Test=A

But still its getting error. what will be correct xpath condition for it. If TEST node is A then service interface to be called.

Former Member
0 Kudos

Hi,

As far as i know it is pretty straight forward ,you shouldn't face any issue.

In XPATH editor just select the field(TEST)  and put = A .

Just check the input payload that you are passing  is matching to your condition or not ?

Regards

Venkat

former_member183906
Active Contributor
0 Kudos

Input Payload is :

<cXML>

<Request>

<TEST>

  A

</TEST>

  </Request>

  </cXML>

I refined my input payload as above and putting condition as

/Request/Test=A

I tried this..But its not working.

If i am putting no condition same payload is successful. So i do not see issue with payload here. Why condition is not working..

former_member183906
Active Contributor
0 Kudos

I am getting strange issue.

When i am putting any condition in Interface determination ->receiver interfaces, its not getting saved.

I created new interface determination and found condition not getting saved.

I am on PI 7.1.

please help in it

Former Member
0 Kudos

Hi,

Do cache refresh once if you have access do so.Else check with BASIS folks for the same.

For complete cache refresh – http://<hostname>:<port>/CPACache/refresh?mode=full

For delta cache refresh – http://<hostname>:<port>/CPACache/refresh?mode=delta

Regards

Venkat

Former Member
0 Kudos

Hi ,

Go through the below link for cache problem resolution.

http://www.riyaz.net/sap/xipi-sap-xi-troubleshooting-guide/372/

Regards

Venkat

anand_shankar10
Active Participant
0 Kudos

Hi,

Go with the condition as mentioned by Nabendu. Use OR condition instead of adding multiple conditions. Just in case its not working.... delete the object and create afresh.

There are good blogs available and the one written by Shabarish is quiet elaborative.

Thanks

Anand

nabendu_sen
Active Contributor
0 Kudos

Try like below:

/p1:Test/Extra[(name = "HOST" or name = "IP")]

Check the below blog of Shabarish, it should resolve your issue. You can same type of XPath condition in Interface Determination.

http://scn.sap.com/community/pi-and-soa-middleware/blog/2006/06/07/customise-your-xpath-expressions-...

zameerf
Contributor
0 Kudos

Hi,

You have two operations/inbound service interfaces and the particular message is not satisfying the conditions for either of the inbound interfaces, hence you get unable to find an inbound interface.

You have to either add more conditions to make the same message go through any of the inbound interfaces or just create a dummy inbound interface/receiver business service and ignore the file.

Regards,

Zameer

Former Member
0 Kudos

Hi,

Below are the combinations you can put.

case1:

xpath condition b/w SI1 and SI2  (Example:cond1 (and/or....comparator operator) cond2 )

case2:

xpath condition b/w SI1 and SI2. 

xapth condition b/w SI1 and SI3.

xapth condition b/w SI1 and SI3.

Are you using either of the above cases?.

Regards

Venkat