XS Advanced for (not so) dummies
My career in the SAP ecosystem started in the beautiful. comfy world of ABAP. After some time doing C++ and Java, ABAP presented itself as the awesome language that masked the database and built the UI for you. Back in those days when you manually built the field catalog for an ALV, finding out what actual SQL the database needed or drawing the UI were usually uncommon tasks.
If my self from those times wanted to do some SAP HANA native development with XS Advanced, dummy or not, she would be completely lost and would need to start from the very basics. Even if you have been doing some XS Classic development, now that it is officially deprecated as of SPS02, you may also need to catch up with some concepts.
This post is dedicated to my (not so) dummier self. I hope it also works for anyone who is looking to get started with SAP HANA native development using its most current, embedded application layer and tools.
The history of XS Advanced starts with the need to both scale and keep the SAP Cloud Platform and on-premise editions consistent but flexible. Cloud Foundry is an application platform that:
- is open-source: even my dummier self knew what this is, but just in case, this site explains the benefits
- is container-based: In my own dummy words, a container is like a virtual machine but on top of the operating system and without the hypervisor or player. In more pro words, a container packages an application with its code, the libraries it needs, the runtime environment and system tools and isolates it from the operating system. Multiple containers will share a common operating system and the resources it manages (RAM, filesystem, etc). This topic is vast and very interesting. You can get more information from one of the leading container platforms, Docker.
- allows for multiple programming languages: There are some magical elves called buildpacks in Cloud Foundry. When you push an application, the platform will check in which language it was written and retrieve a set of scripts that will bring all the dependencies for your application and generate the compiled code or equivalent executables. Although the list of Cloud Foundry buildpacks is very promising, XSA currently provides dedicated support to Node.js and Java.
- decouples applications from infrastructure: This translates to enabling multi-cloud. In other words, freedom to choose what you run and in which cloud provider (e.g., Amazon Web Services, MS Azure, Google Cloud Platform) depending on different factors such as cost, geographical proximity or compliance, regardless of the underlying infrastructure.
All of this is not necessarily applicable to XSA. This first concept in itself is HUGE. Almost everything of what is coming next is related to this, so please bear with me.
SAP Web IDE for SAP HANA
You will later see that with this new architecture come, at least, two things: some more complexity than just a database and script on top of it and a whole new world of possibilities. The complexities are tackled by understanding the why of what of you are doing (and they bring the benefit of robustness, among others). The possibilities are gracefully enabled by the new development environment. This is SAP Web IDE for SAP HANA.
There’s more than meets the eye here, but it would mean an entire new blog post. You should really try it out.
Thanks for everything, HANA Studio!
Here is the first piece of news: if you were using SAP HANA Studio, you do not need it any more. As you can see, the Web IDE has got your back and has everything (and more) covered. Rephrasing, the Web IDE covers everything HANA Studio could do in terms of development(*) but HANA Studio cannot do what the Web IDE and Database explorer do.
If you are missing the Administration Cockpit (or the site telling you it is not there anymore), you will find it is also a part of the XS Advanced applications.
Another thing you might notice is the Git integration (c’mon, I put an arrow to it…). This is because files will not live in a repository in HANA either. The internal source code repo will also say goodbye.
(*) The only feature I have spotted that is missing is the “Import from File” wizard that created a table straight form an Excel spreadsheet, though there are plenty of alternatives to achieve this in Web IDE.
Give it a try
The default port for Web IDE in an SAP HANA, express edition, is 53075. So unless you’ve changed it, you can access the Web IDE with URL https://<hostname>:53075 .
Right after you enter the URL, you will be redirected to a new address and a different port. That is the User Account and Authentication service:
Witchcraft? Nope, that is UAA providing you with an OAuth token… and we need to go into the architecture piece to understand this and many other concepts first.
Let’s dig deeper into the key architecture concepts in the second part of this blog post here: https://blogs.sap.com/2017/09/05/xs-advanced-for-not-so-dummies-pt-2-multi-target-applications/
The third part, Multi target Apllications can be found here: https://blogs.sap.com/2017/09/22/xs-advanced-for-not-so-dummies-pt-3-microservices/
And the last piece, about Routing is here: https://blogs.sap.com/2018/02/16/xs-advanced-for-not-so-dummies-routing/