Coming from a SAP ABAP development background, I understand. I understand the urge to want to keep dwelling in the comfortable walled garden of ABAP. Merge-conflict-less development, the double-clicking your way around the platform, an integrated transport management tool, the integrated debugger. Glamorous it is not but it’s a simple, known, convenient world. It is home.
But no good thing lasts forever. One day you get a tap on your shoulder and are asked to look into a project using something called HANA. You have heard the term being thrown around but haven’t really encountered it in the wild. So now, you are intrigued. Is this what the cool kids are doing these days? How difficult can it be, you wonder. You do an online search. And your intrigue quickly turns into mild panic. Where do you even start? The more you look, more confusion sets in. By the time you grasp a concept, the HANA world has moved on and replaced it already with something new. What direction do you take? What tools do you use? What programming model do you follow? What are the best practices? Overall, after taking a leap out of the walled garden of ABAP, how do you land safely onto the premise of HANA without busting a knee cap?
So here are 10 quick hacks to get you oriented. Of course, it’s only scratching the surface.
- HANA is a database. You can connect to it using any database tool. Think of it as setting up a new SAP Logon connection. But ask your platform owner for HANA WebIDE / DB Viewer access and also install Eclipse with HANA Plugins.
- You can use general database query language to query the database content at run time. You may have to brush up your SQL again.
- But wait, HANA is not just a database. There is an application layer called XS or eXtended Application Services that is tightly integrated with the HANA database. You may encounter the terms XS Classic (XSC) and XS Advanced (XSA). XS Advanced is the platform that’s getting all the attention from SAP and it stands apart from its former version in quite a few key ways. XS Advanced is where you’d want to be.
- Tools – XS Advanced uses WebIDE for development and viewing database content. But it is not easy to do without Eclipse since you will most probably need to connect to a classic schema at some point. If you are building everything from scratch in HANA, the HANA WebIDE and the XSA Cockpit are the two main tools you must have. You can also use any code editor like VSCode (you need to install relevant CLIs) or SAP’s new Business Application Studio.
- Code – XS Advanced uses the Multi-Target App (MTA) concept of SAP Cloud Foundry. What is that you ask? Typically, you will code in WebIDE (you can also code locally on your desktop, but that’s a topic for another day) where you create an MTA Project within which you will create apps for database artifacts, oData services, routing etc. The technology stack that’s most commonly used for these applications is Nodejs. But you can get by with very little actual Nodejs coding.
- Containerization – One of the main differentiating factors of XS Classic and XS Advanced is the concept of containers. HANA introduces HDI Containers which are basically your own slice of the database where you can safely do anything you want without disrupting or getting disrupted by anything else. These containers have their own special system users to access the database artifacts created within it.
- CDS & Calculation Views and HDBViews – These are few of the database artifacts that you can create at design time in your MTA. Calculation views are graphical views that you can interact very easily with without any coding. HDBViews are the generic views that you can create on top of a table or other views. CDS views are SAP’s own special way of creating DB tables. CDS is also used to define odata services in the new way. XSODATA is yesterday’s news, although it is still supported by XS Advanced.
- Programming Model – The latest programming model adopted by HANA is called Cloud Application Programming model or CAP. Refer to https://cap.cloud.sap/docs/. And by ‘refer’, I mean read the entire website. It is concise but covers some very important topics.
- Security – At the database level, everything is fortified using roles and privileges. Different accesses to database artifacts and tools within HANA are controlled by these privileges at a very granular level. You will run into a lot of ‘not sufficient privilege’ errors. At the odata service level, HANA prefers using oAuth as an authentication method. The service level security mechanism is called XSUAA or XS User Authentication and Authorization.
- Testing – To test oData services, use an HTTP client like Postman. You can test your services from browsers too as long as you are only making GET calls and there is no XSUAA layer over your services. HANA DB viewer is a good tool to test your database artifacts. There is an SQL analyzer to analyze the performance of your views.
Hopefully this helps you get some bearings around HANA. It is an interesting world and I am sure you will find this whole new playground a great way to take your SAP journey to its next stage.