其实自建SE16N功能,并让它可以直接修改数据库表数据,其原理与在SE16N中DEBUG修改EDIT参数的原理一样,只是在调用标准的函数组时把入参稍作修改即可。
实现代码如下:
REPORT zse16n.
PARAMETERS:p_tabnm TYPE dd02l-tabname OBLIGATORY.
AT SELECTION-SCREEN.
SELECT COUNT(*)
FROM dd02l
WHERE tabname = p_tabnm.
IF sy-subrc <> 0.
MESSAGE '表不存在' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
CALL FUNCTION 'SE16N_INTERFACE'
EXPORTING
i_tab = p_tabnm
i_edit = 'X' "参数修改
i_sapedit = 'X' "参数修改
EXCEPTIONS
no_values = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
DISPLAY LIKE 'E'.
ENDIF.
封装一个事务代码,就是一个能修改的SE16N啦,SKR!