Conflicts
and Conflict Switches
Conflicts arise when two or more switches switch on
an implementation for the same enhancement section or 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 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:
● ON when all assigned switches are switched on
● OFF if at least one of the assigned switches is switched off.
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.
See also:
