Skip to Content
0
Former Member
Mar 02, 2007 at 07:58 PM

FM QPBU_LOT_INSERT is not seeing MY implementation of the SAP BADI

150 Views

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