Top 10 books to learn SAP ABAP

Many connections asked us for best resources or books to learn SAP. So we decided to start with SAP ABAP and find out what are the best resources to learn SAP ABAP.

While writing this blogpost I wondered, how people spend thousands of dollars in SAP Certified classes just to scratch the module little bit, while there is so much knowledge packed content available on internet for literally few bucks.

We talked with many experienced consultants about how they learn ABAP apart from initial entry level courses/classes. And this blogpost is the result of the answers we got. In this blogpost we have curated list of top 10 books to learn SAP ABAP.

  1. Beginners guide to SAP ABAP

As the name suggest, This book will help you to learn SAP ABAP from basics. If you are just starting your ABAP career, then this book will help you to start it with right way. Many experience consultants also have these kind of books handy to revisit basics. In SAP world many times we stuck in projects where we end up working on very small area of entire module for very long time. So keeping these kind of books handy helps a lot.

Below are the points discussed in the book:

• Taking your first Steps.
• • Create ABAP Dictionary Tables and Objects
• Create programs in a flash with the ABAP Editor
• • Define variables for calculations
• Create and modifying character strings
• • Learn to debug your programs
• Perform calculations with quantities, currencies, date anf time fields
• • Read & Update data in a database table
• Learn Open-SQL
• • Create program flow control and logical expressions
• Build selection screens
• • Manage and modify internal tables
• Modularize your programs

Get this book here.

2. ABAP Development for SAP HANA

This will help you to build SAP HANA optimized ABAP applications. If one want to learn how ABAP programming is changed in HANA, then you can definitely give this book try.

What you will learn:

  • ABAP database connectivity (ADBC)
  • ABAP-managed database procedures (AMDP)
  • SQL and SQLScript
  • Data modeling
  • Core data services (CDS)
  • Native SQL and ABAP SQL
  • Business object processing framework (BOPF)
  • ABAP Test Cockpit
  • Runtime statistics and analysis
  • SAP BTP, ABAP Environment

Get this book here.

3. Practical guide to SAP ABAP: designing development debugging

“One glance at a book and you hear the voice of another person, perhaps someone dead for 1,000 years. To read is to voyage through time.” – Carl Sagan

This quote tells us that how we can learn from others, people who put decades of hard work into pages of book. And by just reading these books if you can gain the years of knowledge then why not read as much as possible.

This book dive little deeper into ABAP. it will teach you right approach of debugging, how to use SAP data dictionary in right way, expert ABAP development techniques.

Get this book here.

4. ABAP Cookbook: programming recipe for everyday solution

This book will help you find answer to complex programming issues in persistence programming, interface programming, security & tracing techniques.

What you will learn with this book:

  • String processing techniques
  • Dynamic and reflective programming
  • ABAP and Unicode
  • Database programming
  • Transactional programming
  • XML processing in ABAP
  • Web services and programming with the ICF
  • Email programming
  • Security programming
  • Logging and tracing
  • Interprocess communication
  • Parallel and distributed processing with RFCs

Get this book here.
Also read: Currencies in the SAP ECC and their impact on organizational structure
5. SAP HANA SQL Script programming

This book will teach you the complete SQL script programming.

  • Role and use cases of SQL script programming
  • Become expert in SQL script programming
  • SQL script practical applications
  • ABAP managed database procedures (AMDP)
  • Debugging techniques to analyze SQL script

Get this book here.

6. SAP ABAP Programming for beginners

This is one video course from Udemy. We don’t find video formats good source of learning for life long knowledge, because there are several reasons like if you watch something in video that time you literally see things happening and you left with zero interest doing it again. Very rarely you will rewatch any video. When in need it is hard to find right topic to watch again.

On the other hand, when you read books it urges you to follow them in system. It is easy to carry and refer at any point of time in any device. When you stuck anywhere, you know where to look into book. Usually books are referred again and again and it truly helps you absorbing the knowledge. Anyway, still we found this course useful and below are the things you will learn:

