自建表数据修改记录

上传人:z****2 文档编号:199194011 上传时间:2023-04-10 格式:DOCX 页数:9 大小:323.72KB
收藏 版权申诉 举报 下载
自建表数据修改记录_第1页
第1页 / 共9页
自建表数据修改记录_第2页
第2页 / 共9页
自建表数据修改记录_第3页
第3页 / 共9页
资源描述:

《自建表数据修改记录》由会员分享,可在线阅读,更多相关《自建表数据修改记录(9页珍藏版)》请在装配图网上搜索。

1、一、研究背景:现在自建表建的对外维护程序渐增,有些关键字段的修改历史需要记录比如:ZFI16的退税率 维护更改历史.就可以通过以下配置和程序来实现对此ZFI16表(维护TCODE:ZS69)的修改 历史.二、实施1.配置:对自建表中所有要记录其修改记录的字段的数据元素中的Further characteristics视图中的 更改文档改打. TCODE: SCDO1直修改文档对象:创建对象ZFI16i文本EFI正的修改记录/称 表名表ZFI16回口 为表 na- rJJ 肯.制复內单独的文档 删除的字段名称 参考表旧名称字段*,占大写字母ffi) 国闕眦简q插入祭目删除行取消保存后上面的所有参

2、数函数等都会自动生成。2.程序:FORM CHANGE_DOCUMENT_CREATE.DATA: UPD_ICDTXT_ZFI16 TYPE C.DATA: BEGIN OF ICDTXT_ZFI16 OCCURS 1.INCLUDE STRUCTURE CDTXT.DATA: END OF ICDTXT_ZFI16 .DATA: DA_OBJECTID LIKE CDHDR-OBJECTID.YZFI16 = IT_ZSD01_1. 修改前的字段旧值XZFI16 = IT_ZSD01. 修改前的字段新值READ TABLE XZFI16 INDEX 1 .MOVE XZFI16-ZHGNO

3、 TO DA_OBJECTID.CALL FUNCTION ZFI16_WRITE_DOCUMENTEXPORTINGOBJECTID= DA_OBJECTIDTCODE= ZS69UTIME= SY-UZEITUDATE= SY-DATUMUSERNAME= SY-UNAME* PLANNED_CHANGE_NUMBEROBJECT_CHANGE_INDICATOR= U* PLANNED_OR_REAL_CHANGES* NO_CHANGE_POINTERS* UPD_ICDTXT_ZYW8UPD_ZFI16= UTABLESICDTXT_ZFI16= ICDTXT_ZFI16XZFI16

4、= XZFI16YZFI16= YZFI16 .ENDFORM. CHANGE_DOCUMENT_CREATE在保存的时候调用以上FORMWHEN SAVE.PERFORM CHANGE_DOCUMENT_CREATE.三、参考文档BC414 的 P220P227创建更改凭证(change document) 1793208.html使用事务代码SCDO进入,点创建,输入更改凭证对象的名字,以Z或者Y打头,如ZBOOK。继续,创建一个change request, 保存。然后输入更改凭证对象的描述,以及Tables的相关信息。Tables这个框里有几列内容:name of table :表名(

5、可以是表,也可以是结构)copy as internal tabl :如果属于一个业务对象的几个对象(如一个订单的抬头和几个行项目)都被改变,可以把这些改变都 传输到一个内表,然后再传给更新函数来创建更改记录。如果打钩,改变的数据会被输出到一个内表multiple case);如果 不打钩,改变的数据会传输到一个工作区(结构, single case)。Doc. for individual fields at delete :如果你想把字段的删除分多个行项目来记录,就打钩;如果不打钩,说明多个字段的 删除会放进一个行项目中记录。Name of Ref. tab.:这个地方填一个结构,结构的字

6、段是当前表名里面数量和货币字段参照用的UNIT和CURRENCY字段。Name of old field strin :只对single case的情况有效(举个例子,*sbook代表未更新前的工作区OLD RECORD, sbook 代表要更新的工作区NEW RECORD),如果这个地方不填,系统会默认*+结构名作为未更新前工作区的名字;如果填了, 就用你填写的名字来代替如*sbook之类的名字来作为OLD RECORD。本例创建一个表名:SBOOK,这些内容输入完毕之后,转到主菜单utilities-generate update program.在弹出窗口中输入include的名字(如Z

7、ABC),function group的名字(可以选择已有或者不存在的函数组),以及要创建的结构以什么打 头(系统默认为V),其他默认的就可以了(可以根据你的需要修改),然后点generate按钮,系统将自动产生一些include 程序,如果function group没有,系统也会自动创建,同时还会创建一些结构和一个更新函数MODULE。一共会产生4个include程序,形式为F+上面写的include的名字+CD+X (T,F,V,C其中一个),如:FZABCCDT (T代表TOP的意思,实际就是数据声明,它包含FZABCCDF和FZABCCDV两个include程序);FZABCCDF

