2009 Aug 08 5:09 PM
hi guys:
I have created a Ehancement Spot 'ZBADI_SPOT_TEST' and a badi name 'ZBADI_DF_TEST1' with the t-code SE18.Then I
created a implementation 'ZBADI_IM_TEST1' with t-code SE19.But I come across a abap dump when call this badi,the code
is following.
data instance type REF TO ZBADI_IF_TEST1.
cl_exithandler=>get_instance(
EXPORTING
exit_name = 'ZBADI_DF_TEST1'
null_instance_accepted = SEEX_FALSE
IMPORTING
act_imp_existing = act_imp_existing
CHANGING
instance = instance
EXCEPTIONS
no_reference = 1
no_interface_reference = 2
no_exit_interface = 3
class_not_implement_interface = 4
single_exit_multiply_active = 5
cast_error = 6
exit_not_existing = 7
data_incons_in_exit_managem = 8
).
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
the following is the exception:
134 * check how many implementations exist for an exit
135 CALL METHOD cl_badi_flt_data_trans_and_db=>act_imps_per_flt_val
136 EXPORTING
137 runtime_call = seex_true
138 exit_name = exit_name
139 EXCEPTIONS
140 singular_exit_multiply_active = 1
141 no_active_implementation = 2
142 only_default_implementation = 3
143 OTHERS = 4.
144 CASE sy-subrc.
145 WHEN 0.
146 act_imp_existing = seex_true.
147 WHEN 1.
148 RAISE single_exit_multiply_active.
149 WHEN 2.
150 act_imp_existing = seex_false.
151 WHEN 3.
152 act_imp_existing = seex_false.
153 def_impl = seex_true.
154 WHEN 4.
>>>> RAISE data_incons_in_exit_managem.
156 ENDCASE.
Can any one tell me what is the reason and how to reslove this.Thanks.
regards
Jerry
Edited by: foxconn_jerry on Aug 8, 2009 6:20 PM
Edited by: foxconn_jerry on Aug 8, 2009 6:23 PM
hi guys:
I have created a Ehancement Spot 'ZBADI_SPOT_TEST' and a badi name 'ZBADI_DF_TEST1' with the t-code SE18.Then I
created a implementation 'ZBADI_IM_TEST1' with t-code SE19.But I come across a abap dump when call this badi,the code
is following.
data instance type REF TO ZBADI_IF_TEST1.
cl_exithandler=>get_instance(
EXPORTING
exit_name = 'ZBADI_DF_TEST1'
null_instance_accepted = SEEX_FALSE
IMPORTING
act_imp_existing = act_imp_existing
CHANGING
instance = instance
EXCEPTIONS
no_reference = 1
no_interface_reference = 2
no_exit_interface = 3
class_not_implement_interface = 4
single_exit_multiply_active = 5
cast_error = 6
exit_not_existing = 7
data_incons_in_exit_managem = 8
).
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
the following is the exception:
134 * check how many implementations exist for an exit
135 CALL METHOD cl_badi_flt_data_trans_and_db=>act_imps_per_flt_val
136 EXPORTING
137 runtime_call = seex_true
138 exit_name = exit_name
139 EXCEPTIONS
140 singular_exit_multiply_active = 1
141 no_active_implementation = 2
142 only_default_implementation = 3
143 OTHERS = 4.
144 CASE sy-subrc.
145 WHEN 0.
146 act_imp_existing = seex_true.
147 WHEN 1.
148 RAISE single_exit_multiply_active.
149 WHEN 2.
150 act_imp_existing = seex_false.
151 WHEN 3.
152 act_imp_existing = seex_false.
153 def_impl = seex_true.
154 WHEN 4.
>>>> RAISE data_incons_in_exit_managem.
156 ENDCASE.
Can any one tell me what is the reason and how to reslove this.Thanks.
regards
Jerry
Edited by: foxconn_jerry on Aug 8, 2009 6:20 PM
Edited by: foxconn_jerry on Aug 8, 2009 6:23 PM
2009 Aug 08 5:54 PM
Hello
It looks like that the BAdI can be implemented only once (flag MULTIPLE = ' ', i.e. unmarked) but there are two (or more) active implementations in the system.
Regards
Uwe
2009 Aug 09 2:12 AM
I have canceled the flag(mutiple use),but it did not work.In the debug modle,I found that there was no data in the table 'sxs_attr',which means there was no implementation.why?