Execute HCI DS Task through Web Service
SAP HANA Cloud Integration
SAP HANA Cloud Integration facilitates the integration of business processes and data across on-premise and cloud applications (cloud to cloud and cloud to on-premise integration).
SAP HANA Cloud Integration for process integration allows you to integrate business processes spanning different companies, organizations, or departments within an organization. SAP HANA Cloud Integration for data services allows you to efficiently and securely use ETL (extract, transform, and load) tasks to move data between on-premise systems and the cloud.
HANA Cloud Integration for Data Service Web Service Support
When an external application calls into SAP HANA Cloud Integration through web services, the application acts as a web service client accessing a web services server. Web service clients call the published web services, pass in the appropriate parameters, and receive the results. SAP HANA Cloud Integration web services are compliant with JAX-WS and Web Services Interoperability (WS-I)
SOAP UI Tool Download and Install
Download and Install SOAP UI from below URL
https://www.soapui.org/downloads/latest-release.html
How to access HCI-DS Webservice WSDL Definition
Access the WSDL file by making web service client call to it using your HCI URL.
Logon to Hana Cloud Integration Data Service with provided user credeintials
URL: https:///DSoD/session/logon
E.x.: URL: https://integration.ondemand.com/DSoD/session/logo
Once you sucecssfully logon to HCI Web UI, modify URL in the browser as below to view WSDL file which need to be shared with Webservice Application.
WSDL URL: https:///DSoD/webservices?wsdl (The Same URL can be consumed by Webservice Application to load WSDL)
e.x.: URL: https://integration.ondemand.com/DSoD/webservices?wsdl
Use the information in the WSDL file provided by SAP HANA Cloud Integration to create an application that can access tasks.
Webservice Operation avaliable to access HANA Cloud Integration
There are seven operation are available to access HCI Data Service, each operation calls between HCI Data Service are secured with Session ID
- Logon – Establish connection to HCI with web service session and returns Session ID for further operations
- Ping– Verifies the connection to HCI, This Operation requires Session ID for connection verification
- RunTask– The Operation calls and executes specified Task and Returns RunID which can be used to fetch status of the task
- GetTaskStatusByRunID – This Operation returns status of the task execution with the specified RunID
- GetTaskLogs – The Operation retrieves Trace, Monitor and Error Logs for the task execution with the specified RunID
- GetAllExecuted– The Operation retrieves list of task which are currently running or executed
- Logout– This operation kills the session established with Session ID
Execution: Call HCI DS from SOAP based application
Create a SOAP Project in SOAP UI
Follow Below Steps to create SOAP Project
Open SOAP UI tool->File->New SOAP Project
Enter Project Name and Initial WSDL (URL)
Project Name: Run_HCI_Task
Initial WSDL: https://Integation.ondemand.com/DSoD/webservices?wsdl
You can find list of 7 HCI Web Service Operation on WSDL below
Logon Operation Execution
A Request message will pop up with required SOAP format
Enter required details orgName, username password and isProduction elements and hit Submit Request button
Response Message:
It will return response message with a Unique Session ID
HTTP Basic Authentication parameter through HTTP Header:
Maintain HTTP Header as mentioned in the screenshot
The Authorization header is constructed as follows:
- Username and password are combined into a string “username:password”.
- The resulting string literal is then encoded using Base64.
- The authorization method and a space, i.e. “Basic ” is then put before the encoded string.
For example, if the user agent uses “sap” as the username and “abacdefg” as the password then the header is formed as follows:
Authorization: Basic bWW06YWJjZGVmZw==
Request Message:
Note: Add header value for Basic Authentication and do not delete elements on SOAP Body
Response Message:
HCI Returns Session ID successfully
Ping Operation Execution
Navigate ping Operation and double click on Request1
A Request message will pop up with required SOAP format
Enter SessionID received on logon Operation and hit Submit Request button which is green play button
Request Message:
Screenshot: Project Navigation(at left), Request message(at right)
Response Message:
HCI will authenticate the validity of session forwarded and returns welcome response message once the session is valid
HCI will return fault message, if session is not valid or expired
runTask Operation Execution
Navigate runTask Operation and double click on Request1
A Request message will pop up with required SOAP format
Maintain SessionID on HTTP Header which is received on logon Operation, Provide Task name to be called along with HCI Agent name and Optionally Description and then click Submit Request button which is green play button to perform web service operation
Request Message:
Screenshot: Project Navigation(at left), Request message(at right)
Note: Remove Variable element on global Variables node as if you already maintain global variable on Execution Properties (on HCI task). This variable can be used to set Global Variables dynamically
- e.x. INSERT_UPDATE or DELETE operation, can be set dynamically while calling HCI task through SOAP Application to insert/update or delete records on Target System table. Delete Command will not flush target table but delete records based on key field data fetches from source
Response Message:
Once HCI receives Wbeservice call for Task execution, It will execute the task and return RunId back as response for further operation to check status
getTaskStatusByRunID Operation Execution
Navigate runTask Operation and double click on Request1
A Request message will pop up with required SOAP format
Maintain SessionID on HTTP, and RunID of task got from runTask Operation on SOAP body to fetch present status of task execution from HCI.
Request Message:
Screenshot: Project Navigation(at left), Request message(at right)
Response Message:
HCI Returns Run ID, Status code along with task execution, start and end time
getTaskLogs Operation Execution
Navigate runTask Operation and double click on Request1
A Request message will pop up with required SOAP format
Maintain SessionID on HTTP Header, and RunID on body.
To get status logs in base64encode format, maintain value “true” for element base64Encode otherwise false to get normal text
- i.e. true
Or
false
Maintain value true for element getLog on traceLog, monitorLog and errorLog node to fetch corresponding logs and false to Ignore logs. Additionally maintain log page number (pageNum) to fetch logs from particular page
Request Message: (base64Encode=true)
Screenshot: Project Navigation(at left), Request message(at right)
Response Message: (base64Encode=true)
You can find Trace, Error and Monitor logs are in encoded format on below screenshot
Response Message: (base64Encode=false)
getAllExecutedTasks Operation Execution
Navigate getAllExecutedTasks Operation and double click on Request1
A Request message will pop up with required SOAP format
Maintain SessionID on HTTP Header, and required element on body.
To get all executed task status, remove all optional fields on body as highlighted on below screenshot. This will return task name along with status.
Maintain status Code or start and end date or task name to restrict response information on particular period of time or task
Request Message:
Remove all optional fields to fetch all executed task
Response Message:
HCI returns executed task along with statuscode and runid
logout Operation Execution
Navigate getAllExecutedTasks Operation and double click on Request1
A Request message will pop up with required SOAP format
Specify SessionID on SOAP Body and give web service call to HCI to destroy the session
Request Message:
Response Message:
HCI returns Logout message successfully
New NetWeaver Information at SAP.com
Very Helpfull