维护视图事件存储操作日志过程

关于ZGJTFI_RCPZ表通过维护视图存储操作日志过程。

以修改的状态进入到表维护生成器,再环境》修改》事件


进入事件的界面后,选择修改,新增条目,选中下图红框的按钮,可查看系统提供的事件相关信息



填入子例程名称,点击编辑器栏的按钮,创建子例程,也可以手工创建。



然后编写代码

其中gs_zgjtfi_rcpz、gt_zgjtfi_rcpz为FM全局变量,在FM中找到包含文件带有TOP字样的文件定义即可,也可以找到合适的位置定义。

保存数据前的操作01


FORM fm_save_log_before. 

 IF x_header-viewname = 'ZGJTFI_RCPZ'.   

 LOOP AT total.     

 IF   = 'I' OR           = 'U' OR           = 'N' OR           = 'D'.     

   gs_zgjtfi_rcpz = .     

   gs_zgjtfi_rcpz-chngind = .     

  IF gs_zgjtfi_rcpz-chngind = 'N'.      

    gs_zgjtfi_rcpz-chngind = 'I'.       

 ENDIF.     

   APPEND gs_zgjtfi_rcpz TO gt_zgjtfi_rcpz.    

  ENDIF.  

 ENDLOOP. 

 ENDIF.

ENDFORM.                    "FM_SAVE_LOG_BEFORE


保存数据后的操作02

FORM fm_save_log_after. 

 DATA:ls_zgjtfi_rcpz_log LIKE zgjtfi_rcpz_log,    

    lt_zgjtfi_rcpz_log LIKE TABLE OF ls_zgjtfi_rcpz_log.

  IF x_header-viewname = 'ZGJTFI_RCPZ'.  

  LOOP AT gt_zgjtfi_rcpz INTO gs_zgjtfi_rcpz.    

  ls_zgjtfi_rcpz_log-bukrs = gs_zgjtfi_rcpz-include-bukrs.    

  ls_zgjtfi_rcpz_log-wrbtr = gs_zgjtfi_rcpz-include-wrbtr.    

  ls_zgjtfi_rcpz_log-change_ind = gs_zgjtfi_rcpz-chngind.   

   ls_zgjtfi_rcpz_log-UDATE =  sy-datum.     

 ls_zgjtfi_rcpz_log-UTIME = sy-uzeit.    

  ls_zgjtfi_rcpz_log-UNAME = sy-uname.     

 APPEND ls_zgjtfi_rcpz_log TO lt_zgjtfi_rcpz_log.     

 CLEAR ls_zgjtfi_rcpz_log. 

   ENDLOOP.  

  INSERT zgjtfi_rcpz_log FROM TABLE lt_zgjtfi_rcpz_log.  

  IF SY-SUBRC NE 0.     

 rollback work.   

 ELSE.    

  commit WORK AND WAIT.  

  ENDIF. 

 ENDIF.

ENDFORM.                    "FM_SAVE_LOG

以上为维护视图操作存储日志的过程,谢谢!

你可能感兴趣的:(维护视图事件存储操作日志过程)