sm30 + change document

来源:互联网 发布:include c语言 编辑:程序博客网 时间:2024/06/15 23:40

 为了方便audit, 我们可能会希望把某个的增删改操作全都记录下来。这样子的话,我们一看,就知道谁在什么时候进行过什么操作。万一有不良操作,我们能够很快地方锁定责任人。这里我来做一个sample:

 

1. 创建表 

     除了key以外的字段,如果需要对它的修改进行跟踪的话,我们需要将相应的date   element中的"change Document"勾选。 

2.设置 table maintenance generator

  表创建好后,点击se11->utilities->Table maintenance generator, 

3.找到要添加代码的event (se11->utilities->Table maintenance generator->modification->event)

  event有很多,作用也各不同.

  对每个event的详细用法,以及每个表预定好的参数,请查询help.sap.com(key words 'Table maintenance')

 

  对于参数的使用,这里强调一下。Unicode 系统和non-unicode系统使用的参数是不一样的

  对于event 01来说

  变量 total在两种系统来中,都是存放了最新的数据

  (1)在non-unicode系统中,total的结构应该是:  

        DATA: BEGIN OF TOTAL,

            INCLUDE STRUCTURE viewname,

           INCLUDE STRUCTURE vimflagtab,

        END OF TOTAL.

       所以我们只要再按照这种方式定义一个新的工作区wa。然后loop total into wa。这样子就可以读取到我们想要的字段了

    (2)在unicode系统中,方法就有一点不一样了

        loop total.

            if <action> = 'U'.

                wa_new = <vim_total_struc>.

           <action>是表示这个操作是更新(U),创建(I),删除(D)

           <vim_total_struc>跟自定义表结构是完全一样的,所以可以它里面的值赋给其他变量。

 

4. 创建change document object

  Tcode-> scdo -> create,生成相应的udpate function module.

 

   参数默认就好,如果没有link 到什么text table,就不要勾选“specail text handling".

 

5.回到event中填写代码   

   将生成的function 填写到event 01对应的代码中。

 

0 0
原创粉丝点击