In function group
QPBU
there is a function module
QPBU_LOT_INSERT
with the following code:
*****************************************************************************
BAdI
Factory method for BAdI inspectionlot_update
if g_exit_il_up is initial.
call method cl_exithandler=>get_instance
exporting
exit_name = 'INSPECTIONLOT_UPDATE'
changing
instance = g_exit_il_up.
endif.
call method g_exit_il_up->create_in_update
exporting insplot = qals_new.
ENDFUNCTION.
So in SE19 I created and activated an implemntation of the interface IF_EX_INSPECTIONLOT_UPDATE and the name of my implementing class is:
ZCL_IM_MSEGQALS
Then I watch this code fire inside the FM QPBU_LOT_INSERT in the (update) debugger:
**********************************************************
call method cl_exithandler=>get_instance
exporting
exit_name = 'INSPECTIONLOT_UPDATE'
changing
instance = g_exit_il_up.
endif.
************************************************************
and it correctly fires this code inside cl_exithandler=>get_instance:
**************************************************************************
CALL METHOD cl_exithandler=>get_class_name_by_inter
EXPORTING
instance = instance
IMPORTING
class_name = class_name
CHANGING
exit_name = exit_name
EXCEPTIONS
no_reference = 1
no_interface_reference = 2
no_exit_interface = 3
data_incons_in_exit_managem = 4
class_not_implement_interface = 5
OTHERS = 6.
CASE sy-subrc.
WHEN 1.
RAISE no_reference.
WHEN 2.
RAISE no_interface_reference.
WHEN 3.
RAISE no_exit_interface.
WHEN 4.
RAISE data_incons_in_exit_managem.
WHEN 5.
RAISE class_not_implement_interface.
ENDCASE.
******************************************************
But this method is returning the class_name:
CL_EX_INSPECTIONLOT_UPDATE
instead of MY implementing class:
ZCL_IM_MSEGQALS.
So I'm clearly doing something stupid because I'm not understanding something I've neglected to do.
Please tell me what it is.
Thanks very much
djh