SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. All rights reserved.ABAP - Keyword Documentation → ABAP - Dictionary →
Activating ABAP Dictionary Types
When a data type in ABAP Dictionary is activated, a runtime object is created that consumers such as dictionary objects, ABAP programs, or dynpros can use to effectively access all relevant type attributes. When a data type is activated, all objects that are dependent on it must be activated again as well.
A data type can only be activated if the dependent dictionary objects can be activated as well. However, if an incompatible change to a dictionary type produces an error in an ABAP program or dynpro, this does not prevent activation. This type of error is detected in the system the next time the program is executed or during an explicit syntax check. When changed dictionary types are transported to target systems, dependent ABAP programs and dynpros are activated by the transport as well. If an error occurs, the transport is reported as unsuccessful.
Each time a dictionary object is activated, a detailed activation log is created that can be evaluated if errors occur.
When a data type in ABAP Dictionary is activated, a runtime object is usually created in the name table (nametab), which the ABAP runtime environment accesses when the data type is used in an ABAP program or dynpro. The runtime object summarizes all important attributes of the entire data type. A runtime object has a time stamp for the time it was activated. If an existing type is activated, the corresponding runtime object is adapted and the time stamp is updated.
The program DEMO_GET_NAMETAB shows a read access to the runtime objects of any data types using the special methods GET_DDIC_HEADER and GET_DDIC_OBJECT of the RTTI. The names of data elements, structures, table types, database tables, database views, and CDS entities can be passed to the program, but not domains.
Activating Dependent Objects
If existing dictionary objects that are already used by other dictionary objects or ABAP programs and dynpros are activated, the dependent objects must be activated as well.
Activating Dependent ABAP Programs and Dynpros
ABAP programs and dynpros that are dependent on a changed data type in ABAP Dictionary are activated in the same system the first time they are used, and in the target system after a transport of the dictionary type once it has been activated. When a dictionary type is activated, the time stamp of its runtime object is adapted, as are the time stamp sources of all ABAP programs and dynpros that use this type, if a change relevant for a program or dynpro has been made. When a program or dynpro is used, or after it has been transported, this time stamp is compared with the current time stamp of its load and is generated again if necessary.
Activating Dependent Dictionary Objects
Dictionary objects that are dependent on a changed data type in ABAP Dictionary are activated with it immediately:
The status "partially active" means that a dictionary object could not be fully activated:
If an activation results in "partially active" objects, these must be located in the activation log. The causes of the errors must be eliminated and
must be activated again, until all involved objects have the status "active". If this procedure is not completed, dictionary objects keep the status "partially active". This actually often affects the data type that was originally changed, which is in fact fully usable.
The system program RUTMSJOB can be used to deal with "partially active" objects. It identifies "partially active" objects and proposes a cleanup if possible.
In a mass activation, a system program (RADMASG0) is used as a mass activator to activate a number of dictionary objects. The mass activator is provided with a list of the dictionary objects to be activated. A mass activation can be started as follows:
For mass activations that will take a long time, background processing can be used to execute the mass activator. In this case, the dictionary objects to be activated can be specified in an external table with type TACOB or in the TACOB table itself.
If dictionary objects have interdependencies or belong together, mass activation is preferable to activating them individually. The mass activator activates them in the correct order and avoids unnecessary repetitions.
Activations that would produce a cycle of technical dependencies between the runtime objects are not possible. In mass activations, cyclical dependencies that arise from semantic relationships between dictionary objects are resolved by step-by-step activation. Here, the semantic relationships are first bypassed and then reintroduced.
See also ABAP CDS - Cyclical Dependencies