Skip to Content
Technical Articles
Author's profile photo Vijay Chintarlapalli

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 :

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

Assigned Tags

      15 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Mustafa Bensan
      Mustafa Bensan

      Hi Vijay,

      With reference to your comment "there are challenges exposing the Odata directly from S/4 HANA On-Premise to SAP build", it would be helpful for context if you could elaborate on what these challenges were and how they led you to the RAP solution.

      Thanks,

      Mustafa.

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli
      Blog Post Author

      Mustafa Bensan  There is a CORS issue to connect to On prem Odata services currently

      thanks

      vijay

      Author's profile photo Mustafa Bensan
      Mustafa Bensan

      I like the use of actions in your solution to allow modular reuse of CRUD operations.  What do you think about the use of the Call Web Service with Destination activity as described in the following tutorial?

      Learn How to Create and Configure BTP Destinations in SAP Build Process Automation

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli
      Blog Post Author

      yes this could be one alternative however this is not a clean core approach my focus was more on side-side extensions so that this can work irrespective of the backend systems for custom Odata services

      Author's profile photo Mustafa Bensan
      Mustafa Bensan

      Can you clarify why the approach in the tutorial is not a "clean core" approach?  Doesn't the tutorial approach keep the core clean by creating a solution on SAP BTP and integrating it with the exposed on-premise API?

       

       

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli
      Blog Post Author

      The core approach I Follower here is not to call Odata directly from BTP ABAP Using instead use released API classes or CDS views  for CRUD operations

      thanks

      vijay

      Author's profile photo Mustafa Bensan
      Mustafa Bensan

      Understood.  My point was that even when using the released API classes or CDS views for CRUD operations, they are still exposed as OData services which could be consumed via the Call Web Service with Destination activity of SAP Build Process Automation instead of Actions, right?

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli
      Blog Post Author

      Yes your right we could follow webserives approach from BTP ABAp as well instead of RAP using service consumption model .
      thanks

      vijaya

      Author's profile photo Mustafa Bensan
      Mustafa Bensan

      Okay, thanks for the clarification.

      Author's profile photo Leandro Ribeiro
      Leandro Ribeiro

      Hi Vijay,

      A very nice blog!

      The more blogs of this type (SAP Build integration with On Premise - ECC or S/4) are created, the more people like me who are learning SAP Build will be grateful.

      I imagine I can use this same idea by creating actions in the SAP Build App (instead of SAP Build Process Automation), right?

      Best regards.

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli
      Blog Post Author

      Hi Leandro ,

      thanks for your feedback

      Yes we can use the Odata services via destiantions in SAP Build apps not actions directly .

      thanks

      Vijay

      Author's profile photo Daniel Wroblewski
      Daniel Wroblewski

      You can use actions in SAP Build Apps? I thought Actions were artifacts consumed in SAP Build Process Automation ... it would make sense to make them available in both tools, but how do you do that in SAP Build Apps?

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli
      Blog Post Author

      Daniel Wroblewski

       sorry for the confusion we can use the BTP ABAP Odata services via destination in Build Apps.
      Thanks,
      Vijaya
      Author's profile photo Geet Bijlani
      Geet Bijlani

      Hi Vijay,

      While converting ODATA service to open API using  https://convert.odata-openapi.net/ , in my case after entering the meta data and clicking on convert , nothing really happens. The result is blank. Is there any step that I may be missing or any specific format.

       

      Please let me know if I am missing anything here or if there is an issue with the metadata.

       

      Best Regards,

      Geet

      Author's profile photo Dinu Pavithran
      Dinu Pavithran

      Old question yet,

      you can import edmx files while creating an Action project. There is no need for a converter tool.