SAP IdM repository constants explained
In SAP IdM there are 3 types of repository constants that can be defined on the repository type level. There are various scenarios, where these 3 types are applicable. Since the official SAP documentation is covering only the theory behind, in this blog post we would like to have a more practical approach on the topic.
As mentioned in the SAP Official documentation, repository constant is specific for each repository of the repository type, for which it is defined. Usually it is visible in the SAP IdM Admin UI, but not always, as we can see in the following example.
EXAMPLE 1. You create a constant of type Repository Constant with name REP_CONSTANT.
The constant will be visible in the admin UI only in the repositories which are created after the declaration of the constant. It would not be visible for repositories created before the settlement of this repository constant.
In the following screenshot you can see a repository, which existed before the creation of the constant:
Then another repository created after the declaration of the constant:
If a constant is changed for one of the repositories, where it exists, in the UI, the constant value for the repository type will not be affected by that change. And vice versa, if you change the repository constant value on the repository type, then this value will not be reflected in the separate repositories created before the change of the constant. The new constant value will be applied only to new repositories from this repository type.
Repository type constant
For this constant type, the SAP Official documentation is stating that the ‘Repository type constant’ is common to all repositories of this repository type. Such constants are only defined on the repository type and cannot be overridden. For example: process references (event processes), job references. This repository type constant is maintained only through the Developer Studio, where the repository type is declared. These constant types are never visible in the SAP IdM Admin UI.
Repository type constant with override
For this type, checking the SAP Official documentation we can see that it is common to all repositories of this type but may be overridden on a given repository through the SAP Administration UI. By default, a repository type constant with override has the same value for all repositories of this type, but it can be modified for each repository. It is always visible in the SAP IdM Admin UI. For more clarity lets look at the example below.
EXAMPLE 2. We are creating a constant of type ‘Repository Type Constant With Override’ named REP_TYPE_CONST_WITH_OVERRIDE:
Here, if we compare the new constant with the ‘Repository constant’ from the first example, the new constant will be visible in all repositories for this repository type no matter of its creation date:
Something important to know is that if a constant value is not changed through the SAP IdM Admin UI, then its value is controlled from the repository type. However, if you change such a constant through the SAP IdM Admin UI, its value is applicable only for the repository where you change it. The value is not applied back to the repository type.
The constant will remain unchanged:
Following this example, if you change the value in the Developer Studio, the changes will automatically be applied to all unchanged repositories in the Admin UI.
The following graphics give a better overview of the explained topic:
We have a repository type with some constants. Repository1 is created in the Admin UI after the definition of the constants and logically only the constants from type ‘Repository Constants’ and ‘Repository Type Constants with Override’ are visible.
Then we add new constants to the repository type and we create another repository (Repository2) after that:
The result is that Repository2 has all constants of type ‘Repository Constants’ and ‘Repository Type Constants with Override’, while Repository1 has only one new constants of type ‘Repository Type Constants with Override’.
In this blog you learned more on the topic of repository type constants – how they are used practically and what is the difference between the 3 types. Using a well-balanced combination of the above-mentioned constants could give you a very good maintainability for even the most complex SAP IdM projects. I will be more than happy to hear from you how you use this concept in your ongoing implementations and what is your impression from the blog post in the comment section. Additionally, if you would like to share additional scenarios or ask question, do not hesitate to do so.