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 […]
ABAP performance analysis with SAT transaction
Every once in a while, you will encounter ABAP programs taking too long to run. Your duty, as an ABAP developer, is to find the bottleneck. Sometimes it is as easy as debugging the program just once, or even just looking at the code. Sometimes not.. This is where SAT comes in. It is a […]
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CALL FUNCTION 'RV_INVOICE_CREATE' EXPORTING vbsk_i = vbsk_i TABLES xkomfk = xkomfk xkomv = xkomv xthead = xthead xvbfs = xvbfs xvbpa = xvbpa xvbrk = xvbrk xvbrp = xvbrp xvbss = xvbss. IF sy-subrc <> 0. * Error handling ENDIF. |
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 […]
Hello ABAP world!
Greetings to fellow SAP ABAP developers from around the world. I have just decided to start a new ABAP blog (yes, yet another) and this first post is here just to share my excitement. So why another ABAP blog? Of course I know there are already many ABAP blogs and tutorial sites who are actually […]