cancel
Showing results for 
Search instead for 
Did you mean: 

Interface Determination Condition does not work

suwandi_cahyadi
Contributor
0 Kudos

Dear all,

I have one interface in which the Interface Determination I have 2 interface mappings just like the one showed in this link

http://help.sap.com/saphelp_erp2004/helpdata/en/b9/057375d1b3c24f89fccc76aa3f37cf/content.htm

In the payload I have a custom node from extended IDoc which look like this

<ZXXX>

     <FNAME>INT_DETERMINATION</FNAME>

     <FVAL>INT1</FVAL>

</ZXXX>

the custom field with the FNAME INT_DETERMINATION will determine which interface mapping will be generated. In case the value is INT1 interface 1 will be generated, in case the value is INT2 interface 2 will be generated.

So I put 2 conditions at the interface determination, which is quite like the following (for interface 1):

Left Operand                                        Operation               Right Operand              

/IDOCMSG/IDOC/ZXXX/FNAME               =                         INT_DETERMINATION               AND

/IDOCMSG/IDOC/ZXXX/FVAL                   =                        INT1

and the following (for interface 2):

Left Operand                                        Operation               Right Operand              

/IDOCMSG/IDOC/ZXXX/FNAME               =                         INT_DETERMINATION               AND

/IDOCMSG/IDOC/ZXXX/FVAL                   =                        INT2

The problem is that sometimes Interface 2 is created even though  the ZXXX/FVAL value is INT1

Is there anything wrong in the condition? is there any part that I should check?

Any advice will be appreciated

Thank you,

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello,

Try this:

/IDOCMSG/IDOC/ZXXX[FNAME = "INT_DETERMINATION" and FVAL="INT1"]    =  EX

/IDOCMSG/IDOC/ZXXX[FNAME = "INT_DETERMINATION" and FVAL="INT2"]=  EX

Thanks

Amit Srivastava

suwandi_cahyadi
Contributor
0 Kudos

Hello,

Thank you Armit.

Now it works your XPath expression.

Just want to know what does EX means?

Thank you,

Suwandi C.

Muniyappan
Active Contributor
0 Kudos
Former Member
0 Kudos

Hello Suwandi,

Link has already been provided to you, but u can refer below link also which shows how to use EX operator

http://wiki.sdn.sap.com/wiki/display/XI/Xpath+Condition+in+Receiver+Determination

Thanks

Amit Srivastava

mayank_yadav
Explorer
0 Kudos

Hi ,

My scenario is having 2 different IDocs ,so its having 2 different Xpaths in interface detremination as  shown below.Two IDocs of different message types are being used with different Xpaths.

/IDOCMSG1/IDOC/ZXXX//YYY/Code = "INT_DETERMINATION1"    

/IDOCMSG2/IDOC/ZXXX/SSSS = "INT_DETERMINATION2"

But when my interface runs it should not call IDoc of MSG typ 1 when the MSG typ 2 condition fulfills.

Cant trace the reason behind this. Can  you help, urgently needed.

Thanks

Mayank Yadav

suwandi_cahyadi
Contributor
0 Kudos

Hi,

Could using an AND help?

For the condition of IDOC1 it could look something like this

/IDOCMSG1/IDOC/ZXXX//YYY/Code =                     "INT_DETERMINATION1"          AND

/IDOCMSG2/IDOC/ZXXX/SSSS        Not Equals   "INT_DETERMINATION2"

Thank you,

Suwandi C.

Answers (2)

Answers (2)

suwandi_cahyadi
Contributor
0 Kudos

Hi,

Thanks all for the help.

Maybe a little OOT question,

Because the messages that do not met the condition at the interface determination will not be processed through the integration engine, and just in case the logic in the condition is still wrong. Is there any way to re-process the messages that was blocked because of the condition?

because the message comes from the IDoc so I think it will not appear at the sender adapter engine monitoring.

Thank you,

Suwandi C.

Muniyappan
Active Contributor
0 Kudos

Hi,

Interface Determination will come after receiver determination. so if the condition is not met it will fail in integration engine. hence you can see that in sxmb_moni.

check this.

http://help.sap.com/saphelp_nw04/helpdata/en/6a/e6194119d8f323e10000000a155106/content.htm

coming to re processing if the condition is not met it will not be processed successfully. So ideally you can not make it success.

you are trying to put the condition to stop messages flow to receiver. now trying to reprocess the messages which have failed.

if you wan to store failed messages to one place you can create one more condition with interface. and send it to some file server.

Regards,

Muniyappan.

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

as far i can see the configuratino is rigth. are you sure the is no a parallel processing of the interface?

in case you only have two possibilities i recommend you to change the condition for Interface 2 and put

Left Operand                                        Operation                                        Right Operand             

/IDOCMSG/IDOC/ZXXX/FNAME               =                                                  INT_DETERMINATION               AND

/IDOCMSG/IDOC/ZXXX/FVAL                   NOT EQUALS                            INT1

try this out and letme know.-

suwandi_cahyadi
Contributor
0 Kudos

Hi Rodrigo,

I'm new to PI.

What do you mean by parallel processing of interface?

Actually for the interface I have 3 interface with 3 different condition. like INT1, INT2 and INT3.

What strange is that not all message for INT1 generates another message for INT2. But if I take the payload that generate the INT2 to the Test Configuration in ID, the Test Configuration also shows that INT2 is generated.

Is there any trace I can do at the Test Configuration or should I contact SAP for this?

Thank you,

Suwandi C.

former_member182004
Contributor
0 Kudos

Hi Swandi, do you have the "multiline" checked in the Interface Determination when you choose the condition?

Or the field that determines the mapping is just coming once?

Regards,

Juan.