As mentioned in the course name this is for beginners.

  • How to write & modify ABAP program
  • Learn to build Reports, Interfaces, Includes, Forms, FM etc.
  • Practical step by step examples to write programs

7. SAP UI5 The comprehensive guide

Now this is the need of hour for every ABAP Consultant to learn few things about SAP UI5. This book will help you understand UI5 from basic (Hello world, example) to advance (deep dive).

What you will learn:

  • Design and build apps
  • MVC
  • Models and data binding
  • OData
  • CRUD and REST
  • Debug and test
  • App deployment
  • Eclipse
  • SAP Web IDE
  • SAP Fiori
  • SAP HANA Cloud Platform

Get this book here.

8. What on earth is an SAP IDOC

No matter how advanced APIs are nowadays. But one thing is clear that IDOCs are not going anywhere in near time. one of the most convincing evidence is, IDOC is still most searched term on google, related to SAP. So you can understand how extensively IDOCs are used across modules. No matter in which module or area of SAP you are working, you will always be in touch with IDOCs (this was the response from most of the consultants we talked to).

This book will help you to get started with IDOC. It will touch every aspect of IDOC that you should know. It will make you enough knowledgeable to handle IDOC issues or to build IDOC based interfaces.

What will you learn:

  • Fundamentals of Inbound & Outbound IDOC interfaces and configuration
  • Learn how to build interface with ALE & EDI
  • Troubleshoot common post implementation challenges
  • Quick reference guide to common IDOC transaction codes and reports

Get the book here.

9. Mastering SAP ABAP

As name suggest this book is for Associate consultant, who already spend some years in writing ABAP programs. This book will introduce you to the latest ABAP techniques using practical examples. Tools available for import data from and to different environments, tools for manipulating XML, building stunning UI5 interfaces.

What you will learn:

  • Create stable and error-free ABAP programs
  • Leverage new ABAP concepts including object-oriented programming(OOP) and Model-View-Controller (MVC)
  • Learn to add custom code to your existing SAP program
  • Speed up your ABAP programs by spotting bottlenecks
  • Understand techniques such as performance tuning and optimization
  • Develop modern and beautiful user interfaces (UIs) in an ABAP environment
  • Build multiple classes with any nesting level

Get the book here.

10. ABAP in the Cloud

we don’t have too much material available so far to learn ABAP for cloud. This books stands out if someone wants to deep dive into ABAP in Cloud. You will find out how ABAP is changed in cloud. End to end guide to build SAP FIORI Apps. How to connect on-premise and cloud systems with external APIs.

What you will learn:

  • ABAP Development Tools in Eclipse
  • SAP BTP, Cloud Foundry environment
  • ABAP RESTful application programming model
  • Application development
  • Backend services
  • SAP Fiori
  • Consuming APIs
  • Identity and access management
  • Application lifecycle management
  • Monitoring and security

Get the book here.

So these are 10 books/resources we found must read for every Consultant who wants to have enrich career in SAP ABAP Module. All of this material is so cheap compared to the value they are providing. What you can learn reading even one book can be equivalent to years of work, if you try to learn these things on your own.

We often find that people will blow off money buying meaning less stuff but feel guilty to invest in learning. Many will run out of date skills and compromise on pay checks, but never try to learn new cutting edge skills.

There are many innovations happening every day, each passing day making hundreds of old technologies, software making out of date. We cannot be doing everything or track all the changes and that’s where books help us to catch up the speed.

Let’s end this post with the quote of Jeanette Winterson

“Books and doors are the same thing. You open them, and you go through into another world.”

Subscribe to our newsletter to receive weekly blogpost update.

If you enjoy the blogpost, then you can stay connected with us on below platforms:


LinkedIn FICO Page

LinkedIn ABAP Page

LinkedIn Logistics Page


Read More
SAP College January 27, 2022 0 Comments

How to use user exit in substitution and validation rules?


We know that substitution and validation rules are used to validate and substitute data from master data & transactional data in SAP Finance Module. It is widely used in across sub-modules as it gives more flexibility to functional consultant further to end users via set maintenance.

