cancel
Showing results for 
Search instead for 
Did you mean: 

Number Limitation in XPath condition of Interface Determination

nabendu_sen
Active Contributor
0 Kudos
409

Hi Experts,

I have an existing interface with scenario:

Web Service (Sync) ->> PI ->> RFC 1 (Sync).

Now we have a requirement to call RFC 2 on the basis of <Company Code> (Receiver would be same for both the cases: SAP ECC) when Sender is the also the same Web Service.

Now we have introduced the XPath condition (Company Code == 111) in the Interface Determination and we are successfully able to separate these two RFC flow Mappings for the same Receiver on the basis of  <Company Code>. Now they are asking the same for 170 different company codes.


We are not sure if we maintain 170 Codes as Routing Rule in Interface Determination, whether it could create performance issue.

Note: We want to avoid BPM in this case

Important Point: We are using single Receiver but want to call different Mappings at Runtime.

Please suggest.

Regards,

Nabendu.

View Entire Topic
markangelo_dihiansan
Active Contributor
0 Kudos

Hi Nabendu,

I can only think of one thing, instead of using 170 routing rules, why not just join the xpaths using EX

e.g /Root[companyCode='1111' or companyCode='1122'] EX for interface 1

and /Root[companyCode='2222' or companyCode='2211'] EX for interface 2

that way you only have two conditions.

Regards,

Mark

nabendu_sen
Active Contributor
0 Kudos

Hi Mark,

Thanks for the reply. But I don't see XPath Expression parameter anymore. We are in PI 7.1 EHP 1 SPS 11. Is it obsolete or is there any other way around?

Do I need to insert separately all 170 Company Codes like below? But I can see "EX" operator is still available in the condition editor.

Regards,

Nabendu.

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Nabendu,

It is still around and it is EX. The conditions are inputted in the editor and should look like this:

You just need to update or append the codes into the condition.

Regards,

Mark

nabendu_sen
Active Contributor
0 Kudos

Hi Mark,

I am able to solve this requirement without using ccBPM and making any condition entry at Interface Determination.

I have used two concepts:

1. Used Extended Receiver Determination for Synchronous Interfaces

2. Populating Context Object at Mapping Level (So I am using as Flag, either 1 (RFC1) or 0 (RFC2))

Now, I have maintained 170 different Company Codes in FixValue table within the mapping.

Regards,

Nabendu.

Former Member
0 Kudos

Hi Nabendu,

Exceptional thread, i haven't read these blogs that you've pointed out. I didn't know the possibility of using Sync interfaces in the enhanced receiver determination and neither how to do a dynamic condition for the interface determination, excellent Praveen Gujjeti blog.

Regards and thanks for sharing your final solution.