Application Development and Automation Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
SergioG_TX
SAP Champion
SAP Champion
2,031

It’s been +2 years since I started using SAP Build Apps (formerly known as AppGyver) and I have seen the evolution of this tool. Just like any other tool, not perfect, but it has its good moments. In this blog, I would like to discuss the new feature called Actions.  To see this blog in Spanish, go here

SergioG_TX_0-1730308412912.jpeg

 

 

Actions – in the context of SAP Build Apps – allow low code no code (LCNC) developers to encapsulate APIs in low code fashion and be able to use them from within the SAP build apps logic. All apps regardless of size do make backend calls in one way or another; think of SAP and non-SAP system integration.

In the past, I wrote about uploading files to AWS via lambda function and also consuming a REST API directly from the LCNC application (see Other blogs below).

In this blog, I would like to showcase, how to encapsulate the invocation of an AWS Lambda function call from the Actions point of view and then showcase how to use it from SAP Build Apps.

SergioG_TX_7-1730308869037.png

 

Assuming you already have set up the pre-reqs in your SAP Build Apps environment (official SAP blog here https://developers.sap.com/tutorials/build-apps-trial..html

  • Enable Cloud identity services
  • Allow trust
  • Adding Role collections
  • Adding user to role collections

The previous steps will allow you to be able to access the SAP Build Apps tool to develop LCNC applications. Once your environment is set up…. You must create a Destination in the BTP cockpit and that you can access it from there. https://developers.sap.com/tutorials/cp-cf-create-destination..html

* If your destination is created and accessible, then, you must add the following additional properties to make sure this is seen from the SAP Build Apps tool (https://help.sap.com/docs/build-apps/service-guide/sap-systems)

  1. To make your destination available from the SAP Build apps
  2. Allowing the destination to be used from the Actions section in SAP build apps

Property

value

sap.applicationdevelopment.actions.enabled

true

BuildApps.Enabled

true

BuildApps.Type

rest / odata

 

 

 

Actions are created from an Actions project as described in the official documentation: https://help.sap.com/docs/build-process-automation/sap-build-process-automation/create-actions-proje...

Now, there are different ways to achieve integration, such as, to consume BTP destinations, to consume cloud functions, to consume OData APIs from other SAP systems (direct integration to SuccessFactors, Concur, CAP, RAP). In my case, I am going to consume a REST API wrapped as an Action in my Build Apps application.

 

Once in SAP Build Apps, in the left nav, there is a Lobby, Connectors and Control Tower.

Lobby is where you can create your sap build apps (front and back end)

Connectors is where you can create Action projects based on API sources [RAP, CAP, BTP destinations, SuccessFactors, Concur)

SergioG_TX_1-1730308412915.png

 

When you open the Action project you created, you can see actions in your project.

When selected, each action has an endpoint, an Input section, an Output section and Test (self-explanatory)

SergioG_TX_2-1730308412919.png

 

 

The Test tab is my favorite here because you can verify that the destination is reachable, and that there is data flow into the SAP Build Apps tool (before doing this, you can also verify your service from POSTMAN or even that the connection to the Destinations works in your BTP cockpit)

 

Once in the tab, you can select the Manual (you will type a URL, authentication type or you can select a destination if you set up the additional properties in your BTP cockpit Destination section as shown above *

Further, there is a section to provide your input values in case you must pass input parameters (query string, headers, path). If all is set up correctly, and you get a successful response (after clicking on the Test button) then, you will be able to analyze the response by clicking on the View API link on bottom right of the screen (it is kind of hidden, but it is there).

A Test Preview section opens and you can see the response from your Action. If you get here and you can see a response, congratulations. This is a good spot to be in. Now, you don’t need to know the exact schema of your output. Once you have a successful response, you can assign it to be pre-populated by clicking on Generate Output button (This feature is a 5 star in my opinion). Now you can consume data, pass params, and get a response all from SAP Build Apps.

SergioG_TX_3-1730308412923.png

 

 

If you make a new Action or make changes to an existing action, please make sure to click on the Release button and then Publish it to be reflected in the SAP Build Apps side.

 

The next step and new feature is the logic flow within the SAP Build Apps itself. I will not go into detail on how to create an app since I have mentioned several blogs below that you can reference to get you started, or even better, jump over the Builders group in #SAPCommunity and see what is going on in that community group for more examples and to connect with other SAP Builders like me.

In the image below, I opened the SAP Build apps and I had already added some components to the canvas. I knew I wanted to invoke the AWS Lambda function from the click of a button after reading an input from a user.

  • The input field sets the value to a Page Variable
  • The button click event triggers the flow below
    1. If condition to verify there is a non-empty value, otherwise show an Alert
    2. The Trigger action calls the Action which moreover calls the destination and therefore the lambda function 😊
    3. Upon response from the Action, I am showing a Toast message with the (JSON) response

 

SergioG_TX_4-1730308412931.png

 


Additional new logic flows exist there that I am not mentioning in this blog post. I encourage you to investigate those. I wanted to see how this new feature works and see the easiness (or difficulty level) to accomplish this integration between SAP Build Apps, BTP - Destinations, and AWS Lambda).

 

 

As I conclude this blog, I truly believe this exercise was easier than I thought.

  • It saved me time due to the LCNC approach.
  • It saved me during the integration process so that I didn’t have to know how to structure that in a pro-coding environment.
  • It saved me the headache to create types/classes by leveraging the Generate Output structure.
  • It saved me time to validate the integration and making sure the data was flowing

 

Things that didn’t make sense to me:

SAP Logo on top right – is this the only way to go back to the home page (Lobby, Connectors)

Actions à versions – how many can we keep? Why should we need many versions?)

Publishing an action should automatically update the version in SAP Build apps, however, when I navigated to the Integrations section of the app itself, I had to click on the bubble showing me it has now been upgraded.

 

Gotcha:

When you download the SAP Build apps preview apps, make sure to select the correct region prior to generating a pin, otherwise you will spin your wheels getting incorrect ping message.

 

Other blogs I did in the past;

 

Here is the same app from my mobile device

SergioG_TX_5-1730308412934.jpeg

After calling the Action  --> 

SergioG_TX_6-1730308412940.jpeg

 

 

 

Thank you for your time reading this blog. Please let me know if you have any questions, comments or suggestions.

 

Happy Low/No Coding!

SG

2 Comments