How to cook SAP-SAP, a DevOps Recipe!
In the Philippines, a species of fish called sapsap, also written as sap-sap (scientific name: gazza achlamys) are usually cooked as fish stews and soup; paksiw and pinangat are the traditional dishes for this particular species of fish.
I can fondly remember. Growing up as a child in Biñan, Laguna, I would accompany my mother on market trips during weekends.
Sapsap were abundantly everywhere in the wet market. They were freshly delivered to the stalls by the yellow-boots men in overflowing containers called bañeras and you could see them literally jumping up from one container to another while a clowder of market cats lined up along the sidelines and eagerly looked on as if in trance, just waiting for a lucky fish to drop in the wet pavements. I could occasionally see them quickly snatching a fish or two like tennis ball boys.
There were some kind of unspoken rules between the yellow-boots men, fish vendors and the market cats; the boots-men should not flirt or fall in love with the vendors and the cats were only allowed to partake those fishes that escaped from the containers and nothing more. If they were to be caught stealing directly from the containers, then their nine lives would have surely caught up and run out of them. The same fate goes to those young, tanned, muscular yellow-boots men who had fallen in love with the vendor’s pretty and shapely daughters!
———— SAP ABAP CI/CD RECIPE ———–
Here is a sumptuous DevOps SAP recipe.
Specifically, the needs are for the classical and traditional AS ABAP development platform which makes it quite more difficult.
Below are the necessary ingredients for this recipe.
- Eclipse IDE with ADT (ABAP Development Toolkit)
- abapGit client (to be installed in AS ABAP DEV environment)
- Git repository such as Github, Gitlab or BitBucket
- Jenkins CI/CD automation server (with Erlang)
- SAP NetWeaver AS ABAP development platform and SAP BW 7.50 SP02 on ASE (Developer Edition) to be installed in AWS via SAP CAL
And now for the steps:
Let us start with the first ingredient which is the IDE or the Integrated Development Environment. We will be using Eclipse.
I guess the first difficult step is that we need to convert ABAP developers to use Eclipse and stray away from the traditional SAP GUI, SE80. I know, the choice of IDEs are like religions to developers.
The minimum version of SAP NetWeaver back end system that supports Eclipse is 7.31, SP4. Anything below meant “turn around, bright eyes!”
- Download and install Eclipse IDE on your local PC. Verify first the supported version by SAP and the prerequisites in https://tools.hana.ondemand.com/#abap , as of this post it’s 2018-12 (4.10)
- Add specific SAP ABAP add-ons
- Connect local Eclipse IDE to your back-end SAP system
Like all CI pipelines, everything starts with the developer cutting codes on their preferred IDE locally and then commiting and pushing to an SCM git repository such as Github, Gitlab and Bitbucket. But you cannot do that with SAP ABAP as the IDE should be online and connected to the AS ABAP DEV environment which is also the repository of your code. To circumvent this, there is an open-source tool we can use called abapGit. Initially, I thought it was a git client that you can install as plugins or add-on in an IDE like Eclipse, but apparently it’s not. This “git client” resides in the ABAP DEV environment that in turn connects to the Git repositories such as Gitlab, Github, Bitbucket, etc.
Here are the bits and pieces of information about abapGit that I gather from my web search:
- Installation is easy, just copy and paste of the abapGit source code.
- abapGit has an option to export the transport request contents to zip.
- It serializes source code and data dictionary elements to plain text that you can push in a git repository.
- An optional Code review flow is possible to implement.
I wrote some Erlang codes that act as a middleware tool for connection to SAP ABAP Dev. environment.
Jenkins will execute it on various stages such as ABAP Unit Test (with optional Code Coverage) and ATC (ABAP Test Cockpit) stage. Also, in the final stage for the Jenkins CI pipeline is the publishing of unit tests and I have to convert the resulting SAP XML to JUnit format using a nifty tool written in C that Erlang calls within.
- Developer enters the code
- … and commits it to the repository, which holds all the history of changes and potentially documentation too.
- Trigger Jenkins CI/CD Server to start the pipeline
- Jenkins triggers ABAP unit and coverage tests as well as ATC and publish the test results.
- Code release for user test in QA system
- Jenkins initiate functional and regression tests.
Optional: Code reviewer audits the code based any other standards perspective (optional)
Tools and Technology Used:
KEYPOINTS to emphasize:
- Transparency and granularity on the changes done, tracking of who did them, comparing changes over time
- Easy recovery/rollback to the previous version in case of issues
- Enables code review practices (working in teams), which greatly improves code quality
- Enables parallel development of several “branches” of code e.g. new features and bug fixes for existing version
- abapGit is official client for SAP Abap Cloud Platform, which means it is officially accepted and endorsed by SAP as well
Sample Screenshot:
(— to be continued, stay tuned… —)
…and finally the mouth-watering but simple sap-sap recipe! enjoy!!
Someone famous Source Title
hello
Interesting SAP (2x) recipe Vener. Nice to discuss more about this with you when you’re free.