8、(更改凭证抬头的一些数据定义,形式基本固定,看了一些更改凭证对象,都是一样的);FZABCCDV (更新函数模块的一些IMPORTING和TABLES参数定义);FZABCCDC(C代表CALL,调用函数更新模块,实际就是个subtoutine,代码如下).FORM CD_CALL_ZBOOK.CALL FUNCTION ZBOOK_WRITE_DOCUMENT IN UPDATE TASKEXPORTINGOBJECTID= OBJECTIDTCODE= TCODEENDFORM.假如有表的copy as internal table被打上钩了,系统会自动创建一个V (为什么是V,上面有解释

9、)+表名的结构,此表所 有的改变就会保存在参考这个结构创建的两个内表中,为什么是两个内表? 一个保存OLD RECORD, 一个保存NEW RECORD。 一般来说保存新值的内表的命名如:X+表名,保存旧值的内表的命名如:Y+表名。产生的更新函数的名字一般是更改凭证对象的名字+_WRITE_DOCUMENT,本例的函数名应该为 ZBOOK_WRITE_DOCUMENT.更改凭证保存在CDCLS这个簇表中,它包含了几个透明表,如CDHDR,CDPOS,PCDHDR,PCDPOS.CDCLS中,OBJECTCLAS就是我们创建的更改凭证对象,OBJECTID 般是表的主键连在一起,change d

10、ocument number 是系统自动产生的。CDHDR除了上面几个字段,还包含了修改的用户,修改的日期和时间以及用什么事务代码修改的。CDPOS表就比较详细了,什么表的什么字段被修改(插入,更新,删除),旧值是什么,新值是什么。如果是数量和金钱,还 会保存其单位和货币。一个更改凭证对象下可能包含多个表或者结构,怎末判断那个字段改变了需要记录呢?看看表或者结构的字段关联的DATAELEMENT的further characteristics这个TAB页面下的change document这个CHECKBOX有没有打钩,打钩了说明字 段值改变了需要记录。调用更新函数模块的时候,这个更改凭证对象

11、下所有表或者结构跟更改相关的字段(字段对应的DATA ELMENT的CHANGE DOCUMENT打钩的那种)至少得有一个发生了更改,才能创建一条更改记录。上面是简单的介绍,下面举例谈谈怎末使用。比较关键的是,应用程序必须把更改凭证对象生成的几个include文件包含进来。PROGRAM ZXXXXXX.*应用程序数据定义DATA .INCLUDE FZBOOKCDT.MOVE . TO *sbook. old recordMOVE . TO sbook. new record*更新应用数据CALL FUNCTION UPDATE_SBOOK IN UPDATE TASKEXPORTING .

12、*创建更改记录MOVE: . TO objectid,sy-tcode TO tcode,sy-uzeit TO utime,sy-datum TO udate,sy-uname TO username,U TO upd_sbook.PERFORM cd_call_zbook. INCLUDE FZBOOKCDC里的 subroutineCOMMIT WORK.INCLUDE FZBOOKCDC.更改凭证相关的 FUNCTION GROUPSCD0 creating change documentsSCD1 reading and formatting change documentsSCD2

13、 reading and formatting change documentsSCD3 reading and formatting planned changesSCD4 deleting change documents and planned changesSCD5 managing archived change documents数据修改记录;change docume nt的使用项目中遇到了一个需求:对自建表的数据进行操作的时候,需要对更改信息进行记录,到字段级别使用到了 SAP 的 chenge document 功能.Tcode : SCDO首先建立一个自己的change d

14、ocument object在对象里面填上需要记录的表的名字.要是需要记录删除字段信息的话,把第 二个 checkbox 选上.Change Document Object: Change讯已训E门tri巳5 D巳I巳t已Rizw | G巳门巳wtiizn i门fbOIU NPMeasurennent Point丁吐|文/Name of.Copy asDoc. for indmdualName afNameTableinternal tab,fields ;at deleteRef, tab.field :0IU_PR_MP| 0然后选择生成更新程序- 保存.点击生成信息的话,可以看见生成的程

15、序还有function module信息,要是上面截图第一个checkbox被选择的话,还会生成新的structure .至 V这里,change document object 就建立好了 在程序里面直接调用生成的function module把原始值和更新值传进去就可以了*start*REFRESH : lt_icdtxt .CALL FUNCTION ZYW8 WRITE DOCUMENTEXPORTINGobjectid=ls-objectidt code=ls-tcodeutime=ls-utimeuda te=ls-udateusername=ls-username*PLANNED

16、 CHANGE NUMBER object change indicator=U*PLANNED OR REAL CHANGES *NO CHANGE POINTERS *UPD ICDTXT ZYW8 upd zidowndata=UTABLESicdtxt zyw8=lt icdtxtxzidowndata=lt 8 newH .Change document=lt8 oldFurther Characteristicsyzidowndata*endSAP提供了一个标准的报表查看修改记录:RSSCD100 .Field LabelDefault Component NameMATERIAL

17、其他注意事项,可以参见下面的link erp2004/helpdata/en/2a/fa015b493111dl82b70000e829fbfe/frameset htm总l-DireiztiuFial Optici门t /i Basic direction set to LTR No BJDI FilteringData elementMATNRActiveShort Des匚riptionMaterial Number需要注意的一点,凡是需要记录的字段,dataelement里面的changedocument属性必须设置Search HelpNameS MAT1ParametersMATNRParameter IDMAT|Attribute j Data Type

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!