I am presuming that you already know about substitution & validation rules, if not you can learn through these slides to understand basics of validation & substitution rules.

Steps in validation & substitution rule:


  1. Prerequisite
  2. Check
  3. Message

Substitution –

  1. Prerequisite
  2. Substitute

We can easily understand the function of both rules with below diagram:

We have option to put user exit in check step of validation and substitute step of substitution

So prerequisite remains open for use in both cases, so once the prerequisite rules are being match then only user exit will trigger to make changes (substitution) or to decide whether error msg should be displayed or not (validation)

Validation & Substitution rule transaction codes

You can remember transaction codes in below sequence

GGB0 – Validation rule creation

GGB1 – Substitution rule creation

GGB4 – Assignment of Validation & Substitution rules

These three transactions you all need for validation & substitution rules.

How to check user exit in validation/substitution

Let’s go to GGB0

GGB0 – Transaction code

This is one validation rule, where in check step, user exit ZEVAL is used.

By clicking on check, you can go inside check condition:

GGB0 – Transaction code

Select the user exit and click on ABAP Routine (as mentioned above)

And you will be redirected to the section code for this user exit.

ABAP Editor

Also Read: Everything about OB52 authorization group

Here you can setup breakpoint, to debug the errors or to find out how user exit is working.

But this should be somewhere assigned, for system to know which program to check for user exit. And that we will see now.

How to create user exit for substitution and validation in SAP FICO?

In GGB0/GGB1 transactions, we have predefined list of user exit to select from. But that should be created somewhere, right?

Go to transaction GCX2

GCX2 – Trasaction Code

In this transaction code GCX2, you have to assign GBLR (Validation) & GBLS (substitution) Application area to z programs in which ABAPer will be writing code for all user exits.

To create z program, you can copy standard program RGGBR000 

ABAP team will write user exit name in subroutine ‘GET_EXIT_TITLES’,

Under user exit code will be written as per the specification / requirements.

So in our example we used user exit ZEVAL. This name will be written in program assigned above in (GCX2). In this program there will be blocks of code for multiple user exits. In our case system will only run the program block of code written for ZEVAL user exit.

This is how user exit is link to program and it is used in substitution and validation rules.

This brings us to an end. Hope you enjoy and learn something. We publish such blogs once in every week, if you want to get notified of new blogposts, then you can register to below newsletter:

You can also stay connected with us on below platforms:


LinkedIn FICO Page

LinkedIn ABAP Page

LinkedIn Logistics Page


Read More
SAP College January 13, 2022 0 Comments

Everything about OB52 authorization group

I am sure many of you know that in OB52 SAP has provided option to keep two sets of posting period open at a time. Intention behind this is to help month end / year end closure activities. With the help of this function, first set of period can be closed for all end users and second set of period can be open for specific users to perform month end / year end activities smoothly. Now I am also sure that many of you don’t know how to do this setup. How to create Authorization group? How to assign authorization group to users? If you don’t know answer of these questions, keep reading..

Why two set of posting periods required in SAP FICO?

Let’s consider one scenario to understand importance of this second posting period with authorization group. In many big organizations month end / year end processes run through background job. Now usually posting periods closed for previous month in first five days of new month. Suppose a posting period of Nov closed on 4th Dec. users keep posting transactions to last posting period (Nov) till the very last moment of 4th Dec. and then suddenly the posting period is closed for everyone. Now backend job runs at a specific time, so in this case these jobs don’t get time to settle newly posted values on 4th December and so it starts failing next day onwards.

This is very typical and frequent scenario in many organizations. And this can be easily sorted out with the help of special posting period with authorization group.

How to setup authorization group in OB52

If we check in OB52 for authorization group field there is no F4 (search help) button to select authorization group.

So it is confirmed that it is freely definable field. Or user is able to enter any 4 digit alphanumeric key as authorization group.

OB52 Transaction code

