Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
rasjoshi
Contributor
Hi SAPiens,

This technical document contains details on how to upload file from 3rd party application to Ariba Buying portal via SAP CI/CPI.

For this interface I have used import batch data task of Ariba system. Batch import feature is used in Ariba to download/upload files which is used by ITK mechanism - Ariba Integration Toolkit Guide.

Attached is list of supported file using import batch data task - Import Batch Data Supported Files

Requirement is to get the data from non-SAP application in zip format and then upload this file in the Ariba buying solution. In order to upload the file below payload format needs to be used.

In case of any error or failure message, exception sub process will trigger alert email to process owner.

Payload structure -

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<Header>
<Parameters>
<Parameter name="realm"><value>${property.realmID}</value></Parameter>
<Parameter name="sharedsecret"><value>${property.sharedsecretariba}</value></Parameter>
<Parameter name="operation"><value>{{operation}}</value></Parameter>
<Parameter name="event"><value>{{event}}</value></Parameter>
<Parameter name="clienttype"><value>SAP</value></Parameter>
<Parameter name="clientversion"><value>1.00</value></Parameter>
<Parameter name="clientinfo"><value>Data uploaded via SAP CPI</value></Parameter>
</Parameters>
<AttachmentFolder contentID="contentID" contentType="application/zip" fileName="GroupConsolidated.zip" contentLength="1"><Content>${in.body}</Content></AttachmentFolder>
</Header>
</soapenv:Body>
</soapenv:Envelope>


Parameters used in payload -
1.realmID - Ariba buying realm name
2.sharedsecretariba - Created secure parameter in CPI and using groovyscript I am reading this value
3.operation - Load
4.event - Import Batch Data
5.${in.body} - Base64 encoded zip file

 

Below is the CPI - IFlow Design


Below are the execution steps IFlow

  1. Content Modifier Get shared secret - Passing secure parameter name to property



2. Base64 Encoder - Encode incoming message into base64 encoding


3. Groovyscript Setting Post URL to set header element with Ariba HTTP Post URL


4. GroovyScript Setting shared secret to store Ariba shared secret password as property


5. Content Modifier Ariba Configuration to form payload structure


6. Content Modifier Removing shared secret Delete $name=sharedsecretariba



7. Receiver HTTP adapter to post data on Ariba buying portal for e.g. https://s1-integration.ariba.com/Buyer/fileupload?realm=aribaID



Note : To upload files on sourcing portal HTTP post URL syntax is https://{host}/Sourcing/fileupload?realm=aribaID


8. Content modifier Storing Ariba Response to capture success or error message from Ariba system with expression property aribaresponse = ${in.body}



Exception Sub process is used to generate alert email body with exception trace and payload and send email notification to process owners


Upon save and CPI, copy the HTTP endpoint URL. For testing purpose I have used postman tool to trigger the IFlow


SAP CPI - Message Monitoring


In Ariba Buying Portal, navigate to Data Import/Export section and search for tasks - Import Batch Data


Click on completed status to get details of the import transaction


Postman is updated with Ariba response payload -


Hence, we can use import batch data tasks to import files on Ariba provided we are using data elements from list of supported files via SAP Cloud Integration (CPI).

References links :-

https://help.sap.com/docs/buying-invoicing/administration-and-data-maintenance-fundamentals/default-...

https://help.sap.com/docs/cloud-integration/sap-cloud-integration/sap-cloud-integration

 

#HappyLearning

- Rashmi Joshi

 
3 Comments
Labels in this area