Conflicts arise when two or more switches switch on an implementation for the same enhancement section or a single-use BAdI. Currently, when you switch on enhancements, a conflict can occur if there are multiple implementations for an enhancement option that allows only one implementation and those implementations are switched on simultaneously. This situation can arise for the statements ENHANCEMENT-SECTION and GET BADI (only for single-use BAdIs). You resolve conflicts by using conflict switches.
The switches must not be assigned to a business function.
Several normal switches can be assigned to a conflict switch. The state of a conflict switch depends on the state of the switches assigned to it. A conflict switch is:
Conflicts are resolved by the enhancement implementation element of the conflict-resolving enhancement implementation, which takes priority over all enhancement implementations that are switched on.
A conflict-resolving enhancement implementation is an enhancement implementation to which a conflict switch is assigned instead of a normal switch. The conflict-resolving enhancement implementation has to mirror the common semantics of all normal enhancement implementations that may be switched on simultaneously and thus be in conflict. An enhancement implementation becomes a conflict-resolving one depending on the switches that are assigned to the conflict switch.
In a conflict situation, a conflict-resolving enhancement implementation takes priority over normal enhancements. In the case of multiple conflict-resolving enhancement implementations, the one that resolves the most conflicts takes priority.
Conflict Resolution by Conflict-Resolving Implementation
You need to have a conflict switch and a conflict resolution enhancement implementation for every possible combination of normal enhancement implementations that may be in conflict when switched together.