cancel
Showing results for 
Search instead for 
Did you mean: 

Trouble Sending IDOCs to a NON-SAP system using TCP/IP RFC

former_member181962
Active Contributor
0 Kudos

Hi Experts,

   We are trying to configure PI to be able to send IDOCs to a non-SAP system using IDOC receiver adapter.

I have followed this blog.  However I am facing difficulty in getting this working.

As of now, I get the following error. I have searched through the forum, but was not able to get a definitive answer.

Error: Transaction IDX1: Port XXXX, client , RFC destination contain errors.

Best Regards,

Ravikanth Talagana

Accepted Solutions (0)

Answers (4)

Answers (4)

venkatasasidhargupta_gada
Active Participant
0 Kudos

Hi Ravi

Recently we have implemented this scenario. You can go through my blog for configuration details.

http://scn.sap.com/community/pi-and-soa-middleware/blog/2013/12/23/connecting-with-non-sap-system-us...

Thanks

Sasidhar Gupta

juliocesar_leyva
Explorer
0 Kudos

Hi Sasidhar,

Could you please post the correct blog url? Because it doesn't work.

And two questions:

1.- The RFC Destination must to be "pointed" to PI server or to non-sap system?

2.- We are already implementing this scenario with PI 7.11 SP09 and we have the same error "RFC destination is incorrect". We follow the Deepak blog steps. Is it necessary to "copy" the IDoc metadata to my Logical System port?

Update:  The scenario is:

         

           SAP IDoc--> PI ---> non-SAP IDoc

Any suggestion will be appreciated!

Regards!

venkatasasidhargupta_gada
Active Participant
0 Kudos

Hi Julio

I need to help.sap references in my blog hence that was not visible now. For your scenario, I'll suggest you to split into two parts.

1. SAP IDoc --> PI (this is general setup, no change here)

2. PI --> non-SAP IDoc (follow below steps)

a. Hope you've already defined business service/business system for non-SAP system. In the context menu of business service, check for adapter specific parameters and enter unique Logical system name. You don't need to define this anywhere in the system but need to make sure that this is unique. Also, this should appear in IDoc control record <RCVPRN> field.

b. While configuring the receiver IDoc adapter for non-SAP system, give the RFC destination created for non-SAP system. You can create a dummy port and assign dummy RFC destination in it. Copy the metadata from port defined for SAP system to port defined for non-SAP system.

Regards

Sasidhar Gupta

juliocesar_leyva
Explorer
0 Kudos

Hi Sasidhar,

Thanks for your promptly reply and recommendations.

We perform as you suggest in part A and B steps. Now we are facing a security problem with the program ID registration not detected by PI gateway.

Error:

RFC_ERROR_COMMUNICATION: Connect from SAP gateway to RFC server failed Connect program not registered

(Note: we already have a TCP/IP RFC Dest configured and my external program does registered correctly)

We review some sap notes (like 1408081) that describe the sec_info and reg_info files configuration for program enablement and the content is this:

sec_info:

P TP=* USER=* USER-HOST=local HOST=local                                                                      

P TP=* USER=* USER-HOST=internal HOST=internal                                                                

P TP=* USER=* USER-HOST=(IP's from system) HOST=IP's from system)

P TP=* USER=* USER-HOST=local HOST=local                                                                      

P TP=* USER=* USER-HOST=internal HOST=internal                                                                

and reg_info:

P TP=* HOST= List of IPs CANCEL=List of Ip's  ACCESS= List of IPs

P TP=* HOST=internal CANCEL=internal ACCESS=internal

P TP=EXT_IDOC_A8070_SERVER HOST=myLocalIP CANCEL=myLocalIP ACCESS=*                                                                          |

So do you know something about this error and how to solve it?

Regards!

venkatasasidhargupta_gada
Active Participant
0 Kudos

Hi Julia

Sorry... I am not good in this. Probably you can check with Basis/Network teams.

Thanks

Sasidhar Gupta

juliocesar_leyva
Explorer
0 Kudos

Hi Sasidhar,

Thanks for your comments.

Actually we solve this problem, we reconfigure the security profiles in those 2 files and now the Program ID registration is working fine. One important thing is that we need to register the Program ID CREATED BY THE ADAPTER at runtime in SMGW and recheck the uniqueness of the program id name in gateway runtime.

When we make those changes, everything works fine and my JCo server is registered good.

