CX_SY_DYN_CALL_ILLEGAL_TYPE

CALLL Function时,如果接口错误,可能rise error CX_SY_DYN_CALL_ILLEGAL_TYPE

 

 function zwf_nextdynamicapproverget.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(OBJKEY) TYPE  ZE_OBJKEY
*"     VALUE(Z_OBJTYPE) TYPE  ZE_OBJTYPE
*"     VALUE(LAST_RESULT) TYPE  ZE_WF_RESULT
*"     VALUE(LAST_APPLEVEL) TYPE  ZE_APPLEVEL
*"     VALUE(UNAME) TYPE  UNAME
*"  EXPORTING
*"     VALUE(RETURN) TYPE  BAPIRETURN1
*"     VALUE(NOFURTHERAPPROVALNEEDED) TYPE  XFELD
*"     VALUE(Z_APPLEVEL) TYPE  ZE_APPLEVEL
*"     VALUE(Z_WI_TEXT) TYPE  ZE_WI_TEXT
*"     VALUE(Z_TASKCOMMENT) TYPE  BCSY_TEXT
*"  TABLES
*"      ACTOR_TAB STRUCTURE  SWHACTOR
*"----------------------------------------------------------------------
  data: l_fm_name like zwf_objtype-z_fm_nextapp.
  data: wa_object like zwf_object.
  refresh: actor_tab.
  clear z_applevel.

*************EXCUTE FUNCTION'S TRANSACTION
  select single z_fm_nextapp from zwf_objtype into l_fm_name
  where z_objtype = z_objtype.
  if sy-subrc = 0 and l_fm_name <> ' '.
************CHECK  FUNCTION MODULE NAME EXIST
    select single funcname from tftit into l_fm_name where funcname = l_fm_name .
    if sy-subrc = 0.
****CALL FM DEFINED IN TABLE ZWF_OBJTYPE
      call function l_fm_name
        exporting
          objkey                  = objkey
          z_objtype               = z_objtype
          last_applevel           = last_applevel
          last_result             = last_result
          uname                   = uname
        importing
          return                  = return
          z_wi_text               = z_wi_text
          nofurtherapprovalneeded = nofurtherapprovalneeded"
          z_applevel              = z_applevel"
          z_taskcomment           = z_taskcomment
        tables
          actor_tab               = actor_tab
        exceptions
          others                  = 01.
      case sy-subrc.
        when 0.            " OK
        when others.       " to be implemented
      endcase.
    endif.
  endif.


endfunction.

FORM frm_display . cl_salv_table=>factory( IMPORTING r_salv_table = gcl_salv"用来接收工厂产生的实例 CHANGING t_table = gt_output[] ). *-设置Layout gr_layout = gcl_salv->get_layout( ). gs_program-report = sy-repid. gs_program-handle = 1. gr_layout->set_key( gs_program )."设置布局保存为变式时,这些变式应属性此Key(本程序名) gr_layout->set_save_restriction( cl_salv_layout=>restrict_none )."允许保存布局为变式 DATA(lr_display_settings) = gcl_salv->get_display_settings( ). lr_display_settings->set_striped_pattern( 'X' ). "Zebra DATA(lr_columns) = gcl_salv->get_columns( ). lr_columns->set_optimize( 'X' ). lr_columns->set_key_fixation( 'X' ). TRY. "隐藏列 set_inactive: 'MANDT'. IF p_02 = 'X'. set_inactive: 'RBUKRS'. ENDIF. CATCH cx_salv_not_found. "#ec no_handler CATCH cx_sy_dyn_call_illegal_type. "#ec no_handler ENDTRY. "统一列描述(Catch包含于Define中) def_col_txt:'RYEAR' '年度'. IF p_01 = 'X'. def_col_txt: 'RBUKRS' '公司代码'. ENDIF. def_col_txt:'RFAREA' '功能范围', 'ZFL1' '一级分类', 'ZFL2' '二级分类', 'ZSUM' '总计', 'HSL01' '1月', 'HSL02' '2月', 'HSL03' '3月', 'HSL04' '4月', 'HSL05' '5月', 'HSL06' '6月', 'HSL07' '7月', 'HSL08' '8月', 'HSL09' '9月', 'HSL10' '10月', 'HSL11' '11月', 'HSL12' '12月'. gr_functions = gcl_salv->get_functions( ). gr_functions->set_all( abap_true ). " 确保使用网格视图 DATA(lo_display) = gcl_salv->get_display_settings( ). lo_display->set_list_header( space ). " 清除列表头,确保网格视图 " 添加自定义按钮 TRY. " 另一个自定义按钮 gr_functions->add_function( name = 'CUSTOM_FUNC' icon = '@5C@' text = '自定义' tooltip = '执行自定义操作' position = if_salv_c_function_position=>right_of_salv_functions ). CATCH cx_salv_wrong_call cx_salv_existing. MESSAGE '添加功能按钮出错' TYPE 'E'. ENDTRY. " 设置事件处理 DATA(lo_events) = gcl_salv->get_event( ). SET HANDLER lcl_event_handler=>on_user_command FOR lo_events. * gr_display = gcl_salv->get_display_settings( ). * gr_display->set_striped_pattern( cl_salv_display_settings=>true ). gcl_salv->display( )."调用实例方法显示表报 ENDFORM. 这段代码报了仅在网格视图中可能 不支持类 CL_SALV_FUNCTIONS,方法 ENABLE_FUNCTION 如何处理
06-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值