SAP SM30表格维护生成器隐藏记录日志字段

1.背景

在表格维护生成器中往往会隐藏记录日志字段,不让用户直接查看,而供运维或者开发部门使用,如下所示:
在这里插入图片描述

2.实现

2.1 SM30逻辑流和屏幕元素中删除日志记录字段

在这里插入图片描述
在这里插入图片描述

2.2 创建事件,写入记录日志代码

在这里插入图片描述

2.2.1 记录日志方式1

在这里插入图片描述
FORM z_data_change_after .

DATA: lv_total TYPE sy-tabix,
lv_tabix TYPE sy-tabix,
ls_field TYPE zmrs_log.

LOOP AT total.
lv_total = sy-tabix.
CHECK < ACTION> IS NOT INITIAL.
MOVE-CORRESPONDING <vim_total_struc> TO ls_field.
READ TABLE extract WITH KEY <vim_xtotal_key>.
IF sy-subrc IS INITIAL.
lv_tabix = sy-tabix.
ELSE.
CLEAR lv_tabix.
ENDIF.

IF ls_field-crnam IS INITIAL.
ls_field-crnam = sy-uname.
ls_field-crdat = sy-datum.
ls_field-crtim = sy-uzeit.
ELSE.
ls_field-upnam = sy-uname.
ls_field-updat = sy-datum.
ls_field-uptim = sy-uzeit.
ENDIF.

ls_field-uppgm = sy-repid.

MOVE-CORRESPONDING ls_field TO <vim_total_struc>.
MODIFY total INDEX lv_total.

IF lv_tabix IS NOT INITIAL.
extract = total.
MODIFY extract INDEX lv_tabix.
ENDIF.

ENDLOOP.

CLEAR sy-subrc.

ENDFORM.

2.2.1 记录日志方式2

在这里插入图片描述
FORM frm_write_log .

CALL FUNCTION ‘ZBCFM_FILL_LOG2’

  • EXPORTING
  • IV_UPDKZ       =
    
    CHANGING
    cs_data = zvsd806.

ENDFORM.

FUNCTION zbcfm_fill_log2.
*“----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*” VALUE(IV_UPDKZ) OPTIONAL
*" CHANGING
*" REFERENCE(CS_DATA)
*"----------------------------------------------------------------------

FIELD-SYMBOLS:<fs_f> TYPE any.
DATA:lv_updkz TYPE c.

IF iv_updkz IS INITIAL.
ASSIGN COMPONENT ‘CRDAT’ OF STRUCTURE cs_data TO <fs_f>.
IF <fs_f> IS ASSIGNED.
IF <fs_f> = ‘00000000’.
lv_updkz = ‘I’.
ELSE.
lv_updkz = ‘U’.
ENDIF.
UNASSIGN:<fs_f>.
ENDIF.
ELSE.
lv_updkz = iv_updkz.
ENDIF.

CASE lv_updkz.
WHEN ‘I’."插入
ASSIGN COMPONENT ‘CRDAT’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-datum.
ENDIF.
ASSIGN COMPONENT ‘CRTIM’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-uzeit.
ENDIF.
ASSIGN COMPONENT ‘CRNAM’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-uname.
ENDIF.
ASSIGN COMPONENT ‘CRPGM’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-repid.
ENDIF.
WHEN ‘U’."更新
ASSIGN COMPONENT ‘UPDAT’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-datum.
ENDIF.
ASSIGN COMPONENT ‘UPTIM’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-uzeit.
ENDIF.
ASSIGN COMPONENT ‘UPNAM’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-uname.
ENDIF.
ASSIGN COMPONENT ‘LCPGM’ OF STRUCTURE cs_data TO <fs_f>.
IF sy-subrc = 0.
<fs_f> = sy-repid.
ENDIF.
ENDCASE.

ASSIGN COMPONENT ‘UPPGM’ OF STRUCTURE cs_data TO FIELD-SYMBOL(<fs_uppgm>).
IF <fs_uppgm> IS ASSIGNED.
<fs_uppgm> = sy-tcode.
ENDIF.

ENDFUNCTION.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值