We use substitutions for various requirements quite frequently in SAP and face lots of issues while using them.
The objective of this document is to show the best practices, provide some useful tips while creating substitutions and to address some common issues. This document deals only with Substitutions in FI.
SPRO path:- Financial Accounting New -> Financial Accounting Global Settings New -> Tools -> Validation/Substitution -> Substitution in Accounting Documents
Transaction code OBBH, GGB1
A. Best Practices / Useful Tips:
Always simulate the substitution in the development system before it is transported to the Production System. SAP provides this beautiful functionality to simulate the substitution. This will bring out the errors in development system itself before it is transported to Production.
Click on the main Substitution Set and not individual step and then simulate as below
2. Activate Trace:-
Activate Trace is similar to Simulation. Activate Trace works at the time of posting the document. If the pre-requisites are met and fields are substituted, it will give the results as TRUE and also provide value of substituted field. If pre-requisites are not met, it will show result as FALSE.
Activate Trace as shown above. Then try to post a document (with FB01 for e.g.). If trace is activated for header level substitution, then as soon as you enter the header data, a screen will pop up which will show all substitutions at header level.
3. Activate Total Trace:
Activate total trace is similar to activate trace. The difference is that with Activate Total Trace all the substitutions (irrespective at header / line item( will be checked at the time of posting the document while in Activate Trace you can simulate specific at header / line item level.
4. Expert Trace:-
Expert trace is like debugging facility. You need to click on individual step and then activate expert trace. While posting the document, it will take you into the debugging mode if that substitution is triggered. This is an important functionality to analyze the substitution.
- Be careful with the transports. All the steps in the substitution is transported and not only the step which you created. Hence ensure that development and production versions are same and only difference is the step you created.
- Ensure all the related transports for sets, user exits etc. are transported to avoid any dumps in production system.
6. Program RGUGBR00:-
This program should be run in the target system once the substitution is transported. It re-generates the ABAP coding for Substitutions, Validations and rules. It is a good practice to run this program to avoid any issues.
B. Common Issues:
1. XXXX field not available for Substitution:
This is the most common issue faced my many of us. Standard SAP does not allow all the fields at header and line item level to be substituted since it can lead to inconsistency of data in other modules like MM, CO etc. The fields which are available for substitution can be seen in the table below,
GB01 – Classes for Boolean Formulas:
In the last column exclude,
– if it has X, then it means it is not available for substitution
– if it is blank, then it can be substituted
If you want to make the field available for substitution, then it can be done by removing the X from exclude field in table GB01. This can be done by making changes in the view VWTYGB01 using SM30 transaction code
- Please note that this table is cross client
- SAP does not take the responsibility for making these changes. refer SAP note 42615 for further details.
2. Substitution XXXX not found – Error No GB 127
I would call this error as fatal since this will not allow posting of any FI documents in SAP.
There are two TR’s created when you create the substitution for the first time
a. Customizing TR – for assignment of Substitution to the company code
b. Workbench TR – for transport of the substitution
You need to ensure that both the TR’s are transported and not only one. Also run the program RGUGBR00 once it is transported. Further all the related TR’s like for set, user exit etc. should be transported as well. This will avoid such kind of an error.
3. User exit assignment is missing after the transport has moved:-
Below are some of the common reasons because of which the user exit assignment might be missing in the substitution in target system.
a. The transport for user exit was not moved to Production system. This is the most common mistake.
b. Any transport related to changes in table GB01 (fields made available for substitution) was not transported along with substitution TR’s. Once this is transported, the assignment will appear.
4. When you double click on the user exit, it says ‘object not found’
Even though you execute program RGUGBR00 after transport movement, sometimes you get the error ‘Object not found’ when you double click on the user exit. In such a scenario, you need to execute below command in the program where all user exits for Substitutions are stored
Please provide your comments / reviews for any changes to improve the document so that it can be helpful to many.