So here I have entered AE00 as authorization group for my company code. (We will come back to this part later)

There is one object SAP has provided to control posting periods i.e. F_BKPF_BUP (Accounting Document: Authorization for Posting Periods) in this object we will enter our authorization group i.e. AE00 (same text entered in OB52)

Further this Authorization object F_BKPF_BUP is assigned to security role

And the security role is assigned to users. (We will see this with SAP Screens also in few seconds)

Let’s understand this with below diagram:

Assignment linkage

From above graph, we have seen how to create authorization group in OB52. Now we will see how to assign authorization object to security roles.

Read eBook: Controlling Profitability Analysis – Comprehensive guide to SAP COPA

How to assign authorization object to roles?

Here we have to ask security team to create a role with list of MEC/YEC transaction codes. Or whatever transaction codes user will be performing.

We will ask Basis team to assign authorization object F_BKPF_BUP to newly created security role with authorization object AE00.

In PFCG transaction Basis team will assign this object F_BKPF_BUP

PFCG – Transaction code

In above screen we can notice authorization group is entered in authorization object and it is assigned to security role ZABC_POPS.

We will need basis help to perform this activity, but it is also important for functional consultant to know the end to end process.

We can have different authorization group for different users, for different tcodes etc. it will just increase the number of security roles.

Also Read: Note to payee functionality in SAP DME

How to find which users have authorization to post in special posting period? Or

How to check OB52 authorization group assigned to which users?

Well this is actually tricky and most asked question, because creating authorization group and assign it to roles and further to users it straight forward, but we will see how to reverse engineer the process.

Below are the steps to find out users which have authorization group:

We have authorization group – AE00 & we know authorization object is F_BKPF_BUP

First thing we will find out the roles that have authorization object F_BKPF_BUP

Transaction code SUIM

SUIM Transaction code

Select roles by authorization object

SUIM – Search by authorization object

Enter authorization object and value in our case we want to search AE00

We will be prompted with list of roles that have above authorization object:

SUIM – Roles result

Now we have to see what are the users assigned to these roles, they should be able to use second set of posting periods.

To do so go to SUIM transaction code and search users by role

SUIM – Search user by roles

Execute it

SUIM – Search user by roles

Enter all roles and execute it

And here we go with the list of users who have authorization to post accounting documents in second set of posting periods.

List of users assigned to roles


These are so useful technique that can be used across modules in SAP. Hope you enjoyed the post. you can save the link of this post or bookmark it for future reference. Also sign up to below newsletter to get weekly blogpost update.

What we learn in this blogpost:

  • Two set of posting periods in OB52
  • Authorization group setup in OB52
  • Assignment of authorization object to roles
  • Check OB52 authorization group assigned to which users

If you enjoy the blogpost, then you can stay connected with us on below platforms:


LinkedIn FICO Page

LinkedIn ABAP Page

LinkedIn Logistics Page


Read More
SAP College January 9, 2022 0 Comments

Everything about derivation rule in SAP Controlling Profitability Analysis (Derivation rule in SAP COPA)

Derivation rule is widely used function in SAP COPA. In this blogpost we will explore all the aspects of derivation rule. Below is the taste of blogpost:

  • Introduction & use of derivation rule
  • Types of derivation rules
  • Step by step configuration of derivation rule
  • Conclusion

Introduction & use of derivation rule

In COPA documents we know that system collects characteristics and value fields. Derivation rule helps to determine/derive characteristics by having different conditions and rules. It also helps to override what has been derived by the system, you can create a derivation step to determine the characteristic values during posting of the CO-PA documents.

Disclaimer: This blogpost is a chapter of eBook Controlling Profitability Analysis. In order to consume this blogpost more efficiently, you should have fair understanding of COPA. If you are new to SAP COPA or want to deep dive into this sub-module, then you can consider reading this eBook.

Below infographic helps to understand, how derivation helps to determine/manipulate determination of characteristics in COPA document.

Derivation rule structure in SAP COPA

Note: Derivations are used only for characteristics. You can’t modify value fields using derivations.

