1: 为该字段创建get_v方法,给需要添加value的attribute添加get_v方法
2: 创建 function module
function module 内容:
3: 创建value help: T-CODE, se11
4: get_v方法
method GET_V_ADDR. DATA: ls_map_service_team_name TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping, ls_map_service_team_type TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping, lt_inmap TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab, lt_outmap TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab, lo_property_access TYPE REF TO if_bol_bo_property_access, lo_entity TYPE REF TO cl_crm_bol_entity, lo_root TYPE REF TO cl_crm_bol_entity, lo_btadminh TYPE REF TO cl_crm_bol_entity, lo_coll TYPE REF TO if_bol_entity_col, dref TYPE REF TO data. FIELD-SYMBOLS <fv_process_type> TYPE crmt_process_type. CHECK iv_mode = if_bsp_wd_model_setter_getter=>runtime_mode. lo_entity ?= me->collection_wrapper->if_bol_bo_col~get_first( ). IF lo_entity IS BOUND. lo_root = lo_entity->get_root( ). ENDIF. IF lo_root IS BOUND. * lo_coll = lo_root->get_related_entities( iv_relation_name = 'BTOrderHeader' ). * lo_btadminh = lo_coll->get_first( ). * * dref = lo_btadminh->get_property( 'PROCESS_TYPE' ). "#EC NOTEXT ENDIF. * * ASSIGN dref->* TO <fv_process_type>. * ls_map_service_team_name-context_attr = 'test1'. ls_map_service_team_name-f4_attr = 'PARAM1'. APPEND ls_map_service_team_name TO: lt_inmap. ls_map_service_team_name-context_attr = 'STRUCT.ADDR'. "Output position ls_map_service_team_name-f4_attr = 'PARAM1'. "parameter APPEND ls_map_service_team_name TO: lt_outmap. CREATE OBJECT rv_valuehelp_descriptor TYPE cl_bsp_wd_valuehelp_f4descr EXPORTING iv_help_id = 'ZTEST_VALUE_HELP' iv_help_id_kind = if_bsp_wd_valuehelp_f4descr=>help_id_kind_name iv_input_mapping = lt_inmap iv_output_mapping = lt_outmap iv_trigger_submit = abap_true. endmethod.