CALL BADI statement. The exact call order can be determined in the
definition of the corresponding BAdI
implementations , if the predefined BAdI BADI_SORTER of the
enhancement spot of the same name was implemented for the current BAdI.
If the referenced BAdI object does not reference object plug-ins, or the
badi is initial, then the statement has no effect.
In a dynamic BAdI call, a handleable exception is always raised if
there is an invalid BAdI reference in badi .
If a method is added to a BAdI afterwards, it can be missing in a BAdI
implementation. In this case the call is executed as if the method
existed with an empty implementation. Actual parameters that are bound
to EXPORTING or RETURNING parameters passed by value are
initialized. All other actual parameters remain unchanged.
System Fields
With a regular method call, the system field sy-subrc is either
set to 0 or, when handling non-class-based exceptions, it is set to the
value specified after EXCEPTIONS .
Latest notes: BAdI objects and BAdI references can only be generated
using the statement GET BADI .
In the terminology of the
enhancement concept , the statement CALL BADI is known as an
enhancement spot element
invocation .
The call of a BAdI method of a BAdI defined for single use behaves as
a method call with meth( ...) : the called method must exist. In
contrast, the call of a BAdI method defined for multiple use rather
corresponds to the triggering of an event with RAISE EVENT : One
or more methods can exist, or no methods at all.
Runtime Exceptions
Catchable Exceptions
CX_BADI_INITIAL_REFERENCE
Reason for error: The reference variable badi is initial either for
the static call, although the BAdI was defined for single use, or for
the dynamic call.
CX_SY_DYN_CALL_ILLEGAL_METHOD
Reason for error: Method does not exist at the dynamic call
Runtime error: DYN_CALL_METH_NOT_FOUND
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved