我想为 BAdI 实现定义一个对象,该对象不会在声明中按其名称初始化 BAdI。
我不想要的例子:
DATA l_split_badi TYPE REF TO fieb_get_bank_stmts_x.
问题 1:我想要类似的东西:
DATA l_split_badi TYPE REF TO object.
lv_class_name = 'fieb_get_bank_stmts_x'.
create object l_split_badi type (lv_class_name).
如果我像上面那样声明,我会收到以下语法错误:
“L_SPLIT_BADI”在这里不是有效的 BAdI 句柄。
我需要执行此类实现的原因是,在将更改请求导入具有较旧 SAP 版本的系统时,由于 BAdI 声明TYPE REF TO
(因为系统中不存在 BAdI),导入失败。
我的想法是使用动态声明来避免在导入更改请求时进行预检查。
欢迎任何想法!谢谢大家 !
编辑问题 2:在 Sandra Rossi 提出使用DATA l_split_badi TYPE REF TO cl_badi_base
and的解决方案之后GET BADI l_split_badi TYPE ('FIEB_GET_BANK_STMTS_X')
,我在下面的行中得到了相同的语法错误CALL BADI l_split_badi->split
:
CALL BADI l_split_badi->split
EXPORTING
i_string = lv_cont
IMPORTING
et_string = lt_xml_string
EXCEPTIONS
split_not_possible = 1
wrong_format = 2.