I have developed an OData service that returns different results depending on which user is calling the service. I noticed that users often didn’t get the expected results, but rather the results of another user using the application at the same time. In this blog post I’ll describe the issue and the solution I found.
I recently struggled with a confusing issue related to SCP API Management, SAP NetWeaver Gateway, and OData. The issue was that irrespective of the HTTP verb used when calling the API through API Management, the OData service interpreted the call as a
GETcall. In this blog post I’ll provide some details on the issue as well as the solution implemented to remedy the issue.
Having worked in IT for about 17 years, mostly as a consultant, I’ve yet to see a company where the technical documentation is up-to-date and reliable. I think that a major reason for the documentation not being up-to-date is that documentation is maintained far away from the source code, for example in a plethora of Word documents stored in a separate Solution Manager system. In this post, I’ll explain how Markdown files being handled in a Git repository can bring the documentation much closer to the ABAP source code.
If you’ve been testing OData services for example with Postman lately, you’ve most likely come across the scenario where you need to convert a UUID (Universal Unique Identifier) between hyphened representation and RAW16. I’ve previously done this manually, but today I decided to find a class that could help me with this.
I try to write unit tests for as much of my code as I think makes sense. To speed up the creation of my unit tests, I’ve set up two ABAP templates in eclipse which I want to share with you in this post.
I’ve been cleaning up some legacy ABAP code lately, and a reoccurring theme is poor exception handling. In this post, I’ll explain why ABAP exception handling shouldn’t be treated like a game of catch with your dog. I’ll discuss some anti-patterns I’ve come across in the legacy code and give a few suggestions on how to improve your exception handling.
Last month I switched my blog from WordPress over to Jekyll. Jekyll is a static site generator, which transforms plain text files into a static website. I’ve also started writing a book using LaTeX, which is a document preparation system also using plain text. In this blog post, I’ll explain why I think the What You See Is What You Mean (WYSIWYM) approach is preferable for technical writing, at least for me.
There are quite a few useful standard ATC checks delivered by SAP. Recently I found myself using one of the standard ATC checks, but wanting to change the priority level of one of the messages issued by the check. The check wasn’t configurable, so I decided to look into how the priority level could be changed programmatically. I’ll share my solution in this blog post.
I've been working a lot with OData and REST lately, outbound as well as inbound. Some of my code needs to handle HTTP status codes in different ways. Since I didn't want to hard-code the status codes in my code, I started looking around for standard classes and interfaces which could be of use to me. This blog post is a brief summary of what I found.
I'm sure most of you have been asked to develop a report displaying a progress indicator during the execution of the report. I just developed a migration report which needs several minutes to execute, so I decided to put in a progress indicator.
I held my two first conference talks earlier this week at the Swedish SAP user group conference SAPSA IMPULS 2019, and in this post I will share some of my experiences. SAPSA IMPULS is a yearly conference targeting people working with SAP solutions in the Nordics, and the event had more than 800 attendees this year. This was a two days event, and I was scheduled to hold two different presentations, one on each day of the conference.
I first heard about Hacktoberfest on a podcast a couple of months ago, and it sparked my interest since I've become more involved in open-source software projects lately. Hacktoberfest is a month-long event with the purpose of celebrating open-source software. The event is run by DigitalOcean and dev.to. Having lived in Munich for a couple of years, I, of course, find the name of the event amusing as well.
In some situations, it can be useful to be able to determine the names of the current class and method dynamically instead of using hard-coded strings. I find this particularly useful for logging purposes. I have a helper class which writes to the system log when certain exceptions are triggered. As input to this helper class (or rather the method writing to the system log) I want to provide the names of the class and method where the exception was raised.
When developing an OData service for searching for contact persons by name, I came across a scenario where the name contains the special character ' (single quote character). As an example, the user would like to search for contact persons with the last name O'Reilly.
When using the ABAP Test Cockpit (ATC) for statically and dynamically checking the quality of your ABAP code and related repository objects, some of the warnings and errors identified by the ATC aren't relevant in your specific scenario. Leaving errors and warnings unaddressed might cause confusion at some future point-in-time when you or another developer needs to change the code. In order to reduce the confusion, ABAP pragmas and pseudo comments can be used to blend out irrelevant warnings and errors. Let us take a detailed look at what pseudo comments and pragmas are and how to use them.
When defining a variable containing a text of some sort in ABAP, which of the following options do you typically use?
Grace Hopper was a computer pioneer and one of the first programmers. I just finished reading the book "Grace Murray Hopper: Working to create the future" by Carl J Schneider, and I'd like to share some of my takeaways with you.
In this post, I'll share with you how you can use MOOCs to stay up-to-date with your field and acquire new skills. I'll also share some of my experiences after having completed about 30 MOOCs in the last year and a half.
I have signed up to volunteer for the Swedish nonprofit organization Kodcentrum this autumn. Kodcentrum introduces kids to programming and digital creation free-of-charge. We will be using Scratch in the coding labs, and I've played around with Scratch previously on a couple of occasions. In this post, I'll share what I learnt by taking a course on Snap!, which is closely related to Scratch.
A highly valuable resource for the ABAP developer is the clean ABAP guide available on GitHub.com under SAP/styleguides. The guide helps the ABAP developer in writing clean code.
SAP launched the first version of its design system Fiori back in 2013. The first version was limited to self-service scenarios targeting the casual user. In 2016, Fiori 2.0 appeared on the scene, expanding the scope to targeting the power user. SAP is now presenting version 3 of Fiori, and I've just attended a MOOC on openSAP covering the topic. The course is Intelligent Enterprise User Experience with SAP Fiori 3, and it's available free of charge. In this post, I will summarize my main takeaways from the course.
subscribe via RSS