码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-12-19 15:06:14      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:插入   head   log   const   uri   cti   commit   col   loop   

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.

 

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

标签:插入   head   log   const   uri   cti   commit   col   loop   

原文地址:http://www.cnblogs.com/caizjian/p/8064753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!