SAP Expert continues a series of articles that cover methods of aligning objects across the SAP multisystem landscape.
Today we will talk about Substitutions and Validations.
You know that Substitutions and Validations are tools that allow you to easily configure non-standard logic in different processes, mostly around Finance and Controlling. There are different processes that call up substitutions and validations.
You can get an overview of them if you start transaction GGB0 for Validations and GGB1 for Substitutions. These are technical configuration details. You also need to activate these substitutions and validations in different transactions, depending on the process you are working on.
Each substitution or validation, in its turn, may consist of several steps. Each validation step contains Prerequisite, Check and Message. Each substitution step contains Prerequisite and Substitution.
The most common use of substitutions and validations is finance document entry. If we talk about them, then you need to activate substitutions in transaction OBBH and validations in transaction OB28.
OBBH and OB28 allow you to assign different substitutions and validations in two dimensions:
Don’t forget to set up the activation indicator in the right part of the table.
Once you assign substitution or validation on OBBH / OB28, you can double-click the cell to get to configuration of it. This screen is similar to GGB0 / GGB1, but only gives you an overview of Financial document entry process.
When you save records in OBBH / OB28 in the Development system, the system will ask you for a customizing transport request. This is the transport request that will store activation of your substitutions and validations. Is it enough?
You also need to transport the logic of substitutions and validations.
It is a good idea to create (or request creation) of a transport request beforehand. This should be a Workbench request in this case.
In order to include substitution or validation into your transport, double-click the line in OBBH / OB28, or go into GGB0 / GGB1.
In the tree Processes / Callup point / Validation / Step / Prerequisite, you need to position your cursor on the validation (substitution) node.
Now go to menu Validation (or Substitution) – Transport.
On the next step the system will give you an option to choose objects to include in the transport request.
For substitutions these are:
I would recommend you to untick the first and last checkboxes, unless you use rules in your system. As for sets, it depends on the way you use them. Sets is a very powerful tool that gives you flexibility in substitution and validation maintenance directly in Production system. But if you maintain sets in Production, it is not a good idea to move them from Development system with the transport, because it may affect the content of each set used in particular substitution and validation.
For validations, options for transporting are the same as for substitutions, plus:
Messages / Message Class used in validation is one of few cases when you can maintain a developer-specific object (i.e. the ones that usually require a developer key) without developer key. So if you created new messages for your validations, you need to include them in the transport request too.
When you ticked or unticked checkboxes, click the Execute button and the system will ask you about the workbench transport request.
Usually Workbench Requests are used for a cross-client object. It means that usually you do not need to import Transport Request into a different client of the same system. However, the story is different for Substitutions and Validations.
Once you included Substitution or Validation in the Workbench request as described above, you need to import that request into the target client, even if this client is in the same system. To do so, use transaction SCC1.
And, of course, don’t forget to import the transport with activation of Substitution or Validation into the target system too.
Congratulations! You can now test your substitution or validation, and then move the transport into a different system of your system landscape.