Execute code after a COMMIT

images/thumbnail.jpg - Thumbnail

Remember how with CALL FUNCTION IN UPDATE TASK you could delay some actions until the moment of a COMMIT?

Tech Radar

images/thumbnail.png - Thumbnail

I found this amazing chart of SAP technologies.

FILTER

images/thumbnail.jpg - Thumbnail

The FILTER function is new and still relatively unknown. I will give you an example of how it can be used.

Set a baseline for your ATC

images/thumbnail.jpg - Thumbnail

Did you know that you can set a starting point for ATC and, thanks to that, be able to run ATC in legacy code?

Kintsugi

images/thumbnail.jpg - Thumbnail

When a porcelain object breaks in Japan, sometimes instead of throwing it away, they mend it. But they don’t mend it just any old way; they mend it with gold. This technique is called Kintsugi.

Why always MODIFY?

images/thumbnail.jpg - Thumbnail

It is a common practice in ABAP to use MODIFY instead of INSERT and UPDATE. Do you do it too? Tell me why. Is it laziness? Is it fear? Is it just a matter of “whatever”? Or is it more like “screw it”?

On broken windows

images/thumbnail.jpg - Thumbnail

The broken window theory says that if a window in a building is broken and not repaired quickly, people will be tempted to throw stones and break the other windows.

Everything Everywhere All At Once

images/thumbnail.jpg - Thumbnail

Sometimes it’s useful to look at two areas of the code at the same time. If the areas are in different classes, just open them both. But what if they’re in the same class? For example, if you want to make a method inspired by or related to another.

Case insensitive SELECTs

images/thumbnail.jpg - Thumbnail

In SAP it’s normal to have tables in the database with a NAME field and another NAME_SEARCH which is filled in with exactly the same thing as NAME but in upper case.

Then, when you want to do case-insensitive searches you use NAME_SEARCH. You don’t need to do this anymore.

It's normal to not get it right the first time

images/thumbnail.png - Thumbnail

In the ABAP world, the rule is to do it once and never touch it again. Once done, forever frozen. What nonsense.

Where? Who? What? How?

images/thumbnail.jpg - Thumbnail

You’ve been asked to create a new feature. You’re ready to build it. But hold your horses. Before you start, I suggest you find answers to a few questions. Finding a good answer to each of them is fundamental to ensuring that what you build is solid and elegant.

Reconstants

images/thumbnail.jpg - Thumbnail

In my current project constants are all over the place, with confusing or wrong names. It’s a mess. I’ve found a way to reorganize and rearrange the constants so that the new code can use pretty constants without messing up the old code, which can continue to use the confusing ones.

We finally have FINAL

images/thumbnail.jpg - Thumbnail

There’s nothing worse than seeing people abusing variables. They’re so delicate and yet so badly treated, poor things. Here’s a way to show them some love.

How do you like your blank lines?

images/thumbnail.png - Thumbnail

Everyone uses blank lines to better organize their code. But where to use them and how many? Let’s talk about that.

Eclipse converts database data into VALUEs

images/thumbnail.jpg - Thumbnail

Sometimes you need to take data from the database and replicate it declaratively in ABAP using the VALUE command. For example, to build ABAP Unit tests.