In the previous blog post, we discussed the upskilling challenges that internal SAP S/4HANA customer teams are facing in times of transition from SAP ECC to SAP S/4HANA and how to approach solving them. In this post, we will go over specific skills that ABAP developers should be learning and applying to continue successful career.
The Foundation
One of the principles in andragogy, the theory of adult education, states that adults bring prior knowledge and experience that form a foundation for their learning. Our knowledge of classic ABAP development, of ECC (or even older systems) is not a baggage, it is the foundation upon which we can build new knowledge. In fact, many things that apply to development in HANA environment, ABAPers already knew all along.
Back in the days, when SAP TechEd events were not virtual, I chatted with the other developers after leaving a session about the custom code adaptation for SAP S/4HANA. We chuckled how SELECT * was never a good idea and how well-written ABAP programs were “pushing down” the code to DB layer before it became the thing.
Even though we may need to tear down and renovate some parts of our “skill house” (such as moving away from creating procedural monoliths), our foundation will hold and will be even stronger after we reinforce it with the new knowledge of the concepts below.
Object-oriented Programming (OOP)
ABAP Objects have been already available when I started SAP career in 2005. Many ABAP developers have been using OOP all along but not everyone is there yet. Well, unless you plan to retire very soon, the time to make this transition is right now. While backwards compatibility in SAP allows us to write classic procedural ABAP code almost indefinitely (for better or for worse), going forward, those who have not learned OOP will find themselves struggling.
My own ABAP path did not start with object-oriented development. I was taught only procedural code in the beginning and everyone around me was coding in the same way. There may have been a few random classes created by the consultants here and there, usually very poorly designed. And even the popular demo reports created by SAP were procedural programs.
Fortunately, we can rely on help from other developers who made the transition from procedural to object-oriented development before us. For example, Markus Haug from SAP shared a blog with 3 simple ways to start using OOP in your next project. In the same blog, you can find my comment with an alternative journey (and everyone’s journey will be different!).
No matter how you make the transition, I invite you to start with any small steps and not be afraid of making mistakes. You do not need to read the whole book on design patterns just to start creating object-oriented programs. It would not hurt, of course, but transitioning to OOP can be a long road and nothing should delay your departure.
Development Environments (IDE)
Whether you love or hate SE80, some development tasks can no longer be done using just the old tools. But jumping from having no IDE choice to having almost too many IDE choices can be intimidating.
ABAP Development Tools (ADT) add-on for Eclipse IDE has already been available for several years. It can be used for development in ECC systems too, there is no need to wait for S/4HANA project and you can start learning it right away. This short tutorial explains the basics of installing ADT in Eclipse and creating your first project. The SAP Help article FAQs for SE80 Experts Using ADT has been most helpful to me in finding my way around Eclipse and ADT tools. (Not going to lie, I’m still barely warming up to it, as a die-hard SE80 fan. )
Another IDE option for ABAP development is Microsoft Visual Studio Code (VS Code) with ABAP plug-in. For those interested, I recommend this SAP Community blog on the subject.
The frontend development of Fiori applications traditionally uses SAP Web IDE. While Web IDE is still in use with on-premise systems, Cloud-oriented SAP Business Application Studio (SAP BAS) has already been pronounced its successor. The tutorials for SAP BAS can be found here and for a deep dive I recommend openSAP class that covers not just SAP BAS but also Cloud Application Programming Model (CAP). Unfortunately, Web IDE trial has been discontinued by SAP last year and only SAP BAS trial is available free to the developers.
CDS Views
CDS (Core Data Service) views are the development staple in S/4HANA. They cannot be created in SAP GUI and you will need to use one of the new IDEs instead. In this passionate blog, SAP Mentor Alum Thorsten Franz highlights the significance of the CDS views by calling them “the new ABAP Objects”. This is one subject you absolutely cannot skip if you plan on working with S/4HANA.
This simple tutorial will walk you through the basic steps to create a CDS view. The CDS-themed resources are so plentiful these days that it is difficult to recommend a specific one. I would suggest following your personal learning preferences on this: some developers might learn better by reading a book, others would prefer to dive right in with assistance from documentation.
If the ECC system you work with is older and does not have CDS views available, make use of a free ABAP Trial offering by SAP. ABAP Trial files can be downloaded and installed locally in a virtual environment, making it completely free (although you would need a rather powerful PC to run it). A simpler option is to access ABAP Trial system via SAP Cloud Application Library (CAL) but this requires procuring services of a Cloud provider, such as Google or AWS. You will see the cost estimate before signing up and, as a new customer, you might receive a credit from the provider, so make sure to shop around. I have used this option personally and can highly recommend it for simplicity.
RESTful API development and OData
You might remember the concept of web services from over a decade ago when Service-oriented Architecture (SOA) was all the rage in SAP and we used function modules and SOAMANAGER transaction to create SOAP-based web services. But SOAP (Simple Object Access Protocol) with its WSDL files and reliance on XML is too bulky for nimble web applications, so enter more light-weight REST.
REST is a specific software architecture design and RESTful is the style that follows that design’s principles. An excellent explanation of this concept can be found on Codecademy.
OData (Open Data Protocol) is an open standard for creating and consuming RESTful APIs. I have seen OData referred to as “SQL for the web” and, even though it is not quite accurate, viewing it that way could be helpful for the beginners. Note that a lot of information you will find about REST and OData can seem confusing and complicated at first (especially if you did not partake in SOA craze before). This is completely normal, and you will gain better understanding as you start development.
SAP Gateway provides capabilities to create RESTful, OData-based web services using either CDS or ABAP code-based implementation. These web services can be used in Fiori applications, e-commerce interfaces and other scenarios. SAP Gateway is available in both ECC and S/4HANA but need to be installed as an add-on in the older versions.
Before CDS views became available, OData web services had to be generated using a function module (not recommended) or custom ABAP development via SEGW transaction. For this type of development, SAPYard offers tutorials that I found most helpful.
You can easily generate OData Service with CDS views, using a single command. This is how you will most likely create services in S/4HANA environment. However, I still would recommend reviewing the tutorials mentioned above because the same ABAP artifacts are generated in the process and you may need to work with them directly in some scenarios.
No matter which option you choose, start with creating a simple GET service, to provide a list of sales or purchase orders, for example. Test it in SAP Gateway Client transaction or other environment. Further, familiarize yourself with the format of queries and the concept of associations.
CDS views, REST, and OData knowledge will be safe investment for you in transition to the newest ABAP RESTful Programming model (RAP) as well.
Web Development
Traditionally, ABAPers have been full–stack developers with both back- and front-end development taking place in the same environment. This is quickly changing as modern front-end development (using Fiori/UI5 or non-SAP platforms) requires a separate set of skills.
Full-stack developers will always be in high demand in the job market, but some ABAP developers may choose to focus more on front- or back-end development. And this is perfectly fine. For example, using CDS views with UI annotations and Fiori Elements, any developer can create a user-friendly application without any additional UI skills.
However, every ABAP developer who wants to become a true SAP (SAP S/4HANA) developer need to learn at least the fundamentals of web development. Some of us may already have some knowledge in this area (for example, I learned HTML basics by accident when working on a custom template for my personal blog) and will be able to use this foundation to build upon.
Even though this SAP Community blog is more than 5 years old, it remains a great reference for understanding the path towards web development and offers a collection of helpful resources. For me, this Codecademy JavaScript Introduction course was fun and so easy to understand that I recommended it to my 11-year-old son.
In the recent Mindset Cloud roundtable, our SAP Development Lead Paul Modderman named these 3 items as top non-ABAP things to learn for ABAP developers: Python, Node.js, and web development. Python is another language that you can learn together with children ages 8 and older, making it not only a fun family activity but a great example of continuous learning.
* * *
I hope that this post will help ABAP developers to transition from ECC to SAP S/4HANA not with fear but with excitement. The concepts discussed above will provide a solid foundation for your successful SAP S/4HANA career and further learning for years to come
If you are interested in viewing similar articles, visit our blog, here.
View our LinkedIn, here.