cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple receiver ports to SAP for idoc processing

Former Member
0 Kudos

Hello Experts,

Is it possible to have more than one port in SAP , for XI to SAP idoc communication .

Say 2 idocs - idoc1 and idoc2 .

idoc1 has the receiver port in the control record set to A and idoc2 has the receiver port in control record set to B .

We are basically trying to dedicate one particular type idoc , its own receiver port in SAP , because it goes through a lot of validation after it getting posted in SAP . And anytime the idoc has large number of lineitems its seem to hang the port for other idoc communication .

We have created a new port and assigned it in the message mapping . And yes, we are setting the 'Apply Control Record from payload option '. I'm able to see the port getting set in the outbound idoc to the new value .

But apparently when the idoc reaches SAP it seems to switch it the port back to the original one .

I'm not sure if this is even possible . Please let me know if you guys have any insights .

Thanks ,

Rahul

Accepted Solutions (0)

Answers (2)

Answers (2)

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

>>>We are basically trying to dedicate one particular type idoc , its own receiver port in SAP , because it goes through a lot of validation after it getting posted in SAP .

if your IDOCs are going - SAP PI -> SAP ERP then there is no need to use multiple ports

just use two a different message variant or message function (two fieds in EDIDC40 segment) in PI to separate both of them

and you can easily have two different processing methods in ERP later on

Regards,

Michal Krawczyk

Former Member
0 Kudos

Michal ,

We are using different message functions  .

Let me give you more details .

When an invoice from one of our vendor  gets posted into SAP , SAP goes through a process of iterating through each lines in the invoice to get  more information from each of the POs listed in the invoice  . Some such invoices have like 900 lineitems which makes this process a bit time consuming . Meanwhile if any other idoc (say a ShipInfo idoc or something) gets posted into SAP it just waits until the  invoice processing is done .

So we are trying to have a dedicated port for the invoice idoc ( just for that particular vendor ) so that it doesn't affect the other idocs from getting posted .

P.S All this is under the assumption that using the same port is causing the wait .

former_member184681
Active Contributor
0 Kudos

Hi,

Since you are not using qRFC, I believe the only thing that limits the concurrent processing is the number of work processes defined in your system (at the Basis configuration level). You can verify that in transaction sm50 of your backend system - count the number of rows with Type = DIA and BGD.

If I am right, even adding additional port won't help you improve the performance, because still ECC will not be able to allocate a separate work process to process the IDoc. Still, I expect that the number of work processes should be higher in your production environment, than it is in development or testing one, so even if it is a bottleneck while testing, it shouldn't cause any problem later in prod.

Hope this helps,
Greg

Former Member
0 Kudos

i checked our SAP system and we have like 63 work processes . Most of them are on waiting . Figured they are busy processing their current jobs .

Going back to my previous question again .. is it possible to have multiple ports to the same SAP system (same client ) . Why do you think, even though i'm setting the receiver port under the idoc header to the new port value , when the idoc reaches SAP it flips it back to the older port .Sorry this has  being bugging me for a while

former_member184681
Active Contributor
0 Kudos

Hi Rahul,

>>> anytime the idoc has large number of lineitems its seem to hang the port

Are you using IDoc serialization or qRFC? Only then could this be a problem. If neither qRFC nor serialization is used, it might rather be a problem of too little work processes defined in your system, which is why further IDocs are being scheduled when one of them is being processed - simply because SAP has no possibility to process that many IDocs simultaneously, with so few work processes.

Hope this helps,

Greg

Former Member
0 Kudos

No we are not using qrfcs or serialization . Our SAP version is pretty old (4.6) . So i don't think its possible . But my question is - is it even possible to have two different ports on SAP R/3 under the same client pointing to XI .

We have created ta new transactional port under WE21 and also created a new  RFC destination and partner profile for the new port .

On the receiver port in the idoc control record we give the value of new port . On examining the payload of the output idoc in SXMB_MONI it is taking the value of the new port . But once it reaches SAP , when we check in we02 the port name changes back to the older port which is used in all other idoc communication.