The CO-PA derivations are defined by five different types of derivation steps:

  • Derivation rule – This rule is based on an “if-then” where you define a condition and a derivation to use if the condition is met.

In above image, we can notice product group and strategic business unit is maintained in combination. So it will be like, if product group is ‘100’ then derive strategic business unit ‘electronic’

  • Table lookup – System will read a specified table that contains a key that must exist as a characteristic, and then it will derive the field content from this table to the characteristic if the characteristic has the same definition as the table field. It can be used, for example, to derive a value from the material master table that is not present in the posting document. (it will be more clear when we will see config in upcoming section)
  • Move This step will move a characteristic value or a constant to a target field.
  • Clear This step will delete the characteristic value.
  • Enhancement If you want to create a custom program to define the characteristic derivation, use COPA0001.

In below sections we will see the configuration for each characteristics derivation type.

Also read: Functioning of CO-PA in make to order scenario

Step by step configuration of derivation rule

Access the activity using the following navigation options:

SAP Easy AccessControlling -> Profitability analysis -> Master data -> Define characteristics derivation
Transaction codeKEDR

Click on the create button

Select the derivation rule and hit enter

Derivation rule config screen SAP COPA

You will be prompted with the above screen

In this screen, you’ll enter the step description and then build the derivation rule. In the Source Fields area, you select the “If” condition for the derivation, and in the Target Fields area, you select the “Then” field.

After defining the “If and Then” for the derivation rule, click on Maintain Rule Values button

 to update the values for the Source Fields and Target Fields.

Here you can see the rule, as per the rule, whenever the characteristic customer containing value 105 then the sales district characteristics will be updated as NORTH

Read eBook: Manual and electronic bank reconciliation in SAP

Returning to the first customizing screen, two more tabs are left to discuss: Condition and Attributes.

In the condition tab, you can further restrict the derivation rule by defining user filters for the derivation selection. The last tab, Attributes, shows additional options for the derivation rule.

With this condition, now the above derivation rule only be valid for IN country key

In the Attributes tab, you can define whether the system will issue an error when the derivation doesn’t find a value to derive, define if the validation will have a starting date, and restrict the validation by removing the from-to option.

Common error in practice
If you indicate that an error will be issued when no value is found for the derivation, it will block the creation of the CO-PA document, and consequently the FI document. Make sure this is the desired outcome before choosing this option.

Table Lookup

Click on the create button

Select the table lookup and hit enter

Enter the table name, from which table you want the value in COPA field.

Source Fields

In the below image we can see that following information has to be maintained:

  • Origin (Table Name) and Origin Field (Field Name) from standard table
  • Origin (CO-PA) and Origin Field (Field Name)

This information works as the basic condition, in the below example we can see the KNA1-KUNNR as source in standard tables and COPA-KNDNR in CO-PA Tables. This means the value in COPA-ARTNR is to be passed on to table KNA1 under field KUNNR to identify the information under target field.

Target Fields

In the below image we can see that following information has to be maintained:

  • Origin (Table Name) and Origin Field (Field Name) from standard table
  • Origin (CO-PA) and Origin Field (Field Name)

This information under KNA1-KTOKD i.e. Customer account group is identified in the table for KTOKD value available from source field and is passed on to KDGRP field under CO-PA.

This rule will get the customer number from COPA document and search it in KNA1 table, it will find out the customer account group and enter in COPA Field KDGRP.

The functioning of other two tabs condition and attributes is same here also; in condition tab we can assign more condition to apply this rule, e.g. making this rule valid only for specific sales org.

  1. Move

Hit enter

Here we are moving the product number to material number field

And as required condition tab is also available as this kind of rule cannot be applicable for everyone you can make it specific to any smallest object. E.g. you can validate this rule to one customer also.

  • Clear

Select clear

As the name suggest, it will remove the values from field region in COPA.

These are all use cases and config of derivation rule in COPA.


