点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在尝试动态调用类的构造函数,...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在尝试动态调用类的构造函数,...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在尝试动态调用类的构造函数,其中参数是引用接口的。 但是,我一直在获取转储DYN_CALL_METH_PARAM_TYPE,CX_SY_DYN_CALL_ILLEGAL_TYPE。
试图将当前参数传递给类"/img/UI2/CL_FLP_CONT_MGR"的方法" CONSTRUCTOR"的形式参数" IO_MESSAGING"。 这导致类型冲突。
我尝试使用RTTS,CREATE DATA dat TYPE REF TO(类名),但遇到相同的错误。 任何人都有如何使它工作的想法。 演示此问题的示例代码如下。 它在754,s4hana系统上运行。
数据lt_tile_tm_combination类型/ui2/if_flp_cont_mgr => tt_tile_tm_combination_sorted。 数据lo_flp_cont_mgr TYPE REF TO对象。/ui2/if_flp_cont_mgr。 DATA lo_catalog_api类型引用对象。/ui2/if_fdm_catalog_api。 DATA lo_messaging TYPE REF TO对象。/ui2/if_fcm_messaging。 数据lx_root类型参考cx_root。 尝试。 创建对象lo_catalog_api类型('/UI2/CL_FDM_CATALOG_API') 出口 iv_scope ='CUST'"或'CONF' iv_use_cache = abap_true。 捕获cx_root INTO lx_root。 消息lx_root TYPE'E'。 ENDTRY。 创建对象lo_messaging TYPE('/UI2/CL_FCM_MESSAGING')。 创建对象lo_flp_cont_mgr TYPE('/UI2/CL_FLP_CONT_MGR')"/img/ui2/cl_flp_cont_mgr 出口 iv_scope ='CUST' io_catalog_api = lo_catalog_api"对/UI2/IF_FDM_CATALOG_API的类型引用 io_messaging = lo_messaging。 " TYPE REF TO/UI2/IF_FCM_MESSAGING 调用方法lo_flp_cont_mgr->('/UI2/IF_FLP_CONTR_MGR〜GET_ALL_TILES_TMS') 接收rt_tile_tm_combination = lt_tile_tm_combination。
就像 Sandra Rossi 所说的那样-使用动态ABAP无法完成。 我采用的解决方案是在运行时一次生成该方法的代码。 我没有包括方法interface_exists 。 这可以使用RTTS轻松实现。
第一次运行类的构造函数时,方法get_all_tiles_tms的注释行将被删除,但前提是存在/UI2/IF_FLP_CONT_MGR接口。
一周热门 更多>