SAP Build Process Automation – Consume ODATA APIs as Actions from S/4 HANA On-Prem via RAP BTP ABAP or BTP CAP
Hi SAP Experts,
There are multiple ways to consume actions not available in the store in the SAP Build Process Automation .
S/4 HANA On-Premise or ECC based Custom Odata services can be accessed by the below two ways with the Core Clean principle using the Side-by-Side Extension scenarios
I have explored the different possibilities to expose the S/4 HANA On-Premise Custom OData services to the SAP Build platform since there are challenges exposing the Odata directly from S/4 HANA On-Premise to SAP build
How to create actions on the SAP build ?
SAP BTP ABAP RAP ( RESTful ABAP Programming Model )using the side-by-side extension scenario :
- Create a Custom Entity and call either the backend RFC function modules or API classes from SAP S/4 HANA to perform the functionality
- Create the Service binding as shown below .
- Copy the URL and get the metadata for the same.
- Create a Odata Open API using the open source https://convert.odata-openapi.net/ by pasting the Metadata
- There are also other open API converters in github for the On-Premise system however they are more specific to the SICF nodes and does not work for the BTP ABAP based Odata services https://blogs.sap.com/2019/07/09/how-to-create-an-openapi-rest-service-from-an-odata-v4-rest-service-with-sap-netweaver-abap/
- Copy the same and save in a file with Extension .json
- Once you click on the create button the below screen appears to select the required actions :
How to Test the Actions :
- First Create a destination for the Odata service using the BTP Destinations and add the parameters as shown below
- sap.applicationdevelopment.actions.enabled : true
- sap.processautomation.enabled : true
- Add the destination in the BTP Build
- Now for the POST operation generate the CSRF token as shown below other wise you get an error
- Look for the response 201 as soon as it gets created .
- Release the action and publish it so that it can be used the build process automation .
- Now go to your process automation and this action can be used as a Action tasks for all the CRUD operations as shown below
- All the input Parameters and results will be automatically shown as seen below :
- Furthermore these can be mapped with the workflow context coming from the trigger either with the trigger form or the from API trigger
- After the execution of the SAP Process automation this is how the POST or GET call looks in the monitor applications
Using CAP (Cloud Application Programming Model) based Odata API using the side-by-side extension scenario
- For the CAP Node.js based applications expose the API service via destinations as shown below
- Add the destination in the build as shown below
- For the Open API conversion of the metadata here we can use the below command and it will create .json file as shown below
cds compile srv --service all -o docs --to openapi
Please let me know in case of any feedback