BUT, (again in troubles!), now the program receive the PI IDoc and fails in IDoc metadata validation throwing the "IDOC_ERROR_METADATA_UNAVAILABLE" exception.

We perform the IDoc import into PI (ECC port) and copy into my non-sap port successfully and the connection user have all the authorizations profiles for IDoc processing, etc.

When I do the trace activation in my JCO Doc server, I see that DOCTYPE_READ_COMPLETE function is executing internally on PI system and the IDoc metadata is not founded.

We perform the function execution manually on the PI ABAP system and the same result, the function module throws the "OBJECT_UNKNOW" exception.

Trying to figurate what's going on here, I see that IDOCTYPE_READ_COMPLETE function search formal IDoc definitions on ABAP stack of my PI service, and not those metadata imported with IDX2.

So, finally... did you know how to override this behavior in my JCo server or point to the IDoc receiver adapter to validate this metadata with imported ones (IDX2)?

I hope I was clear with my explanation, and hope you can help me to solve this issue.

Regards!

UPDATE:

We found a workaround and applies as follow:
(Works on the same way with RFC Adapter as a receiver)

All configurations are fine but is it needed to CREATE formally the IDoc structure (WE30, WE31) in the ABAP stack of PI system.

We are searching the right alternative to solve this, because in a orthodox point on view, this is not correct. The XI system is only a integrator and not a business level provider.

So, can anyone share your experience on this.?

Regards again!

venkatasasidhargupta_gada
Active Participant
0 Kudos

Hi Julio

Is the message successful in PI Monitor? Have you put structure in target application also? You can copy the structure hash file from WE60(ECC).

Thanks

Sasidhar Gupta

juliocesar_leyva
Explorer
0 Kudos

Hi Sasidhar,

In my PI monitor, the message has sent successfully, the java idoc server receives the document  but can't download it because JCo is searching the metadata using the RFC Destination pointed to XI system where those definitions doesn't exists (my IDocs are custom objects, they aren't definitions of standard documents), PI creates an acknowledge system describing a problem in my JCo server (metadata not available).

I was looking for some JCO API blog or note that helps me on the way to "import" programmatically the iDoc structure into my java server application (instead of the workaround) and how to indicate the program to avoid look metadata into XI and using the local one, but I haven't found any thing that helps on this till now.

Thanks again for your recommendations

Regards!

former_member440061
Participant
0 Kudos

Hello Ravi,

We faced a similar issue fews days back. The problem was the port maintained at SAP end for connecting to PI system. The name for port should be in accordance with that of the system it is trying to connect. refer to the logical system name for PI system in your case. Also check the same for RFC destination name.

Former Member
0 Kudos

Any update to this? I'm now configuring an IDOC to a non-sap system as well and I'm getting the same error.

Thank you.

ambrish_mishra
Active Contributor
0 Kudos

Have you missed this step:

Create the Port in PI in the transaction IDX1. The port name should be same as Logical system name of the business system defined in SLD (i.e. LS_LIMS).  See troubleshooting section for the reason for having.  We will use this Port name in the SNDPOR control record field of IDOC.

Ambrish

former_member181962
Active Contributor
0 Kudos

Hi Ambrish,

     I have created the port name with the same name as the logical system in SLD.

However, I have one doubt. While creating a port in IDX1, it asks for a client number.

I know client number makes sense for a SAP system. But for non-SAP, what should we fill?

In the blog, he did not mention why he has used 400.

I presume its a random 3 digit number.

Best regards,

Ravikanth Talagana

ambrish_mishra
Active Contributor
0 Kudos

Hi,

In that case, you should check the RFC destination in SM59.

Validate the step:

Create a TCP/IP connection (MYDEST) of type T in transaction SM59 in the PI system. The program ID should be register on SAP PI system. Take help of your basis team to register the program ID on PI server..

Ambrish

former_member181962
Active Contributor
0 Kudos

HI Ambrish,

   I have done that already. The RFC connection test is a success.

Best Regards,

Ravikanth Talagana

Former Member
0 Kudos

Hello,

instead of creating port directly for the Non-SAP system. Please try the following:

Go to IDX2 in PI system. Select  the metadata of IDoc in sender ECC system port and copy it(press F7).

After this, the "Copy a Type" window appears, in the target port, just mention the name of the port you defined in the logical system in SLD for the Non-SAP system. This should create the port.

In the IDoc receiver adapter channel, mention "RFC destination" as TCP/IP destination and port as the "logical system in SLD (same name as in IDX2)".

Regards,

SM