该问题出现的原因可能是由于动态函数调用时传递的参数与函数的输入参数不匹配所导致。在处理该问题之前,请先确保动态函数调用的函数输入参数名称和数据类型与传递的参数名称和数据类型相同。
以下是一个示例代码,展示了如何正确设置操作按钮的动态函数调用参数:
METHOD handle_action. DATA(lo_entity) = io_event->get_data( ). DATA(lv_entityset_name) = lo_entity->get_entity_set_name( ). DATA(lv_action_name) = io_event->get_action_name( ).
TRY.
CASE lv_action_name.
WHEN 'ACTION_NAME'.
DATA(lo_func) = me->get_ddic_function( 'FUNCTION_NAME' ).
" 设置函数参数
DATA(ls_import) =
VALUE #( PARAMETER = 'PARAMETER_NAME'
ABAP_TYPE = 'PARAMETER_TYPE'
VALUE = iv_value ).
DATA(lt_import) =
VALUE #( (ls_import) ).
" 执行动态函数调用
lo_func->execute(
EXPORTING
iv_entity_set_name = lv_entityset_name
iv_key = lo_entity->key_dict->to_query_string( )
it_parameter = lt_import ).
ENDCASE.
CATCH cx_root INTO DATA(lx_exception).
ENDTRY.
ENDMETHOD.
请注意,在以上示例代码中,“FUNCTION_NAME” 和 “PARAMETER_NAME” 都需要替换为实际使用的函数和参数名称,而“PARAMETER_TYPE” 和“iv_value”则需要替换为正确的数据类型和值。