sap 表修改记录查询
SAP-ABAP批量查询SAP标准日志(更改历史記錄)
描述OBJECTCLAS對象物料主数据变更查询(MM03)MATERIAL采购信息记录变更查询(ME1L)INFOSATZ采购申请(PR)BANF采购订单变更查询(PO)EINKBELEG销售凭证(含合同、订单等)VERKBELEG客户DEBI供应商KRED信⽤(FD32)KLIMCDHDR -抬头表OBJECTCLAS对象类OBJECTID对象值CHANGENR⽂档更改编号CHANGE_IND U 更新I 插⼊E 删除 (单字段⽂档) D 删除J 插⼊ (单字段⽂档)SAP-ABAP批量查询SAP标准⽇志(更改历史記錄)常⽤對象名:如何查找对象1.对象表:TCDOBTCDOBT(SE11,根據表查詢對象)/SCDO(根據對象查詢表)2.⽤单号,编码模糊查询3.限定时间与⽤户进⾏测试批量查询标准⽇志⽅法⼀:事务代码(SE38):RSSCD100 / (RC1CD100\RSSCD1TS)⽅法⼆:后台表(SE11):CDHDR 和 CDPOSCDPOS-项⽬表OBJECTCLAS对象类OBJECTID对象值CHANGENR⽂档更改编号TABNAME表名TABKEY已更改的表记录码FNAME字段名CHNGIND修改类型 (U, I, E, D)TEXT_CASE标识:X=⽂本更改UNIT_OLD更改⽂档,参照的单位UNIT_NEW更改⽂档,参照的单位CUKY_OLD更改⽂档,参照货币CUKY_NEW更改⽂档,参照货币VALUE_NEW更改字段的新内容VALUE_OLD更改字段的新内容*&---------------------------------------------------------------------**& Report ZCDHDR_CDPOS*&*&---------------------------------------------------------------------**&*& 标准程序:RSSCD100*&---------------------------------------------------------------------*REPORT zcdhdr_cdpos NO STANDARD PAGE HEADING .TYPE-POOLS: slis.TABLES: cdhdr,cdred,tcdob.DATA: fldct TYPE slis_t_fieldcat_alv,slayt TYPE slis_layout_alv ,varnt LIKE disvariant,repid LIKE sy-repid .DATA: itab TYPE TABLE OF cdred WITH HEADER LINE.DATA: it_cdhdr TYPE TABLE OF cdhdr WITH HEADER LINE.DATA: it_cdred TYPE TABLE OF cdred WITH HEADER LINE.SELECT-OPTIONS :s_clas FOR tcdob-object OBLIGATORY ,s_objtid FOR cdhdr-objectid,s_usrnam FOR cdhdr-username ,s_udate FOR cdhdr-udate DEFAULT sy-datum,s_time FOR cdhdr-utime,s_tcode FOR cdhdr-tcode,s_tab FOR cdred-tabname,s_fname FOR cdred-fname,s_tabkey FOR cdred-tabkey .AT SELECTION-SCREEN OUTPUT.%_s_clas_%_app_%-text = '对象类'.%_s_objtid_%_app_%-text = '对象值'.%_s_usrnam_%_app_%-text = '⽤户名'.%_s_udate_%_app_%-text = '⽇期'.%_s_time_%_app_%-text = '时间'.%_s_tcode_%_app_%-text = '事务码'.%_s_tab_%_app_%-text = '修改的表名'.%_s_fname_%_app_%-text = '字段名'.%_s_tabkey_%_app_%-text = 'KEY值'.START-OF-SELECTION.PERFORM getdata.PERFORM outdata.*&---------------------------------------------------------------------**& Form getdata*&---------------------------------------------------------------------* FORM getdata.CLEAR: itab,itab[],it_cdhdr,it_cdhdr[].SELECT * INTO TABLE it_cdhdrFROM cdhdrWHERE objectclas IN s_clas ANDobjectid IN s_objtid ANDusername IN s_usrnam ANDudate IN s_udate ANDutime IN s_time ANDtcode IN s_tcode .LOOP AT it_cdhdr.CLEAR: it_cdred,it_cdred[].CALL FUNCTION'CHANGEDOCUMENT_READ'EXPORTINGchangenumber = it_cdhdr-changenrobjectclass = it_cdhdr-objectclasobjectid = it_cdhdr-objectidTABLESeditpos = it_cdredEXCEPTIONSno_position_found = 1wrong_access_to_archive = 2time_zone_conversion_error = 3OTHERS = 4.IF sy-subrc = 0.LOOP AT it_cdred WHERE fname IN s_fname AND tabname IN s_tab ANDtabkey IN s_tabkey .APPEND it_cdred TO itab.ENDLOOP.ENDIF.ENDLOOP.ENDFORM. "getdata*&---------------------------------------------------------------------**& Form outdata*&---------------------------------------------------------------------* FORM outdata.DATA lines(10).slayt-colwidth_optimize = 'X'.slayt-zebra = 'X'.slayt-detail_initial_lines = 'X'. "&ETA 空单元格也显⽰ repid = sy-repid.CALL FUNCTION'REUSE_ALV_GRID_DISPLAY' EXPORTINGi_callback_program = repidi_structure_name = 'CDRED'i_save = 'A'is_layout = slayti_callback_user_command = 'USER_COMMAND' TABLESt_outtab = itabEXCEPTIONSprogram_error = 1OTHERS = 2.ENDFORM. "outdata*&--------------------------------------------------------------------**& Form user_command*&--------------------------------------------------------------------* FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfld TYPE slis_selfield.CASE r_ucomm.WHEN '&IC1'.READ TABLE itab INDEX rs_selfld-tabindex.CHECK sy-subrc = 0.WHEN 'REFRESH'.PERFORM getdata.ENDCASE.rs_selfld-row_stable = 'X'.rs_selfld-col_stable = 'X'.rs_selfld-refresh = 'X'.ENDFORM. "user_command*&--------------------------------------------------------------------**& Form set_status*&--------------------------------------------------------------------* FORM set_status USING rt_extab TYPE slis_t_extab. SET PF-STATUS'STANDARD' EXCLUDING rt_extab . ENDFORM. "set_statusZCDHDR_CDPOS。
SAP生产订单修改记录代码
SAP生产工单更改记录详细教程CO02======================================================== ===需求:SAP在更改生产工单时并没有提供详细的更改记录,查看SAP的Notes,如果强行开启FLG_DOC (控制往更改记录CDHDR,CDPOS里写数据)标记,在批量处理组件过多的生产工单时会导致程序运行出错,SAP建议不开启。
User要求对保护字段进行更改记录,无奈只有使用SAP提供的增强功能,东西经过测试初步完成,发出来共享一下,如果大家有更好的方法,发出来讨论讨论,步骤如下:1.CMOD新增一项目ZCO02,增加增强PPCO0001。
2.查看、Debug SAP源代码,了解数据流向,主要了解在变更工单组件和表头未保存前这些数据存放在哪里?最后查到这两数据放在调用出口函数参数表:component_table,header_table。
3.设计数据表结构:ZPCO02,记录更改,-----------------------------------------------------------------------------------------------------------------代码通过了User测试更正已传至生产系统,改善了保存时的速度,不用拿更改后的工单组件与RESB里的一个个对比了。
*&---------------------------------------------------------------------**& 包括ZXCO1U01 **&---------------------------------------------------------------------*TABLES:caufv,resb.DATA: BEGIN OF old_resb OCCURS 0,aufnr LIKE resb-aufnr,posnr LIKE resb-posnr,matnr LIKE resb-matnr,rsnum LIKE resb-rsnum,rspos LIKE resb-rspos,xloek LIKE resb-xloek,bdmng LIKE resb-bdmng,objnr LIKE resb-objnr,END OF old_resb.DATA: BEGIN OF new_resb OCCURS 0.INCLUDE STRUCTURE old_resb.DATA: END OF new_resb.DATA: BEGIN OF obj_resb OCCURS 0.INCLUDE STRUCTURE old_resb.DATA: END OF obj_resb.DATA: i_zpco02 LIKE zpco02 OCCURS 0 WITH HEADER LINE.DATA: i_temp LIKE zpco02 OCCURS 0 WITH HEADER LINE.DATA: iporg LIKE msxxlist-hostadr,ipdec(16) TYPE c,host(18) TYPE c.DATA: char1(20) TYPE c,char2(20) TYPE c.DATA: inst_flg TYPE c VALUE 'N',chan_had TYPE c VALUE 'N'.* teco_flg TYPE c VALUE 'N',* read_flg TYPE c .*BREAK-POINT.CHECK sy-tcode EQ 'CO02'.** Get user IP,hostnameCALL FUNCTION 'TH_USER_INFO' " Get user IP,hostname EXPORTINGclient = sy-mandtuser = sy-unameIMPORTINGhostaddr = iporgterminal = hostEXCEPTIONSOTHERS = 1.**"Conv.IP addr to format 'xxx.xxx.xxx.xxx'CALL FUNCTION 'GWY_IPADR2STRING' "Conv.IP addr EXPORTINGipadr = iporgIMPORTINGstring = ipdec.***Common var.MOVE: sy-mandt TO i_temp-mandt,sy-uname TO i_temp-aenam,sy-datum TO i_temp-laeda,sy-uzeit TO i_temp-times,sy-tcode TO i_temp-tcode,ipdec TO i_temp-hostip,host TO i_temp-host,header_table-aufnr TO i_temp-aufnr.***Check M/O header**check if status eq 'TECO'.*LOOP AT status_table WHERE objnr EQ header_table-objnr * AND stat EQ 'I0045'.** MOVE: 'Y' TO teco_flg.*ENDLOOP.*CHECK teco_flg NE 'Y'.*CHECK read_flg NE 'Y'.SELECT SINGLE gamng gltrp INTO (caufv-gamng, caufv-gltrp) FROM caufv WHERE aufnr EQ header_table-aufnr.**qtyIF header_table-gamng NE caufv-gamng.MOVE: caufv-gamng TO char1, header_table-gamng TO char2. MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '更改工单总数' TO i_zpco02-filed,'U' TO i_zpco02-chnid,char1 TO i_zpco02-value_old,char2 TO i_zpco02-value_new.APPEND i_zpco02.inst_flg = 'Y'.chan_had = 'Y'.ENDIF.**dateIF header_table-gltrp NE caufv-gltrp.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '更改完成时间' TO i_zpco02-filed,'U' TO i_zpco02-chnid,caufv-gltrp TO i_zpco02-value_old,header_table-gltrp TO i_zpco02-value_new.APPEND i_zpco02.inst_flg = 'Y'.ENDIF.IF inst_flg = 'Y'.INSERT zpco02 FROM TABLE i_zpco02 ACCEPTING DUPLICATE KEYS. inst_flg = 'N'.ENDIF.*DELETE component_table WHERE vbkz EQ 'I'.LOOP AT component_table WHERE vbkz EQ 'U'OR vbkz EQ 'I'OR vbkz EQ 'D'.CASE component_table-vbkz.WHEN '*'.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '**组件' TO i_zpco02-filed,'I' TO i_zpco02-chnid,'' TO i_zpco02-value_old, "old_resb-matnrcomponent_table-matnr TO i_zpco02-value_new,'**组件' TO i_zpco02-matnr,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.WHEN '*'.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '**组件' TO i_zpco02-filed,'D' TO i_zpco02-chnid,resb-xloek TO i_zpco02-value_old,component_table-xloek TO i_zpco02-value_new,component_table-matnr TO i_zpco02-matnr,* read_flg TO i_zpco02-readf,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.WHEN '*'.SELECT SINGLE matnr bdmng INTO (resb-matnr, resb-bdmng) FROM resb WHERE aufnr EQ component_table-aufnrAND posnr EQ component_table-posnrAND matnr EQ component_table-matnrAND rsnum EQ component_table-rsnumAND rspos EQ component_table-rspos.IF component_table-matnr NE resb-matnr.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '更改组件' TO i_zpco02-filed,'*' TO i_zpco02-chnid,resb-matnr TO i_zpco02-value_old,component_table-matnr TO i_zpco02-value_new,'更改的工单组件' TO i_zpco02-matnr,* read_flg TO i_zpco02-readf,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.ELSEIF component_table-bdmng NE resb-bdmng.CHECK chan_had NE 'Y'.MOVE: component_table-bdmng TO char1, resb-bdmng TO char2. MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '需求数量' TO i_zpco02-filed,'U' TO i_zpco02-chnid,char1 TO i_zpco02-value_new,component_table-matnr TO i_zpco02-matnr,* read_flg TO i_zpco02-readf,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.ENDIF.ENDCASE.ENDLOOP.IF inst_flg = 'Y'.INSERT zpco02 FROM TABLE i_zpco02 ACCEPTING DUPLICATE KEYS.IF sy-subrc EQ 0.inst_flg = 'N'.chan_had = 'N'.* MESSAGE ID 'ZX' TYPE 'W'* NUMBER '000' WITH 'SAP系统已记录您的更改!'.ENDIF.ENDIF.--------------------------------------------------------------------------------------------------------5.更改记录:集团400订单400000063物料5017000533A字段名删除标记更改者SAP003上一次修改2005.09.12事务代码CO02修改标识符D字符20 (HOSTIP) 192.168.4.95Host Name SAP-8字符20 (VALUE OLD)字符20 (VALUE NEW) X时间14:53:27其他的关于生产订单的增强在IMG->SFC->系统修正那都可以找得到,如PPCO0007 保存生产订单时,PPCO0008 在增加和改变组件时的增强(这里就写数据到ZPCO02一但用户没保存.....所以只有放在PPCO0001里了),大家多研究研究。
SAP-工艺路线修改记录查询
我的SAP运维日常_0045_PP_工艺路线修改记录查询当前系统为ECC财务的同事时不时就来问我怎么看工艺路线上作业类型的标准工时是否发生变化,因为他们在做工单成本分析时发现有变化~还有就是我们公司的报工人工工时分摊到各个工序去是按照每个工序标准人工工时占总工时的比例分摊的。
如果出现报工冲销,咦有报错!!冲销不了,也很有可能是修改了标准工时,冲销时比例发生变化,就会存在冲销的工时大于报工的工时,就报错咯~我在CA03里没能找到工艺路线的变更记录耶~其实个人感觉PP模块这边的变更做得真的超级不好,每次查工单/BOM的变化要折腾很久~工单的变更每次都是去CDHDR/CDPOS表里查,BOM我们直接开发了报表记录变更~对比MM模块,哎简直是天差地别呀~工艺路线的变更我目前发现有两个事务代码相关~第一个,CA60其实这个事务代码是查看“Task list”的哦~什么PP工艺路线啊,QM检验计划啊,流程行业配方啊,PM的维护计划啊,都可以通过这个事务代码查询。
需要在任务清单类型处限定“N”-工艺路线~这里可以输入物料,或者输入工艺路线的Group号进行查询~Counter计数器那里是限定哪一条工艺路线,同一个物料可能会维护多条工艺路线,share同一个group,但可以通过counter区分~那一排checkbox就是需要查询的变更,是看抬头的变更?物料分配的变更?工序的变更?还是其他的~你也可以都勾上哈哈哈哈哈~选择条件输入后,点击执行即可啦。
Object是针对什么内容做了各类动作,抬头/工序/物料分配等Action是指做的动作是什么,创建/修改/删除不过我觉得这个事务代码有bug耶,我刚刚做了两笔更改,都没有更新进去。
不过做了一笔工序删除还是更新进去的~但还是不好用!放弃啦~第二个,CA61哈哈哈哈这个和CA60相比,实在是太好用啦!~我们来瞅瞅这个事务代码就是专门针对Routing的变更记录哦~不过你只能输入Group号去查询,不能输料号哦。
SAP ABAP开发开启表日志记录
一、目标
为记录部分业务表的修改记录,需要开启系统的表日志记录功能二、用到的事物代码
SE11、RZ10 、SCU3
三、操作步骤(截图) :
1、在命令行中输入SE11
2、输入表名,并点击“修改”按钮
3、进入界面后点选工具栏的“技术设置”按钮
4、勾选“日志数据修改”选项,然后“保存”并“激活”。
5、命令行输入事物代码“RZ10” .
6、在“编辑参数文件”子页面选择“扩展维护”选项
7、在“参数文件”栏位选择“子系统参数文件”
8、点击“修改”进入下一页面
9、点击“参数”按钮添加新的参数
10、在“参数名称”栏位填入“rec/client’, 在“参数值”栏位填入自身的client。
然后点击“复制”按钮。
点击“后退”按钮回到上一界面。
11、点击“复制”按钮并退回上一界面
12、点击“保存”。
13、点击按钮“是”。
14、点击‘’
15、继续点击‘’
16、退出系统并重启服务器,使配置参数生效。
17、查看前面所设置的表的修改日志,在命令行中输入事物代码“SCU3”
18、点击按钮“Evaluate log”
19、在“定制对象或表”栏位输入表名
在“限制”子页面输入需要查询的时间段
在“评估为“子页面选择“表”
在“output options”勾选“ALV Grid display”选项
然后点击执行按钮“”
下一界面将列出在此段时间内各种业务对该表所作的修改。
机密:第 11 页共 11页。
SAP生产订单修改记录代码
SAP生产工单更改记录详细教程CO02======================================================== ===需求:SAP在更改生产工单时并没有提供详细的更改记录,查看SAP的Notes,如果强行开启FLG_DOC (控制往更改记录CDHDR,CDPOS里写数据)标记,在批量处理组件过多的生产工单时会导致程序运行出错,SAP建议不开启。
User要求对保护字段进行更改记录,无奈只有使用SAP提供的增强功能,东西经过测试初步完成,发出来共享一下,如果大家有更好的方法,发出来讨论讨论,步骤如下:1.CMOD新增一项目ZCO02,增加增强PPCO0001。
2.查看、Debug SAP源代码,了解数据流向,主要了解在变更工单组件和表头未保存前这些数据存放在哪里?最后查到这两数据放在调用出口函数参数表:component_table,header_table。
3.设计数据表结构:ZPCO02,记录更改,-----------------------------------------------------------------------------------------------------------------代码通过了User测试更正已传至生产系统,改善了保存时的速度,不用拿更改后的工单组件与RESB里的一个个对比了。
*&---------------------------------------------------------------------**& 包括ZXCO1U01 **&---------------------------------------------------------------------*TABLES:caufv,resb.DATA: BEGIN OF old_resb OCCURS 0,aufnr LIKE resb-aufnr,posnr LIKE resb-posnr,matnr LIKE resb-matnr,rsnum LIKE resb-rsnum,rspos LIKE resb-rspos,xloek LIKE resb-xloek,bdmng LIKE resb-bdmng,objnr LIKE resb-objnr,END OF old_resb.DATA: BEGIN OF new_resb OCCURS 0.INCLUDE STRUCTURE old_resb.DATA: END OF new_resb.DATA: BEGIN OF obj_resb OCCURS 0.INCLUDE STRUCTURE old_resb.DATA: END OF obj_resb.DATA: i_zpco02 LIKE zpco02 OCCURS 0 WITH HEADER LINE.DATA: i_temp LIKE zpco02 OCCURS 0 WITH HEADER LINE.DATA: iporg LIKE msxxlist-hostadr,ipdec(16) TYPE c,host(18) TYPE c.DATA: char1(20) TYPE c,char2(20) TYPE c.DATA: inst_flg TYPE c VALUE 'N',chan_had TYPE c VALUE 'N'.* teco_flg TYPE c VALUE 'N',* read_flg TYPE c .*BREAK-POINT.CHECK sy-tcode EQ 'CO02'.** Get user IP,hostnameCALL FUNCTION 'TH_USER_INFO' " Get user IP,hostname EXPORTINGclient = sy-mandtuser = sy-unameIMPORTINGhostaddr = iporgterminal = hostEXCEPTIONSOTHERS = 1.**"Conv.IP addr to format 'xxx.xxx.xxx.xxx'CALL FUNCTION 'GWY_IPADR2STRING' "Conv.IP addr EXPORTINGipadr = iporgIMPORTINGstring = ipdec.***Common var.MOVE: sy-mandt TO i_temp-mandt,sy-uname TO i_temp-aenam,sy-datum TO i_temp-laeda,sy-uzeit TO i_temp-times,sy-tcode TO i_temp-tcode,ipdec TO i_temp-hostip,host TO i_temp-host,header_table-aufnr TO i_temp-aufnr.***Check M/O header**check if status eq 'TECO'.*LOOP AT status_table WHERE objnr EQ header_table-objnr * AND stat EQ 'I0045'.** MOVE: 'Y' TO teco_flg.*ENDLOOP.*CHECK teco_flg NE 'Y'.*CHECK read_flg NE 'Y'.SELECT SINGLE gamng gltrp INTO (caufv-gamng, caufv-gltrp) FROM caufv WHERE aufnr EQ header_table-aufnr.**qtyIF header_table-gamng NE caufv-gamng.MOVE: caufv-gamng TO char1, header_table-gamng TO char2. MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '更改工单总数' TO i_zpco02-filed,'U' TO i_zpco02-chnid,char1 TO i_zpco02-value_old,char2 TO i_zpco02-value_new.APPEND i_zpco02.inst_flg = 'Y'.chan_had = 'Y'.ENDIF.**dateIF header_table-gltrp NE caufv-gltrp.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '更改完成时间' TO i_zpco02-filed,'U' TO i_zpco02-chnid,caufv-gltrp TO i_zpco02-value_old,header_table-gltrp TO i_zpco02-value_new.APPEND i_zpco02.inst_flg = 'Y'.ENDIF.IF inst_flg = 'Y'.INSERT zpco02 FROM TABLE i_zpco02 ACCEPTING DUPLICATE KEYS. inst_flg = 'N'.ENDIF.*DELETE component_table WHERE vbkz EQ 'I'.LOOP AT component_table WHERE vbkz EQ 'U'OR vbkz EQ 'I'OR vbkz EQ 'D'.CASE component_table-vbkz.WHEN '*'.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '**组件' TO i_zpco02-filed,'I' TO i_zpco02-chnid,'' TO i_zpco02-value_old, "old_resb-matnrcomponent_table-matnr TO i_zpco02-value_new,'**组件' TO i_zpco02-matnr,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.WHEN '*'.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '**组件' TO i_zpco02-filed,'D' TO i_zpco02-chnid,resb-xloek TO i_zpco02-value_old,component_table-xloek TO i_zpco02-value_new,component_table-matnr TO i_zpco02-matnr,* read_flg TO i_zpco02-readf,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.WHEN '*'.SELECT SINGLE matnr bdmng INTO (resb-matnr, resb-bdmng) FROM resb WHERE aufnr EQ component_table-aufnrAND posnr EQ component_table-posnrAND matnr EQ component_table-matnrAND rsnum EQ component_table-rsnumAND rspos EQ component_table-rspos.IF component_table-matnr NE resb-matnr.MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '更改组件' TO i_zpco02-filed,'*' TO i_zpco02-chnid,resb-matnr TO i_zpco02-value_old,component_table-matnr TO i_zpco02-value_new,'更改的工单组件' TO i_zpco02-matnr,* read_flg TO i_zpco02-readf,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.ELSEIF component_table-bdmng NE resb-bdmng.CHECK chan_had NE 'Y'.MOVE: component_table-bdmng TO char1, resb-bdmng TO char2. MOVE-CORRESPONDING i_temp TO i_zpco02.MOVE: '需求数量' TO i_zpco02-filed,'U' TO i_zpco02-chnid,char1 TO i_zpco02-value_new,component_table-matnr TO i_zpco02-matnr,* read_flg TO i_zpco02-readf,component_table-alpos TO i_zpco02-alpos,sy-tabix TO i_zpco02-loopid.APPEND i_zpco02.inst_flg = 'Y'.ENDIF.ENDCASE.ENDLOOP.IF inst_flg = 'Y'.INSERT zpco02 FROM TABLE i_zpco02 ACCEPTING DUPLICATE KEYS.IF sy-subrc EQ 0.inst_flg = 'N'.chan_had = 'N'.* MESSAGE ID 'ZX' TYPE 'W'* NUMBER '000' WITH 'SAP系统已记录您的更改!'.ENDIF.ENDIF.--------------------------------------------------------------------------------------------------------5.更改记录:集团400订单400000063物料5017000533A字段名删除标记更改者SAP003上一次修改2005.09.12事务代码CO02修改标识符D字符20 (HOSTIP) 192.168.4.95Host Name SAP-8字符20 (VALUE OLD)字符20 (VALUE NEW) X时间14:53:27其他的关于生产订单的增强在IMG->SFC->系统修正那都可以找得到,如PPCO0007 保存生产订单时,PPCO0008 在增加和改变组件时的增强(这里就写数据到ZPCO02一但用户没保存.....所以只有放在PPCO0001里了),大家多研究研究。
SAP电子记录审计追踪
方式追踪实现审计系统标准自带1.change document-:)SD模块举例1 (进入销售订单界面。
查询销售订单的修改记录,通过事务码:VA03点击按钮,进入订单的更改日志界面,点击记录可查看具体修改信息。
:模块举例)(2MM查询采购订单的修改记录,通过事务码:me23n进入采购订单界面。
点击环境>-表头更改,进入表头更改记录界面。
选择项目,点击环境>-项目更改,进入项目更改记录界面。
:模块举例QM)3(.查询供应商目录更改历史:进入供应商目录查询界面。
QI03通过事务码输入(进入显示更改界面,输入物料编号,点击按钮。
物料概览界面。
进入显示更改-点击每一行,查看更改明细。
:提供标准的报表查看修改记录5)SAP(,进入更改查询界面。
rsscd100通过事务码输入最后更改人,可以查到相应更改动作。
–关于主数据变更的记录Change master record 2.模块的生产版本为例:以PP)申请变更:1(.进入创建更改主配方界面。
申请修改主数据,通过事务码CC01按钮或者按回车键,进入下一屏幕,输入更改描述,选择更改起始日,更改原因和点击更改编号状态。
按钮或者按回车键,进入下一屏幕,勾选修改对象。
点击在任务清单项处打钩,点击对象,选择要修改的物料。
按钮,生成变更号。
点击)变更执行:2(进入更改主配方的界面,输入物料和更改编号。
C202通过事务码按钮,进入变更界面。
点击变更主配方。
)查询变更:(3进入查血更改的界面。
C261通过事务码点击确定查看变更。
点击查看明细。
Log Data Change -3.后台配置模块资源主数据:PP进入后台配置界面spro)通过1(.点击红色框开始配置。
定义工作中心类别。
>-通用数据>->-基本数据>-物料清单>-工作中心选择生产在相应类别的更改文档处选择。
)查询变更(2进入,工作中心变更凭证。
cr10通过事务码按钮,进入变更详细界面。
SAP审计追踪功能-AUT10
SAP审计追踪功能-AUT10在SAP ERP系统中有一个事务代码能够查询到针对事务代码,文档对象的变更记录,这样的功能不仅能够对于用户日常的操作进行管理,也方便审计进行系统数据的提取,这个事务代码就是AUT10,这里简单介绍一下AUT10的使用方法。
一.如何进入AUT10操作界面1.事务代码及路径直接通过事务代码:AUT10或者通过如下路径都可以进入审计追踪功能的操作界面2.模式选择AUT10功能本身有两种模式:标准模式和增强模式,点击下图中的按钮就可以在两种模式间进行切换上图↑为界面较为精简的标准模式,下图↓为界面较为繁杂的增强模式这里需要注意的是:增强模式并不是标准模式的进化版,这两种模式各自分别针对不同的对象,例如标准模式下只能查询事务代码的操作记录;增强模式下只能查询表与更改变更号的操作记录。
3.界面说明AUT10界面为左右结构,右边是标准的查询界面里面有各种筛选条件(下图↓)左侧则有两个功能区,上半部分是快速查询界面,用于直接查询关键信息(如事务代码,表之类,如下图↓)下半部分为路径查询区域,可以标准路径找到对应的事务代码(如下图↓)二.A UT10正确的打开方式1.查询事务代码操作记录①模式上选择标准模式,所有事务代码操作记录的查询都在标准界面进行;②输入查询条件可以在左上角直接输入事务代码,并点击按钮也可以通过路径选择事务代码,并左键双击操作完这两步的最终效果是会在右侧的查询界面中自动填上对应的事务代码,如下图↓所示上图↑中不仅需要填写需要查看的事务代码,还需要设定需要查看的时间区间所以“开始日期”“开始时间”“结束日期”“结束时间”;同时为了让程序运行得更有效率,还可以具体到更改者,如下图↓;想要看到更为细节的内容可以勾上和。
③查询结果说明所有内容输入完成后通过点击按钮进行查询,查询结果如下:输出的结果分为两部分显示,上半部分的长文本日志以及下半部分的更改日志,如上图↑。
AUT10对于事务代码操作记录的追踪是细化到每一个表字段程度的,比如下图↓中的用户LISF在2017.10.17更改了采购订单的交货计划行日期,从2017.09.03改到了2017.10.312.查询表的操作记录①模式上选择“增强模式”,用于查询表的修改记录②输入查询条件左上角应选择“表”后再输入相应的表名,如下图↓我需要查询表EKET的操作记录,那么输入完相应的信息点击即可这种情况下,事务代码路径界面其实可有可无,填写完表并点击查询后,表名会带到右侧界面的查询条件上,如下图↓上图↑的查询界面有很多页签,但是千万别被表现搞混,坚持需要查什么内容选择哪个页签的原则即可,毕竟坚持原则的人最终都会取得胜利。
SAP功能位置主数据录入及修改记录表-K
SAP功能位置主数据录入及修改记录表NDCS/NG编号: NA 电站: K 计划工厂:o5010 o5020 ☑5030 机组号: 8 系统:__DTZ、DNL__改造工程师/电话:徐斌然/611205 本表共 17 项数据说明:1.“电站”指SAP中功能位置的公司代码,分别指:大亚湾,岭澳,岭东;分别对应的计划工厂代码:5010(大亚湾),5020(岭澳),5030(岭东);2. 表格内所填内容不能用手写,该表格作为ND通知单的附件,附件的内容须与完工证书的内容一致,不一致的功能位置代码行必须删除;3.为防止丢失及错误,此表填写完成后应编制页码;4. 为保证功能位置编码正确,由TEN填写SAP格式的功能位置供相关部门审查;功能位置详描述必须详细准确,并中英文双语.5.PA/PO隔离:参考规程1/2K0、1/2K2;相关设备主要是指:PO(MO),ZV(MO),CO,FI,RS、DG等设备的动力电源,加热器电源,TPL开关;500/400/220KV开关的电源;TB的上游电源开关和辅助电源;电动阀的电源,TPL开关;气动阀的气源隔离阀(必须是唯一的才关联),可参考临时管理规定《TM-OL-OPE-20110001》;6.项目编号应填写完整,如果是ECN需注明;7.为防止丢失,此表填写完成后应进行页码编制;8.请删除多余的空白行;9.专业请按照SAP主工作中心要求填写,如:MS:静机处;MR:转机处;MI:仪表计算机处;ME:电气处;10. PA/PO,关联设备是重要运行相关数据,运行部门在审查设计包时需重点审查,以确保数据正确。
11. 涉及数据修改,只填写需修改的栏目内容,其他栏目填写"不变"二字.12. 对于使用库存备件的设备,需在"技术参数/备件编码"栏内填写备件码.第页总页。
sap 标准文本码修改记录
SAP(系统、应用与产品)在其ERP和其他解决方案中提供了许多标准文本,这些文本可能用于描述、注释、消息等。
在某些情况下,用户或实施顾问可能需要修改这些标准文本以适应其特定需求或业务环境。
要查看SAP中的标准文本码的修改记录,您通常需要执行以下步骤(这里以SAP ERP系统为例,具体步骤可能会因版本和模块而异):使用WE02/WE05事务代码:WE02:编辑文本WE05:显示文本列表在SAP ERP中,您可以使用WE02事务代码来查看或编辑标准文本。
如果您只是想查看文本的列表,可以使用WE05。
导航到所需的文本:在WE02或WE05中,输入您想查看的文本ID(例如,长文本可能是LTXT 类型,而短文本可能是STXT类型),然后选择语言版本。
查看修改记录:在显示的文本屏幕上,通常不会直接看到修改记录。
但是,有些SAP系统可能已启用更改文档或更改历史记录功能。
如果您的系统启用了更改文档(CDHDR/CDPOS表),则可以使用相关的表或事务代码(如SM35、BD87等)来查看与特定对象相关的更改。
另一种方法是使用“文档信息系统”(Document Info System, 简称DIS)功能,但这需要您的系统已安装并配置了此组件。
使用审计日志:如果您的SAP系统启用了审计日志功能,并且为相关的文本更改操作配置了审计,那么您可以使用SM19或SM20事务代码来查看这些更改。
自定义表或开发:有些SAP客户可能已实施自定义解决方案来跟踪文本或其他对象的更改。
这可能涉及自定义表、增强实施或其他开发活动。
在这种情况下,您需要与您的SAP技术团队或实施顾问合作,以确定如何访问这些更改记录。
版本控制:虽然标准SAP ERP并不总是为所有文本提供版本控制功能,但在某些情况下(如SAP Solution Manager中的项目文档),您可能会找到版本控制功能。
使用此功能,您可以查看文本的先前版本和更改历史记录。
总之,要查看SAP中的标准文本码的修改记录,您可能需要检查多个来源或使用多种方法。
SAP修改表数据方法汇总
SAP修改表数据方法汇总SAP中直接修改表、视图的Tcode有SE16N,SM30,SE16,SE38, SE37 等。
目录SAP修改表数据方法汇总 (1)一、通过debug在SE16下修改数据表数据 (1)二、 SE16N界面输入&SAP_EDIT (2)三、 SE38执行程序RKSE16N_EDIT (3)四、 SE16N进入DEBUG调试模式 (6)五、SE37输入SE16N_INTERFACE (8)一、通过debug在SE16下修改数据表数据1、进入SE16,选择要修改的表,设置Data Browser 的Output list 为“SE16 standard list”;2、让SE16显示出你要修改的数据,命令栏里输入“/h”;3、双击要修改的行,进入debug界面,在程序 SAPLSETB / LSETBF01 的第25行的if处设置断点refresh exclude_tab.if code = 'SHOW'.F8执行,在断点处,将code的值改为“EDIT”(当然也可以改为“INSR”、“DELE”)4、修改除key值外的任何值,然后保存。
第一步,进入SE16,输入需要修改的表的名字第二步,在选择屏里输入点选择项来找数据,找你需要修改的那行第三步,在表的内容输出的界面,在command field里,就是用来输入tcode的那个地方,输入/H,回车,会看到下面有绿色提示,意思是debug on第四步,找到需要修改的那一行,双击来显示,这个时候会进入代码,main program是“SAPLSETB”,source code of 是“LSETBF01”,在25行处,可以看到以下代码:refresh exclude_tab.if code = "SHOW".……第五步,在这个if前加个断点,然后把code的值改成‘EDIT’第六步,按F8运行,看到出来的结果是除了key field,其他的字段都可以被修改了,修改后按保存按钮二、 SE16N界面输入&SAP_EDIT其中使用SE16N修改表需要先输入命令&SAP_EDIT,回车左下角显示激活SAP编辑功能后,就可以对相应的表进行新增、删除、修改的操作。
sap工艺路线修改记录
sap工艺路线修改记录
对于SAP工艺路线的修改,通常需要记录以下内容:
1. 修改日期和时间:记录修改工艺路线的具体日期和时间。
2. 修改人员:记录进行工艺路线修改的人员,包括姓名和职位。
3. 修改目的:记录修改工艺路线的目的和原因。
例如,可能是为了提高生产效率、降低成本或满足客户需求等。
4. 修改内容:详细描述对工艺路线的具体修改内容。
包括新增、删除或修改工序、调整工序顺序、修改工序参数等。
5. 修订版本:如果对工艺路线进行了多次修改,需要记录每个版本的修订号。
6. 审批记录:记录对修改工艺路线的审批过程。
包括审批人员、审批结果和审批日期等。
7. 影响分析:对工艺路线修改可能产生的影响进行分析。
包括对产品质量、生产周期、人力资源和设备需求等方面的分析。
8. 实施计划:记录修改工艺路线的实施计划和时间表。
包括具体的实施步骤和所需资源。
9. 结果评估:记录对修改工艺路线的效果进行评估的结果。
包括是否达到预期目标、存在的问题和改进措施等。
通过以上的记录,可以对SAP工艺路线的修改进行完整的跟踪和管理,确保修改的准确性和可追溯性。
SAPMM预留单据的历史修改记录?
SAPMM预留单据的历史修改记录?SAP MM 预留单据的历史修改记录?在笔者眼里,SAP系统是一个高度严谨的软件系统。
用户在SAP 系统里的相关操作,系统都会做记录。
用户对于系统的相关单据的增删改,SAP系统都有保留change history,并且可以很方便被人查询这些change history。
但是笔者发现,并不是所有单据的修改,SAP系统都提供很好的查询change history的方式,比如Reservation单据。
如下的预留单ITEM,笔者有将数量由80改成了81,笔者试图找到该预留单据的change history, 如同查询其它单据修改记录的方式,找遍了MB23事务代码里的诸多菜单,都找不到。
上网查资料,发现SAP标准系统是不保留预留单据的change history信息的。
看来SAP保持增删改的痕迹以方便后续追溯的严谨风格,执行的并不彻底!当然SAP系统对于任何单据的修改都有记录在表CDHDR & CDPOS里,但是标准系统里,这2个表里的数据,对于业务用户,并不能方便的查询。
SAP NOTE 1927840 供参考。
1927840 - Change log for reservationsSymptomCreate a Purchase Requisition with reference to a reservationand later make changes to delivery date,for example, in transaction ME52N. The field RESB-BDTER is updated with the delivery date changes but no change log is written.You would like to record changes made to reservations.Reproducing the IssueCall a reservation in transaction MB22.Make a change to the reservation.Save the changes.There is no change log.CauseThis is standard SAP system design.ResolutionIn enhancement MBCF0007 you find user exit EXIT_SAPMM07R_001.This user exit is called directly after the COMMIT WORK statement in MB21/MB22 and contains information related to the old and new item details in table RESB. You could use this user exit to update the reservation changes to a custom table.The standard change log table are CDHDR & CDPOS. If you were to use these as part of a custom development to capture reservation changes you would have to pay special attention to performance as these tables are often very large.2019-04-28 写于苏州市。
SAP中如何查找BOM修改记录
SAP中如何查找BOM修改记录1.0 相关BOM介绍⽅案⼀:se38:RCS00100,F8执⾏(DATUM表⽰开始⽇期,tabname:BOM的Header,填写STKO;如落实到item级别,填写STPO)。
然后再执⾏即可看到00104708该⽤户所做得创建,修改,删除bom得所有记录(哈哈很简单把,我也觉得很简单,⽽且结果确实看到了,我所做得关于bom得每⼀笔数据,成功!)⽅案⼆:se11/se12:CDHDR【CDHDR是记录Header层⾯的Change,CDPOS记录item级别的Change】(实⽤程序-表内容-显⽰)第⼀步:SE12,Table=CDHDR,Table Contents。
字段选择如下填写:Change doc. object=STUE(排他性的)Date:起⽌⽇期,⾃⼰确定,⽇期段落越⼤,运⾏时间越长Transaction:CS02(除了CS02变更BOM之外,我想不出还有什么删除BOM的⽅法)Appl.obj.change:U(只能是U,但我本⼈也很迷惑为什么删除了的BOM不能是D)执⾏。
系统将显⽰有关的记录,记录下有关的Object value的号码。
第⼆步:SE12,Table=CDPOS,Table Contents。
字段选择如下填写:Change doc. object=STUE(排他性的)Object Value:从第⼀步获得Table name:STPO(排他性的)Change ID:D,U反映的是item值的新旧对⽐记录2.0 相关BOM代码-------------------------------------------------求SAP系统⽤ABAP开发关于BOM的修改记录或⽇志报表[程序未测试]------------------------------------------1 concatenate sy-mandt 'M' itab_bom-stlnr into objectid.2 clear itab_cdhdr.3 refresh itab_cdhdr.4 clear change_data.5 refresh change_data.67CALL FUNCTION'CHANGEDOCUMENT_READ_HEADERS'8EXPORTING9 DATE_OF_CHANGE = '00000000'10 OBJECTCLASS = 'STUE'11 OBJECTID = objectid12 TIME_OF_CHANGE = '000000'13 USERNAME = ''14TABLES15 I_CDHDR = ICDHDR16EXCEPTIONS17 NO_POSITION_FOUND = 118 OTHERS = 2.1920 if icdhdr[] is not initial.21 loop at icdhdr where udate >= s_erdat-low.22 itab_cdhdr-objectclas = icdhdr-objectclas.23 itab_cdhdr-objectid = icdhdr-objectid.24 itab_cdhdr-changenr = icdhdr-changenr.25 itab_cdhdr-udate = icdhdr-udate.26 append itab_cdhdr.2728CALL FUNCTION'CHANGEDOCUMENT_READ_POSITIONS'29EXPORTING30 CHANGENUMBER = ICDHDR-CHANGENR31* TABLEKEY = TABKEY32 TABLENAME = 'STPO'33IMPORTING34HEADER = CDHDR35TABLES36 EDITPOS = ICDSHW37EXCEPTIONS38 NO_POSITION_FOUND = 139 OTHERS = 2.40*41* select objectclas objectid changenr tabname tabkey fname chngind 42* value_new value_old from cdpos into table change_data43* where objectclas = 'STUE' and objectid = bom_temp-objectid44* and tabkey = bom_temp-tabkey and tabname = 'STPO' and45* ( fname = 'IDNRK' or fname = 'MENGE' or fname = 'KEY' ). 4647 if icdshw[] is not initial.48 loop at icdshw.49MOVE itab_cdhdr-objectclas TO change_data-objectclas.50MOVE itab_cdhdr-objectid TO change_data-objectid.51MOVE itab_cdhdr-changenr TO change_data-changenr.52MOVE itab_cdhdr-udate TO change_data-udate.53MOVE ICDSHW-TABNAME TO change_data-tabname.54MOVE ICDSHW-TABKEY TO change_data-tabkey.55MOVE ICDSHW-FNAME TO change_data-fname.56MOVE ICDSHW-F_OLD TO change_data-value_old.57MOVE ICDSHW-F_NEW TO change_data-value_new.58MOVE ICDSHW-CHNGIND TO change_data-chngind.59APPEND change_data.60 endloop.61 endif.62 endloop.63 endif.。
SAP?几种查表的方法
SAP 几种查表的方法说说我常用的几种方法。
1,F1。
毫无悬念,当我想要知道某一个字段存在哪一张表里的时候,我就会下意识的按F1,然后去看Technical Infomation。
我觉得有一半左右的机会可以得到我想要的答案2,SAP Application。
用SE16进入Data Browser,然后F4,点击进入SAP Application。
然后可以看到,一个表和应用相匹配的树状图,根据当前进行的操作内容,查找对应的表。
3,CDHDR and CDPOS。
这两个表记录了SAP内所有的修改记录:CDHDR是change document header;CDPOS是change document position;一个是header信息,一个是Item信息如果想知道某个字段在哪个表中,可以去修改这个字段,然后用SE16到CDHDR中查找你刚才的更改记录,输入Name,Date,Time可以缩小范围:然后根据显示出的Change doc. object,Object Value和Document number去CDPOS中查找细节,就可以找到更改的表了4,ST05。
SQL Trace。
SQL trace记录了在系统里所做的操作访问了数据库中的那些表。
点击Active Trace后,进行和要查找的字段相关的操作后,再Deactive trace,然后Display Trace查看刚才操作的过程中访问过哪些表。
有的时候,访问的表很多,但是多数不是想要找的,所以需要花时间去分析。
以上四个是我常用的方法,而且我觉得很有效了。
这四个方法在Dennis Barrett的《18 Techniques for Locating the Underlying Data of a Screen Field》里都有提及,他提到的其余的方法没有用过,不做评价了。
不过有一段hint还是不错的:Many transactions have header information and detail or item lines in separate linked tables.Remember that R/3 is a German pro duct. “Kopf” is Germanfor “head,” and。
SAP报表后台执行及结果查询操作手册
报表后台执行及结果查询操作手册说明:以ZRSD112的后台执行为例。
一、Tcode:ZRSD1121.输入条件:先根据实际查询的需要,输入报表条件。
2.选择菜单栏:程序——后台执行,或者使用快捷键F9。
(不再点击或直接按F8)3.输入“假脱机请求”的名称(建议尽量使用有具体意义的名称),选中“新的假脱机请求”,其他两个选项不要选中(见下图),回车。
假脱机选项中,仅仅选择“新的假脱机请求”,其他两个均不要选择在弹出的“报警”框直接确认。
在弹出的“开始时间”框中:先点击“立刻”——> 然后点击通常在屏幕的左下脚会出现如下的提示信息:二、Tcode:SM371、输入作业选择条件(特别注意下图红色标出的几个地方)点击“执行”按钮(或直接按F8),进入下一屏幕)。
下图中红色框的状态:“Active”,表示该程序已经被安排作为后台作业,正在后台进行执行,此时程序的输出结果并没有产生,根据报表的执行速度,需要耐心等待……为提高系统使用效率,建议暂时退出系统,等待系统自动执行!!当状态由“Active”变成“已完成”(可以按F8进行刷新),如下图时,表示程序已经执行完成,可以查看结果了。
三、输出结果的查看(个人建议使用方式二查看——zzb)方式一:通过Tcode:SM37进行查看,在上图所示的界面内。
1、选中带有图标(表示该作业存在输出结果)的记录,然后点击按钮;2、注意检查“标题”是不是在前面已经输入的“假脱机请求”名称(一、3),然后点击进行查看。
方式二:通过Tcode:SP01查看。
1、根据需要在输入屏幕中输入查看条件,然后点击执行(或直接按F8)2、注意检查“标题”是不是在前面已经输入的“假脱机请求”名称(一、3),然后点击进行查看。
四、输出结果的整理和导出1、页数的调整注意查看输出结果的页数,见下图为节省系统资源,系统默认只显示第1至10页,当输出结果大于10页时,可参照下图修改页数。
根据需要在下图中输入需要查看的页数(满足需要即可,不要设置太大)(对下图的信息直接回车确认)2、结果的导出(把输出结果保存为EXCEL文件,扩展名为.XLS)A.依次选择菜单:假脱机请求——转发——保存到本地文件B.选择保存格式为“电子表格”C.确定输出路径(也可直接按F4键)D.输入保存文件名(注意加上.XLS的扩展名),如zzb.xls,点击保存。
SAP修改数据表(tables)的方法
SAP修改数据表(tables)的方法SAP中,具体而言,可以有以下三种方法可以直接修改表本例中,移动类型的参数预留对应的表字段为T156-rstyp,移动类型为541.1.2.1 方法1:通过SE16N用&SAP_EDIT直接修改表记录SE16N,输入表名、移动类型以及选择相应字段,然后输入&sap_edit,回车,即提示,点击执行(F8)此时系统为可编辑状态可以直接修改值,可以插入值、删除值1.2.2 方法2:事务代码SE16进入Debug界面,直接修改表字段值事务代码SE16,输入表T156,移动类型541,执行,在下图中命令输入框中,输入/H,系统则将进入debug,出现提示在Debug的界面中的第八十六行,设置断点(BreakPoint),然后执行到断点,修改字段Code的值,从Show (显示)修改为Edit(编辑)。
修改Code值完毕后,继续执行,则可以修改表字段的值,当修改晚相应的字段值,点击保存 1.2.3 方法3通过ABAP程序更改表譬如在本例中,通过以下程序,可直接修改表字段值REPORT zchange_t156_rstyp.tables t156.UPDATE T156 SET rstyp = 'U'WHERE bwart = '541'.if sy-subrc is initial.WRITE / 'Field T156-RSTYP changed from " " to "U"'.else.WRITE / 'Field T156-RSTYP could not be changed'.endif.(编辑:cindy liu )。
sap表修改记录查询
目录SAP表修改记录查询........................................................................................... 错误!未定义书签。
更改记录表CDHDR和CDPOS ....................................................................... 错误!未定义书签。
SAP保存操作记录CDHDR和CDPOS表..................................................... 错误!未定义书签。
通过CDHDR CDPOS获取增量数据............................................................... 错误!未定义书签。
其他方式................................................................................................................ 错误!未定义书签。
SAP表修改记录查询SAP中修改频率较低的定制表(T001等)一样都会有修改记录存在,查看一个表有无修改记录能够在SE11中查看他的技术设置,若是其中的LOG DATA CHANGES选中那么表示此表有历史修改记录存在。
要查看他的修改记录能够利用Tcode:SCU3 。
菜单途径:工具-定制-IMG-IMG Logging参考说明:系统读取历史修改记录的Function :DBLOG_READ_WITH_STATISTIC转载:SE16N 通过&sap_edit 能够修改表,修改表后如何查看呢。
分两步进行。
1. 事务码SE16N, 然后输入表 SE16N_CD_Key,输入相应的查询条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录SAP表修改记录查询 (1)更改记录表CDHDR和CDPOS (2)SAP保存操作记录CDHDR和CDPOS表 (2)通过CDHDR CDPOS获取增量数据 (7)其他方式 (11)SAP表修改记录查询SAP中修改频率较低的定制表(T001等)一般都会有修改记录存在,查看一个表有没有修改记录可以在SE11中查看他的技术设置,如果其中的LOG DATA CHANGES选中则表示此表有历史修改记录存在。
要查看他的修改记录可以使用Tcode:SCU3 。
菜单路径:工具-定制-IMG-IMG Logging参考说明:/saphelp_nw04 ... cfab6d/frameset.htm系统读取历史修改记录的Function :DBLOG_READ_WITH_STATISTIC转载:/blog/1317901SE16N 通过&sap_edit 可以修改表,修改表后如何查看呢。
分两步进行。
1. 事务码SE16N, 然后输入表SE16N_CD_Key,输入相应的查询条件。
例如table 名,查出相应的ID2. 事务码SE16N,然后输入表SE16N_CD_DATA, 输入相应的ID,就可以查询到修改的内容。
其他方式:表DBTABLOGCDHDR更改日志表头CDPOS更改日志行项目查询用户的最近一次登陆日期和时间,USR02中有个上次登陆日期和登陆时间;或者用SE38跑下RSUSR200,输入用户名即可查询上次登陆日期还有个方法是ST03N,专家模式,选择时间段,选择user和user profile,可惜,小弟权限不够没法测试更改记录表CDHDR和CDPOSSE16N查询CDPOS表,在字段OBJECTCLAS(更改文档对象,VERKBELEG表示销售凭证,不同的凭证类别代码不同的文档对象,如需查看文档对象,可使用事务代码SCDO,相关表为TCDOB/TCDOBT)中输入:VERKBELEG,TABNAME(表名)输入:VBAK/VBAP(VBAK 查询整张订单、VBAP查询订单行项目),CHNGIND(修改标识符)输入:D(U表示更新,I 表示插入,E表示删除单个字段,D表示删除整行或整个单据),执行后,字段OBJECTID(对象价值)表示订单号码,字段TABKEY(表键)中的最后两位表示订单行号,同理,我们可查看其他删除或修改的各种单据和凭证。
SAP保存操作记录CDHDR和CDPOS表转载自/derrial/item/4eb7c5da614ed83c49e1dd0b(在此基础上做了修改)sap的字段和对象的修改都会保存旧值,数据保存在CDHDR和CDPOS表中,提取旧值可以采用两种方法1)使用sap的标准函数CHANGEDOCUMENT_READ_HEADERS和CHANGEDOCUMENT_READ_POSITIONSCALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS' "Change document: Read change document itemsEXPORTING*archive_handle = 0" sy-tabix Handle on Open Archive Fileschangenumber =" cdpos-changenr Change document number*tablekey = SPACE" cdpos-tabkey Object class table key*tablename = SPACE" cdpos-tabname Object class table name*tablekey254 = SPACE" cdpos_uid-tabkey Table Key for CDPOS in Character 254*keyguid = SPACE" cdpos_uid-keyguid UUID in Character Format*keyguid_str = SPACE" cdpos_str-keyguid UUID in Character FormatIMPORTINGheader =" cdhdr Change document header (structure CDHDR)et_cdred_str =" cdred_str_tab Additional Change Document - Table for STRINGs * TABLES*editpos =" cdshw Table with edited change document itemsEDITPOS_WITH_HEADER="CDRED更改文档,显示结构EXCEPTIONSNO_POSITION_FOUND = 1"No item founWRONG_ACCESS_TO_ARCHIVE = 2"incorrect access to archive2)使用select语句直接从表中读取。
直接使用SELECT语句读取数据的示例:*提取信用额度字段修改的抬头信息select cdhdr~changenr cdhdr~udatecdhdr~utime into corresponding fields of table p_cdhdr from cdhdr where cdhdr~objectclas = 'KLIM' and cdhdr~objectid = wa_customerinfo-kunnr. if sy-subrc = 0. *提取信用额度字段修改的字段值select cdpos~changenr cdpos~value_oldcdpos~value_new into corresponding fields of table p_cdpos fromcdpos for all entries in p_cdhdr where cdpos~objectclas = 'KLIM'and cdpos~objectid = wa_customerinfo-kunnr and cdpos~changenr =p_cdhdr-changenr and cdpos~tabname = 'KNKK' and cdpos~fname ='KLIMK'. if sy-subrc = 0. endif. endif.可以在CHANGEDOCUMENT_READ_HEADERS中设置中断获得对象类型。
ex.提取有变动的Acc. changesSELECT SINGLE tabkey value_new INTO (cdpos-tabkey,ikoinh)FROM cdposWHERE objectclas = 'KRED'AND objectid = itab-lifnrAND changenr = itab-changenrAND tabname = 'LFBK'AND fname = 'KOINH'.提取有变动的vendor最新日期SELECT MAX( udate ) INTO itab-cndate FROM cdhdrWHERE objectclas = 'KRED' AND objectid = itab-lifnr.--------------------------------------------------------------------------------抓取所有有变动的程序report ztest001.TYPE-POOLS slis.DATA : cdhdr TYPE cdhdr.SELECT-OPTIONS :s_objcls FOR cdhdr-objectclas OBLIGATORY,s_objtid FOR cdhdr-objectid,s_chngnr FOR cdhdr-changenr,s_usrnam FOR cdhdr-username DEFAULT sy-uname,s_udate FOR cdhdr-udate DEFAULT sy-datum,s_time FOR cdhdr-utime,s_tcode FOR cdhdr-tcode,s_plncnr FOR cdhdr-planchngnr,s_chngno FOR cdhdr-act_chngno,s_wsplnd FOR cdhdr-was_plannd,s_chngid FOR cdhdr-change_ind.SELECTION-SCREEN SKIP.PARAMETERS p_max TYPE numc3 OBLIGATORY DEFAULT '200'.*---------------------------------------------------------------------*TYPES :BEGIN OF ty_s_cdhdr.INCLUDE STRUCTURE cdhdr.TYPES : checkbox,END OF ty_s_cdhdr,BEGIN OF ty_s_cdpos.INCLUDE STRUCTURE cdpos.TYPES : checkbox,END OF ty_s_cdpos.*---------------------------------------------------------------------*DATA :* Layout for ALVgs_layout TYPE slis_layout_alv,* Change document headert_cdhdr TYPE TABLE OF ty_s_cdhdr.*---------------------------------------------------------------------*START-OF-SELECTION.* Read Change document headerSELECT * INTO TABLE t_cdhdrUP TO p_max ROWSFROM cdhdrWHERE objectclas IN s_objclsand objectid in s_objtidand changenr in s_chngnrAND username IN s_usrnamAND udate IN s_udateAND utime IN s_timeAND tcode IN s_tcodeAND planchngnr IN s_plncnrAND act_chngno IN s_chngnoAND was_plannd IN s_wsplndAND change_ind IN s_chngid.gs_layout-zebra = 'X'.gs_layout-colwidth_optimize = 'X'.gs_layout-box_fieldname = 'CHECKBOX'.* Display ALVCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program= sy-cprogi_callback_user_command = 'USER_COMMAND'i_structure_name= 'CDHDR'is_layout= gs_layoutTABLESt_outtab= t_cdhdr.*---------------------------------------------------------------------**FORM USER_COMMAND* *---------------------------------------------------------------------*FORM user_command USING u_ucomm TYPE syucommus_selfield TYPE slis_selfield."#EC CALLED* Macro definitionDEFINE m_sort.add 1 to ls_sort-spos.ls_sort-fieldname = &1.ls_sort-up = 'X'.append ls_sort to lt_sort.END-OF-DEFINITION.DATA :ls_cdhdr TYPE ty_s_cdhdr,ls_sort TYPE slis_sortinfo_alv,lt_sort TYPE slis_t_sortinfo_alv,*Change document itemslt_cdpos TYPE TABLE OF ty_s_cdpos.CASE u_ucomm.WHEN '&IC1'.PERFORM check_marked USING us_selfield.*Read Change document itemsLOOP AT t_cdhdr INTO ls_cdhdr WHERE checkbox = 'X'.SELECT * APPENDING TABLE lt_cdposFROM cdposWHERE objectclas = ls_cdhdr-objectclasAND objectid= ls_cdhdr-objectidAND changenr= ls_cdhdr-changenr.ENDLOOP.m_sort 'CHANGENR'.*Display ALVCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_structure_name = 'CDPOS'is_layout= gs_layoutit_sort= lt_sortTABLESt_outtab= lt_cdpos.ENDCASE.ENDFORM." USER_COMMAND*--------------------------------------------------------------------FORM check_marked USING us_selfield TYPE slis_selfield.FIELD-SYMBOLS :<cdhdr> TYPE ty_s_cdhdr.READ TABLE t_cdhdr TRANSPORTING NO FIELDS WITH KEY checkbox = 'X'.IF NOT sy-subrc IS INITIAL ANDNOT us_selfield-tabindex IS INITIAL.READ TABLE t_cdhdr INDEX us_selfield-tabindex ASSIGNING <cdhdr>.<cdhdr>-checkbox = 'X'.ENDIF.ENDFORM.通过CDHDR CDPOS获取增量数据REPORT zscm_vendor2 LINE-SIZE 1023.DATA: BEGIN OF itab OCCURS 0,spras LIKE lfa1-spras,lifnr LIKE lfa1-lifnr,name1 LIKE adrc-name1,name3 LIKE adrc-name3,regio LIKE lfa1-regio,stras LIKE lfa1-stras,str_suppl1 LIKE adrc-str_suppl1,pstlz LIKE lfa1-pstlz,telf1 LIKE lfa1-telf1,telfx LIKE lfa1-telfx,name2 LIKE knvk-name1,smtp_addr LIKE adr6-smtp_addr,buy_id(12) TYPE c,stceg LIKE lfa1-stceg,banka LIKE bnka-banka,bankn LIKE lfbk-bankn,vendor_type(3) TYPE c,*balance_type(4) TYPE c,END OF itab.DATA: BEGIN OF itab_temp OCCURS 0 , adrnr LIKE lfa1-adrnr.INCLUDE STRUCTURE itab. DATA: END OF itab_temp.DATA: BEGIN OF itab_adrc OCCURS 0, addrnumber LIKE adrc-addrnumber,name1 LIKE adrc-name1,name3 LIKE adrc-name3,str_suppl1 LIKE adrc-str_suppl1,smtp_addr LIKE adr6-smtp_addr,END OF itab_adrc.DATA: BEGIN OF itab_knvk OCCURS 0, lifnr LIKE lfa1-lifnr,name2 LIKE knvk-name1,END OF itab_knvk.DATA: BEGIN OF itab_bnka OCCURS 0,lifnr LIKE lfbk-lifnr,banka LIKE bnka-banka,bankn LIKE lfbk-bankn,END OF itab_bnka.DATA: BEGIN OF itab_lfb1 OCCURS 0,lifnr LIKE lfb1-lifnr,bukrs LIKE lfb1-bukrs,zterm LIKE lfb1-zterm,END OF itab_lfb1.DATA: changenr LIKE zcdhdr_max-changenr. PARAMETER: date TYPE syst-datum.DATA: BEGIN OF itab_object OCCURS 0,objectid LIKE lfa1-lifnr ,END OF itab_object.PERFORM getvendordata.*&---------------------------------------------------------------------**&Form getvendordata*&---------------------------------------------------------------------*FORM getvendordata.** get max changenr*SELECT MAX( zcdhdr_max~changenr )*INTO changenr*FROM zcdhdr_max*WHERE zcdhdr_max~erdat < date .* get objectid from cdhdr by using kred, max changenr, and dateSELECT cdhdr~objectidINTO CORRESPONDING FIELDS OF TABLE itab_object FROM cdhdrWHERE cdhdr~objectclas = 'KRED' AND*cdhdr~changenr > changenr ANDcdhdr~udate = date .LOOP AT itab_object.IF itab_object-objectid+0(1) = 'B'.“B为公司职员DELETE itab_object.ENDIF.ENDLOOP.* DELETE ADJACENT dataSORT itab_object.DELETE ADJACENT DUPLICATES FROM itab_object. CHECK NOT itab_object[] IS INITIAL.SELECT lfa1~spraslfa1~lifnrlfa1~stceglfa1~regiolfa1~straslfa1~pstlzlfa1~telf1lfa1~telfxlfa1~adrnrlfa1~ernam AS buy_idlfa1~ktokk AS vendor_typeINTO CORRESPONDING FIELDS OF TABLE itab_temp FROM lfa1FOR ALL ENTRIES IN itab_objectWHERE lfa1~lifnr = itab_object-objectid.SELECTknvk~lifnrknvk~name1 AS name2INTO CORRESPONDING FIELDS OF TABLE itab_knvk FROM knvkFOR ALL ENTRIES IN itab_objectWHERE knvk~lifnr = itab_object-objectid.SELECT lfbk~lifnrbnka~bankalfbk~banknINTO CORRESPONDING FIELDS OF TABLE itab_bnka FROM lfbk INNER JOIN bnkaON lfbk~banks = bnka~banks ANDlfbk~bankl = bnka~banklFOR ALL entries IN itab_objectWHERE lfbk~lifnr = itab_object-objectid.CHECK NOT itab_temp[] IS INITIAL.SELECT adrc~addrnumberadrc~str_suppl1adrc~name1adrc~name3adr6~smtp_addrINTO CORRESPONDING FIELDS OF TABLE itab_adrcFROM adrc LEFT JOIN adr6 ON adrc~addrnumber = adr6~addrnumber FOR ALL entries IN itab_tempWHERE adrc~addrnumber = itab_temp-adrnr .LOOP AT itab_temp.READ TABLE itab_knvk WITH KEY lifnr = itab_temp-lifnr.IF sy-subrc = 0.itab_temp-name2 = itab_knvk-name2.ENDIF.READ TABLE itab_bnka WITH KEY lifnr = itab_temp-lifnr.IF sy-subrc = 0.itab_temp-banka = itab_bnka-banka.itab_temp-bankn = itab_bnka-bankn.ENDIF.READ TABLE itab_adrc WITH KEY addrnumber = itab_temp-adrnr.IF sy-subrc = 0.itab_temp-name1 = itab_adrc-name1.itab_temp-name3 = itab_adrc-name3.itab_temp-str_suppl1 = itab_adrc-str_suppl1.itab_temp-smtp_addr = itab_adrc-smtp_addr.ENDIF.MODIFY itab_temp.MOVE-CORRESPONDING itab_temp TO itab.APPEND itab TO itab[] .CLEAR itab_temp.ENDLOOP.LOOP AT itab.WRITE:/ itab.ENDLOOP.*CALL FUNCTION 'WS_DOWNLOAD' *EXPORTING*filename = 'c:\vendor.txt'*filetype = 'DAT'*TABLES*data_tab = itab[]. ENDFORM.其他方式Tcode:STAD,SCU3,T03N。