Custom fields in plant master WB01/WB02/WB03

Here is a quick walkthrough on how you can add custom fields in plant master transactions, using BAdI WB0X_ADD_CUST_DATA_E. You can also use this as a general guide for adding fields, to any supporting transaction, through classic BAdI. Some developers will also call this as a “screen exit”. First add custom fields to T001W table […]

Selection screen search help filtering

SAP has many fields that depend on other fields. We often need them on selection screens and expect their search helps automatically filtered by the value of the field on which they depend. This can be accomplished by generating the search help at runtime with a function module like F4IF_INT_TABLE_VALUE_REQUEST. But there is also a […]

Save attachment to GOS from SAPUI5 Fiori

Here is a simple walkthrough on uploading a file through SAPUI5 interface and saving it as a GOS attachment in SAP system. This example uses purchase order business object (BUS2012). If you plan to use another type of document, you should find corresponding business object and change it accordingly. Create a structure to transfer media […]

Experiment on performance: SELECT SINGLE vs FOR ALL ENTRIES, secondary index access

I believe our previous test on SELECT SINGLE vs FOR ALL ENTRIES did not surprise many of you because I see a tendency towards FOR ALL ENTRIES in programs I encounter. In previous scenario, we were able to access the search table with primary key but this may not be the case every time. Let’s see what happens […]

Experiment on performance: SELECT SINGLE vs FOR ALL ENTRIES

When all business requirements are met in a development, customer complaints always come down to performance. “Can’t this run any faster?” we always hear. Performance, in a technical point of view, is a broader concept that not just includes execution time, but also optimal use of system resources like memory and network load.  But powerful […]

ABAP by numbers: Length of decimal type

Inequality between length and maximum digit count of packed decimal type causes great confusion even among seasoned developers. ABAPDOCU explains the relation with a fairly complicated formula: Depending on the field length len and the number of decimal places dec, the following applies to the value range: (-10^(2len-1) +1) / (10^(+dec)) to (+10^(2len-1) -1) /(10^(+dec)) […]

Obligatory selection screen parameters

Almost every ABAP developer comes to a point where they require obligatory parameters along with user command logic in their selection screens. As you might already know, that’s a problem. Because obligatory parameters demand input on every action of user and interfere with user command logic, which results in a broken selection screen. Let’s see […]

ERROR_MESSAGE: Predefined exception for function modules and methods

No matter how many times mentioned before (thanks to Rahul Gopinath, Amit Behera, Srinivas Dummu and Mike), I still see sy-subrc check after a function module call without exceptions.

This is so wrong. According to ABAP keyword documentation: If no exception is raised, a call sets sy-subrc to 0. So in the above example, sy-subrc will always be equal to […]