"
Supported by

I already miss you Sérgio!

My dear friend Sérgio Fraga passed away.

Abapinho also belongs to him.
Forever.

Thank you my friend for everything you were.

The RANGEs double negatives

RANGEs have interesting properties.

Ler o resto do artigo! »

SELECT WHERE field IN (*, x)

Ok let’s go slowly on this one.

Picture a scenario in which you have a customizing table with several levels of detail which may or may not be defined:

  1. BUKRS (empresa)
  2. WERKS (plant)
  3. LGORT (depósito)

When one of the fields is empty, we treat it as a wildcard, meaning all values are valid.

Ler o resto do artigo! »

Insert without raising exception in internal table with unique key

How many times in your ABAP consultant life did you have to deal with dumps happening as a consequence of a program trying to insert duplicate lines into an internal table defined with a UNIQUE KEY?

Enough.

Ler o resto do artigo! »

Manually populate a LISTBOX

In 2012 I wondered why LISTBOX is so rarely used. I taught how to use it with standard data elements, which automatically populate it. Today I’ll teach you how you can populate it yourself.

Ler o resto do artigo! »

SELECTION-SCREEN FUNCTION KEY N

There’s so many things you can do on the selection screen. Here’s another one: five buttons in the toolbar.

Ler o resto do artigo! »

Send emails to a distribution list

When you need to send an email to multiple email addresses, the usual approach is to store that list of email addresses in a custom table and then add each one as recipient to the BCS request.

But I recently learned a much nicer way to achieve the same result.

Ler o resto do artigo! »

Change selection screen texts without hard coding them

Even though many ABAP programmers tend to forget this, the less texts you hard code in your program the simpler it will be to translate it.

Here’s a simple but rather obscure way to manipulate selection screen texts while still being able to translate then. This way you can, for example, prefix them with icons.

Ler o resto do artigo! »

Call RFC functions AS SEPARATE UNIT

Imagine that you are calling an RFC function module several times in a row. Maybe you think that each call is completely independent from the others. It is not. The remote function group remains in memory and so does its global data. That global data will be reused on every call.

This is probably irrelevant in most cases. But there will be scenarios in which, for some reason, the function module being called is storing data in global variables which will negatively affect the outcome of the subsequent calls.

If you want to make sure you’ll have a clear slate every time the remote function module is called, just add AS SEPARATE UNIT to its call. It’s that simple.


CALL FUNCTION 'Z_DO_BUT_WITH_GLOBAL_VARIABLES'
DESTINATION rfcdest
AS SEPARATE UNIT.

Greetings from Abapinho.

Local dummy functions named after remote RFC functions

I recently started working in a new customer and noticed something they do here which I really liked. Whenever they need to call a remote function module by RFC in another SAP system, they create a local function module with the same name and leave it empty, except for a comment explaining that it is a dummy function for that remote function call.

Thanks to this simple trick, one can use the where-used tool to find out where it is being called. It’s great.

Greetings from Abapinho.

Goodbye Evernote, hello Osidian

After 10 years using Evernote, this year I finally started looking for better alternatives. At first Evernote was great. But it never evolved and the world moved on. So many new concepts have appeared: jardins digitais, backlinks, Zettelkasten, Evergreen notes, MOCs, etc. And Evernote is still the same, forcing you to be a note taker instead of a note maker.
Ler o resto do artigo! »

Reset SAP note implementation

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.

Ler o resto do artigo! »

Farewell Evernote, hello Notion

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.

Ler o resto do artigo! »

Table lookup without having to deal with CX_SY_ITAB_LINE_NOT_FOUND

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

Ler o resto do artigo! »

Convert amount to numeric external format

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?

Ler o resto do artigo! »


About Abapinho
Abapinho runs on WordPress
Articles (RSS) e Comments (RSS).