Reset SAP note implementation

images/thumbnail.jpg - Thumbnail

I remember when SAP notes had to be inserted by hand. Copy paste and pray that no mistake was made. Wild.

I actually remember a project which, for some strange obscure reason, instead of upgrading, decided to implement hundreds and hundreds of notes by hand. They printed them all and made a huge pile of paper and about 10 ABAP consultants spent the whole weekend trying to process the whole pile. We did it. But I have no idea what were the consequences and how many bugs were introduced. Many for sure.

Farewell Evernote, hello Notion

images/thumbnail.jpg - Thumbnail

One of the first posts in Abapinho was about Evernote. Well, it was actually about the importance of taking notes. But it suggested Evernote was the best tool for the job.

It feels like yesterday but this was 10 years ago. 10 years using Evernote to take notes. Unfortunately whoever makes Evernote probably stopped taking notes many years ago because, since then, Evernote hardly evolved. Actually, it got worse, especially in its iOS version. After 10 years, they weren’t even able to (try to?) make a decent table editor. They’re either lazy or dumb.

Table lookup without having to deal with CX_SY_ITAB_LINE_NOT_FOUND

images/thumbnail.jpg - Thumbnail

Before the modernization of ABAP in 7.40, a table lookup required an auxiliary variable and at least 4 lines of code.

Convert amount to numeric external format

images/thumbnail.jpg - Thumbnail

As is well known, SAP stores amounts internally in variables with 2 decimal places. When we want to convert it to its external format, we use WRITE with the CURRENCY option. But WRITE writes to an alphanumeric variable. What if we need to write it to a numeric variable?

Quick Cut and Paste

images/thumbnail.jpg - Thumbnail

I learned yet another small obscure SAPGui functionality. How to speed up copy and paste.

Clean ABAP

images/thumbnail.jpg - Thumbnail

For many years, when confronted with ABAP OO, most ABAPers I talked to, acknowledged that OO is great for most languages but never saw any real advantage in adopting it for ABAP. So they carry on using FORMs, INCLUDEs and CALL FUNCTIONs. The standard SAP code sets the example by trying to make something work while breaking every possible programming best practice.

NOT

images/thumbnail.jpg - Thumbnail

No, ABAP will never have the NOT operator.

MOVE-CORRESPONDING between two tables with automatic look up

images/thumbnail.jpg - Thumbnail

Abapinho hasn’t been talking a lot about 7.40 because most of the new possibilities have already been widely discussed in other sites and we don’t want to reinvent the wheel.

But, here and there, I find small useful jewels which seem to still be under the radar. This is one of them.

Get unique values of an internal table field

images/thumbnail.jpg - Thumbnail

In SQL you can get a list of unique values of a field using DISTINCT. When the data is already in an internal table, before ABAP 7.40 you had to use a LOOP and a COLLECT.

But now that we live in more modern times, there is a simpler and more elegant way to achieve the same with a single command.

How to render CL_GUI_ALV_GRID in background

images/thumbnail.jpg - Thumbnail

Someone decided to run an editable ALV (based on CL_GUI_ALV_GRID) in background. It dumped. The solution is simple but not that obvious.

Use CL_GUI_ALV_GRID without having to create a screen

images/thumbnail.jpg - Thumbnail

Nowadays I rarely use CL_GUI_ALV_GRID because SALV is so much better. But when I am asked to make an editable ALV I still use it. Until very recently, I thought that, in order to use it, I needed a screen with a container. And because I’m using ABAP OO, I’d need a function group to host it and a function module to call it. Painful.

How to resize an ALV grid to fill the whole window

images/thumbnail.jpg - Thumbnail

Sometimes the simplest things take the longest time to do. For instance, we recently needed an ALV grid to automatically resize to fill the whole window. But how? But how? But how?

All SAP demo code under the same roof

images/thumbnail.jpg - Thumbnail

When I was a little boy, back in the 80’s, I had to type LOAD "" and then wait for several minutes staring at stripes in a TV and listening to strange noises before a ZX Spectrum game was ready to be played. Many years later, when I already had a PC, I found an emulator which had a menu with hundreds of ZX Spectrum games. I just had to pick one from the list and start playing immediately.

I started using " instead of * for comments

images/thumbnail.jpg - Thumbnail

I have always used * to comment my code. I only used " for pseudo-comments or to leave small comment at the end of a line.

But I recently learned that using " makes much more sense.

abapBlame - My new open source project

images/thumbnail.jpg - Thumbnail

ABAP’s versioning system is terribly bad. Besides all its faults, it doesn’t provide an easy way to determine who did what and when. Git, which is a decent versioning tool, let’s you do this through its git-blame command.

Due to this, many ABAP programmers got used to sign the code with their name and date every time they add, delete or modify lines in a program. And the more that program is modified, the more difficult it becomes to read it and understand what’s there.