表维护视图 中变更日志写入自定义日志表

SE54 输入维护视图: 菜单-》环境-》事件 添加事件1和2编辑器中写入代码:

事件1 点击保存,会触发,但是保存还没有commit ,

 total 内表中存有视图每行的数据

<ACTION>的值有N -新增、U -更新、I -插入(新增)、D - 删除的动作

<VIM_TOTAL_STRUC> loop  total  每行的记录

复制代码

  FORM before_save.
   CONSTANTS: cn_zfit005(14) TYPE c VALUE 'ZFIT005'.
       DATA ln_zfit005 TYPE zfit005.

   IF x_header-viewname = cn_zfit005.
      LOOP AT total.
        IF  <action> = 'I' OR
            <action> = 'U' OR
            <action> = 'N' OR
            <action> = 'D'.
          gs_nzfit005 = <vim_total_struc>.
          gs_nzfit005-chngind = <action>.
          IF gs_nzfit005-chngind = 'N'.
            gs_nzfit005-chngind = 'I'.
          ENDIF.
          APPEND gs_nzfit005 TO gt_nzfit005.
        ENDIF.
      ENDLOOP.
   ENDIF.

  ENDFORM.

复制代码

事件2 点击保存按钮后的触发的事件,此时也没有更新,需要手动提交commit

复制代码

  FORM after_save.
      CONSTANTS: cn_zfit005(14) TYPE c VALUE 'ZFIT005'.
      DATA: lt_zfit005_log TYPE TABLE OF zfit005_log,
      ls_zfit005_log TYPE zfit005_log.
    IF x_header-viewname = cn_zfit005.
      LOOP AT  gt_nzfit005 INTO gs_nzfit005.


        ls_zfit005_log-bukrs = gs_nzfit005-bukrs.
        ls_zfit005_log-lifnr = gs_nzfit005-lifnr.
        ls_zfit005_log-djdte = gs_nzfit005-djdte.
        ls_zfit005_log-chngind = gs_nzfit005-chngind.
        ls_zfit005_log-uname = sy-uname.
        ls_zfit005_log-datum = sy-datum.
        ls_zfit005_log-uzeit = sy-uzeit.
        APPEND ls_zfit005_log TO lt_zfit005_log.
        CLEAR ls_zfit005_log.
      ENDLOOP.

      INSERT zfit005_log FROM TABLE lt_zfit005_log.
      IF sy-subrc NE 0.
          ROLLBACK WORK.
      ELSE.
          COMMIT WORK AND WAIT.
      ENDIF.
    ENDIF.

复制代码

 事件5是插入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChampaignWolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值