Derivation rule is very important function of SAP COPA and it is used very often. At start the maintenance of rule may seem complicated, but once you configure it and test the result it becomes very easy and useful tool. You will find this structure of derivation rule configuration in multiple submodules like treasury & logistics.

Watch same blogpost in video format::

Hope you enjoyed reading the post. You can subscribe to our newsletter to get update of new blogpost.

If you enjoy the blogpost then you can stay connected with us on below platforms:


LinkedIn FICO Page

LinkedIn ABAP Page

LinkedIn Logistics Page


Read More
SAP College December 27, 2021 0 Comments

SAP New Asset Accounting in S4HANA – Transaction type

First let’s discuss transaction type in ECC.

What is the use of transaction types in Asset Accounting?

On high level, we can say that transaction types in Asset Accounting are used to differentiate business transactions like acquisitions, retirements etc. if we see the configuration screen of transaction type, one can notice that it controls Debit/Credit posting of asset, document type, asset history sheet group etc.

Transaction type configuration Tcode AO73
Transaction code AO73

Transaction type configuration Tcodes

  • AO76
  • AO75
  • AO74
  • AO73

Apart from this, there is one more important function of transaction type in ECC, i.e. to restrict postings to specific depreciation area.

How to restrict transaction type to depreciation area?

To use this feature companies, have to configure thousands of transaction types.

Transaction code OAYA to restrict transaction type to specific depreciation area:

Transaciton code OAYA
Transaction code OAYA

Let’s spend few seconds to understand why it is important to restrict some of the postings to specific depreciation area.

You know that, we assign leading and non-leading ledgers to depreciation areas. And accordingly depreciation areas post to that leader. Further ledger represents the valuation area e.g. Local Valuation, US GAAP valuation, Group Valuation. In many instances, user has to post specific entries in specific valuation area. In those cases, depreciation area leads the way by using correct transaction type.

In ECC Asset Accounting there is not dedicated transactions that allows to post documents ledger wise. So the transaction key plays the vital role in posting documents to appropriate ledgers.

Flow of depreciation area determination

Transaction type determines depreciation area to be posted and depreciation area determines ledger to be posted.

Also Read: Note to Payee Functionality in SAP DME

This is cool to know the structure, but multiple countries have multiple chart of accounts, which further have many depreciation areas and this leads to creation of many transaction types depending of the geographical size of organization.

This problem has been solved in S4HANA.

Asset Accounting Transaction Types in S4HANA

In new Asset Accounting, it is not possible and also not necessary to restrict transaction types to depreciation areas. This is not necessary since, in end user transaction codes itself SAP has provided option to restrict the posting to depreciation area or accounting principle level. This means you have option to select the depreciation areas to be posted while posting document.

This change has significantly reduced the number of transaction types that need to be defined in the system along with the time consultant has to spend configuring these transaction types.

Let’s see some end transaction codes in Asset Accounting:

Transaction code ABAON

Transaction code ABAON
Trasnaction code ABAON

You can notice in above screenshot the highlighted area shows the option of manually entering Accounting principle (Ledger) and Depreciation area.

So no need to stay dependent on transaction type. Accounting principle itself determines ledger to be posted.

Read eBook: Manual and electronic bank reconciliation in SAP


In S4HANA transaction type is still relevant for its configuration control of AO7* setup. But the dependency to post ledger specific documents is being reduced. This become possible because S4HANA has option to have multiple leading depreciation area at a time and all depreciation area can post real-time.

If you want to know more about changes in S4 compared to ECC, you can give try to this eBook.

Also enjoy this free eBook – End user manual for New Asset Accounting.

This brings us to end of the blogpost. Hope you enjoyed reading it. You can subscribe below to get email of new blogpost. Also you can connect with us on below platform.

If you enjoy the blogpost, then you can Subscribe to our newsletter and receive email notification for new blogpost, also stay connected with us on below platforms:


LinkedIn FICO Page

LinkedIn ABAP Page

LinkedIn Logistics Page


Read More
SAP College December 22, 2021 1 Comment