cancel
Showing results for 
Search instead for 
Did you mean: 

Do we have to be Ariba network to send PurchaseOrder to vender using cXML file over PI

Former Member
0 Kudos

Hi Expert.

We are currently working on sending purchase order IDOC from ECC to third party vendor through PI. We have  PI 731 single stack.

The vender asked us to send cXML so we downloaded cXML schema and loaded XSD schema to PI. The vender only gave us a simple URL for end point. It is a ASPX .NET page but NOT webservice. I searched online and looks like we need to integrate this through Ariba network. But the vendor said this is not going through Ariba but a http connection. Does anyone know how I should proceed? Should we be part of Ariba network in order to integrate cXML? And if we are part of Ariba, dose that  mean the vendor should also register to Ariba? Is there other way to integrate cXML without registering Ariba? Thank you for any advice in advance!

Hailan

Accepted Solutions (1)

Accepted Solutions (1)

engswee
Active Contributor
0 Kudos

Hi Hailan

From the Wiki entry below, CXML is just a commerce XML protocol created by Ariba but is free to use by all. Therefore it's just a type of XML-based document standard.

cXML - Wikipedia, the free encyclopedia

If your vendor says it does not go through Ariba then I think you ought to try it out first. If it is just an HTTP end point, you can use an HTTP client to test it out. The one that I find really good is the Advanced REST extension on Google Chrome.

Advanced REST client - Chrome Web Store

Test out the end point - do a HTTP POST command with the CXML data in the request body and see if it works.

If it does, then you can use the HTTP_AAE adapter, or even better the REST adapter if you are on the latest 7.31 SP14.

Rgds

Eng Swee

Former Member
0 Kudos

Hi Eng Swee,

Thank you so much for your response. This is very helpful! I tried HTTP_AAE with POST for the end point and the PI monitor log is showing "SOAP: Call failed: java.io.IOException: No SOAP Envelope but 1 {}cXML; HTTP 200 OK". I don't quite understand. Is that meaning the end point is expecting soap package? And How should I pass pay load to them with HTTP_AAE? Does this has to be form parameter? What else should I ask the vendor to provide to us in order to establish the connection?This is my first time to do HTTP_AAE adapter, so any suggestion will be appreciated! Thank you!

Hailan

iaki_vila
Active Contributor
0 Kudos

Hi Hailan

According with this document http://exchange.ariba.com/servlet/JiveServlet/previewBody/1072-102-1-1058/NAUC09.Solution+Migration+...

Ariba integration with SAP ECC using SAP PI supports SOAP connectivity, could you ask your partner if they have a WSDL to do the connection? and to use the SOAP adapter instead of the HTTP_AAE adapter.

Regards.

Former Member
0 Kudos

Hi Inaki,

The vendor is not proving web service or WSDL.

I am still experiencing HTTP_AAE to see if  we can make connection.

Hailan

engswee
Active Contributor
0 Kudos

Hi Hailan

In your initial question, you mentioned that this was not a web service. But from the result of your testing, it looks like it is a SOAP web service.

It's weird that the error mentioned that SOAP call failed but the vendor does not provide a WSDL. Can you check with the vendor if they expect a SOAP envelope? For SOAP web services, it is a normal thing for provider to give a WSDL.


Can you also try testing via the Chrome extension and see what results it gives you - do a HTTP POST with the cXML payload in the request body.

Rgds

Eng Swee

engswee
Active Contributor
0 Kudos

Hi Hailan

Additionally, try to perform an HTTP POST request (either using SOAP UI or Chrome extension) which has a SOAP envelope as payload. Example below.

Rgds

Eng Swee

Answers (1)

Answers (1)

Former Member
0 Kudos

I have one question, if this integration not go through AribaNetwork. How PI transport CXML to the receiver? Because if you use SOAP or HTTP_AAE adapter the output of message should always in SOAP Format.

If go through AribaNetwork, PI have AribaNetwork Adapter which can convert source format into CXML and pass to AribaNetwork.

Former Member
0 Kudos

Leon,

That is also I am confusing about. If we pass cXMl payload to vendor through HTTP parameter, it will no be cXML format anymore for them. And in HTTP_AAE receiver adapter, it asked "Target Port" and the vendor told me they don't have it. I am able to test the end point of vendor by using Google Chrome Advanced Client if I post empty payload. But I am not able to reach the end point through PI HTTP_AAE adapter.

Hailan

engswee
Active Contributor
0 Kudos

Hailan

Can you please paste the screenshot of your request and response details when you post via Chrome REST client?

Rgds

Eng Swee

Former Member
0 Kudos

Sorry Eng Swee for the late response. Here is the result of Rest Client testing from google crome.

the status is "OK" but the response has error" XML parser error: root element is missing".

At this point, we are also contact vender to see if they can do AS2 connection.  Thank you for your help!

engswee
Active Contributor
0 Kudos

The request payload for the HTTP post is empty, that is why it's flagging the error.

Have you tried putting the CXML content in the request payload and execute the POST again?

Former Member
0 Kudos

Hi Eng Swee,

Let me take one step back. For HTTP_AAE adapter, it must have port number in the configuration but the vendor does not have it. and my HTTP_AAE communication channel has error for establishing connection without the port number. I am going to try SFTP and AS2 with them.

Thank you very much for your consistence and helping.

engswee
Active Contributor
0 Kudos

That's fine, it's perfectly alright to try other protocols. BTW, normally HTTP uses port 80 and HTTPS port 443 - although it is possible to deviate from this, but it's the most common default values.