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

Posted 学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表维护视图 中变更日志写入自定义日志表相关的知识,希望对你有一定的参考价值。

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.

 

以上是关于表维护视图 中变更日志写入自定义日志表的主要内容,如果未能解决你的问题,请参考以下文章

多台NGINX服务器 ELK部署Filebeat的fields字段+Logstash的if 字段 采集多个日志文件写入elasticsearch 7.6.2 变更为不同索引名 自定义索引 index

使用自定义目标接收器将日志导出到 BigQuery(表分区)

abap 如何在维护视图中修改视图的数据之后按保存不需要申请请求号

iptables管理

自定义日志注解 + AOP实现记录操作日志

SAP打开表变更记录的方法