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查找User更改历史记录
SAP查找User更改历史记录对前台业务的修改,系统都会保存更改的⽤户,更改时间,更改的位置(数据源),更改的内容(新值和旧值)。
当然对于PO之类的也可以看Changes ,对于系统没有提供Changes的地⽅,我们可以⽤下⾯的⽅法查找1. 通过TABLE:CDHDR更改凭证抬头CDPOS更改凭证项⽬2. 通过FUNCTION:CHANGEDOCUMENT_READ_HEADERS取得更改凭证抬头CHANGEDOCUMENT_READ_POSITIONS取得更改凭证项⽬如果不⽤OBJECTCLASS,查找过程会相当缓慢,下⾯是常⽤的OBJECTCLASS。
不过有些OBJECTCLASS会对应多个T-code,另外那两个Table⾥显⽰的T-Code有时候不是我们操作的真正的T-CodeADRESSE - xk01ADRESSE3 - su01BANF - me54nBELEG - vf21BETRIEB - vd02COND_A - me31kDEBI - xd02EINKBELEG - me22nENTRYSHEET - ml85FEATURE - ct04INCOMINGINVOICE - mrbrINFOSATZ - me13KLASSE - cl02KRED - xk02,XK01LIEFERUNG - vl03nMATERIAL - mm01MM_SERVICE - me22nMRP_AREA - mm01NRINTERVAL - omh6PFCG - pfcgREVISION - me32kSACH - fs00SPEC_TMP - ml10STLV - ml02VASMD - ac03VERKBELEG - va02另外下⾯的程序也是可以显⽰的(from /jackcnblogs/articles/580342.html )。
REPORT z_alv_cdhdr_cdpos.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*---------------------------------------------------------------------** What has been marked in t_cdhdr*---------------------------------------------------------------------*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.。
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 表修改记录查询
目录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 标准表的更改记录
sap 标准表的更改记录
SAP的标准表更改记录通常可以通过以下几种方式来追踪:
1. 审计日志(Audit Logs): 大多数SAP系统都会记录对数据库表的更改,包括插入、更新和删除操作。
这些记录通常可以在审计日志中找到。
2. 更改记录(Change Documents): SAP的更改管理工具,如SAP Solution Manager,可以追踪对SAP系统的更改。
这些更改记录可以包括对标准表的更改。
3. 版本控制: 如果使用了版本控制工具,如SAP GAM (SAP Governance, Risk, and Compliance) 或其他第三方解决方案,那么对标准表的更改可能会有版本控制记录。
4. 数据库日志: 如果SAP系统直接与关系型数据库(如Oracle, SQL Server, MySQL等)交互,那么数据库本身可能也会记录更改。
5. 自定义开发工具: 如果使用了自定义开发工具或脚本进行更改,那么这些工具或脚本本身可能也会记录更改历史。
要查看或追踪标准表的更改记录,通常需要具备相应的权限和配置。
此外,具体的步骤和工具可能会根据SAP系统的版本和配置有所不同。
如果你需要更具体的指导或帮助,建议联系你的SAP系统管理员或IT支持团队。
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 标准文本码修改记录
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 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页。
03 SAP修改物理表记录的三种新方法
第一种方法:
SE37,然后输入:SE16N_INTERFACE
点击
最后:
第二种方法:
SE16N,输入表名,然后回车
左上角输入“/h”,再拍一下回车,左下角绿灯提示“调试被激活”然后点击左上角小闹钟,出现如下图界面:
选择“桌面3”,然后输入变量“GD-EDIT”和“GD-SAPEDIT”,然后点击回车,如下图:
接下来,点击更改,输入值“X”,回车
最后,F8执行,弹出的界面,就是可以编辑物理表了。
第三种方法:
SE11,输入想要编辑的物料表:
选中想要修改的记录,然后点击眼镜查看:
在弹出界面左上角,输入“/h”:
拍一下回车:
然后再拍一下回车,系统会弹出如下界面:
双击红圈中的“code”,弹出如下界面:
然后点击红圈中的铅笔,删除“SHOW”,输入“EDIT”,回车,最后F8,弹出如下界面:
此条记录变为了可编辑状态,重新编辑后保存就可以了。
(完整)SAP电子记录审计追踪
审计追踪实现方式1.change document-系统标准自带(1)SD模块举例:查询销售订单的修改记录,通过事务码:VA03进入销售订单界面。
选择订单编号,点击环境>-更改,进入显示凭证更改界面。
位置路径:环境-更改点击按钮,进入订单的更改日志界面,点击记录可查看具体修改信息。
具体修改信息(2)MM模块举例:查询采购订单的修改记录,通过事务码:me23n进入采购订单界面。
点击环境〉—表头更改,进入表头更改记录界面。
选择项目,点击环境>—项目更改,进入项目更改记录界面。
(3)QM模块举例:查询供应商目录更改历史:通过事务码QI03进入供应商目录查询界面。
输入物料,点击确定点击更改凭证,查询更改记录。
点击查看明细.(4)PP模块举例:查询生产版本通过事务码C223进入生产版本查询界面.显示物料更改进入显示更改界面,输入物料编号,点击按钮.进入显示更改—物料概览界面.点击每一行,查看更改明细。
(5)SAP提供标准的报表查看修改记录:通过事务码rsscd100,进入更改查询界面。
输入最后更改人,可以查到相应更改动作。
2。
Change master record –关于主数据变更的记录以PP模块的生产版本为例:(1)申请变更:申请修改主数据,通过事务码CC01进入创建更改主配方界面。
点击按钮或者按回车键,进入下一屏幕,输入更改描述,选择更改起始日,更改原因和更改编号状态。
点击按钮或者按回车键,进入下一屏幕,勾选修改对象。
在任务清单项处打钩,点击对象,选择要修改的物料。
点击按钮,生成变更号.(2)变更执行:通过事务码C202进入更改主配方的界面,输入物料和更改编号.点击按钮,进入变更界面。
变更主配方。
(3)查询变更:通过事务码C261进入查血更改的界面。
点击确定查看变更。
点击查看明细。
3.后台配置-Log Data Change PP模块资源主数据:(1)通过spro进入后台配置界面点击红色框开始配置.选择生产>—基本数据>-物料清单〉-工作中心>—通用数据>-定义工作中心类别。
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 reservation and 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 标准文本码修改记录
sap 标准文本码修改记录SAP标准文本码(Standard Text Code)是一种用于管理SAP系统中的文本信息的机制。
它允许用户创建、修改和维护标准文本,以便在不同的场景中重复使用。
在SAP系统中,标准文本码广泛应用于各个模块和领域,如采购管理、销售管理、财务管理等。
本文将探讨SAP 标准文本码的修改记录。
一、SAP标准文本码的概述SAP标准文本码是由一系列字符组成的唯一代码,用于标识和定位特定的文本内容。
标准文本码可以包含文字、数字、特殊字符和符号。
在SAP系统中,标准文本码是通过事务码SO10创建和维护的,用户可以在其中定义文本的内容、格式和属性。
二、标准文本码的修改记录功能SAP系统提供了一种修改记录功能,用于跟踪对标准文本码的修改历史。
通过修改记录功能,系统记录每次对标准文本码的修改操作,包括修改人员、修改时间和修改内容。
这个功能对于追溯和审计标准文本码的修改非常有用,可以确保修改过程的透明和一致性。
三、标准文本码的修改记录示例以下是一个标准文本码的修改记录示例:修改记录ID:001修改人员:张三修改时间:2022年1月1日修改内容:将标准文本码“001”中的某个关键词从“ABC”修改为“XYZ”。
修改记录ID:002修改人员:李四修改时间:2022年2月1日修改内容:添加了一个新的段落到标准文本码“001”中。
通过修改记录示例可以清楚地看到,每次对标准文本码的修改都会有一个唯一的修改记录ID,同时记录了修改人员、修改时间和具体的修改内容。
四、SAP标准文本码的修改记录管理SAP系统提供了一些工具和功能用于管理和审计标准文本码的修改记录:1.修改记录查询:可通过事务码SO10或其他相关事务码查询标准文本码的修改记录。
用户可以根据修改记录ID、修改人员、修改时间等关键信息进行查询和筛选。
2.修改记录审批:可以设置审批流程和权限控制,对标准文本码的修改进行审批和授权。
这样可以确保只有经过审批的修改才能生效,提高系统的安全性和可控性。
自建表数据修改记录
一、研究背景:现在自建表建的对外维护程序渐增,有些关键字段的修改历史需要记录.比如:ZFI16的退税率维护更改历史. 就可以通过以下配置和程序来实现对此ZFI16表(维护TCODE:ZS69)的修改历史.二、实施1.配置:①对自建表中所有要记录其修改记录的字段的数据元素中的Further characteristics视图中的更改文档改打.②TCODE: SCDO保存后上面的所有参数函数等都会自动生成。
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 TO DA_OBJECTID.CALL FUNCTION 'ZFI16_WRITE_DOCUMENT'EXPORTINGOBJECTID = DA_OBJECTID TCODE = 'ZS69'UTIME = SY-UZEITUDATE = SY-DATUMUSERNAME = SY-UNAME* PLANNED_CHANGE_NUMBER = ' 'OBJECT_CHANGE_INDICATOR = 'U'* PLANNED_OR_REAL_CHANGES = ' '* NO_CHANGE_POINTERS = ' '* UPD_ICDTXT_ZYW8 = ' 'UPD_ZFI16 = 'U'TABLESICDTXT_ZFI16 = ICDTXT_ZFI16XZFI16 = XZFI16YZFI16 = YZFI16 .ENDFORM. "CHANGE_DOCUMENT_CREATE在保存的时候调用以上FORMWHEN 'SAVE'.PERFORM CHANGE_DOCUMENT_CREATE.三、参考文档BC414的P220-P227创建更改凭证(change document)/u2/66669/showart_1793208.html使用事务代码SCDO进入,点创建,输入更改凭证对象的名字,以Z或者Y打头,如ZBOOK。
如何追踪生产订单的修改记录
方法一:系统标准方法如何查找到production order的修改记录呢?因为有很多用户"赖皮",明明自己修改过某些资料,如qty or component,可就是不承认,并且还大骂SAP大大的有问题,真会气死人,所以想记录下来.HEHE,这里我就摘录一段SAP的NOTES给大家看看,如何去整这玩意.Note 390635 - Change documents for production and process orderSummarySymptomYou cannot activate the creation of change documents for production orders and process orders. Customizing table T399X (parameters dependent on order type) contains field FLG_DOC but you cannot maintain it using the Customizing transactions for production or process orders.Other termsProduction order, process orderT399X-FLG_DOCSPRO, BADIReason and PrerequisitesIt is not intended to use the SAP standard tool for the creation of change documents for production or process orders in the SAP standard system. The indicator in table T399X is only interpreted by maintenance orders and networks.The reason for this is that the tool cannot determine dependencies of changes and thus would log too many changes that would have a negative effect on the runtime.Example: A production order contains 10 operations and 1000 componentsCase 1: You change the requirements quantity for a component manually.The system creates a change document for the changed component.Case 2: You change the planned quantity in the order header manually.The change causes that the quantites are changed automatically for all operations and components. The system would createa change document for the changed header quantity,ten change documents for the automatically changed operation quantities (if defined) andthousand change documents for automatically changed component quantities.SolutionUse the SAP enhancement PPCO0007 that is processed when you save order changes. You can find the SAP enhancement in Customizing under the menu path "Shop Floor Control or Production Planning for Process Industries -> Process Order -> System Modifications -> Enhancements for Order Maintenance -> Enhancement when Saving an Order (Header Fields)".Here you can define additional logic to decide whether or not the system creates change documents. For this, you can access either the SAP standard tool for creating change documents or your own tool. The call of the customer exit takes place in function module CO_ZV_ORDER_POST when you save. The current data of an order header is supplied via parameter HEADER_IMP. For collective orders the exitcan be called several times - once for each order in the collective order.Remember that a dialog box must not be accessed and a message must not be issued from the exit. You can use the attached source code as a template for accessing the creation of change documents. You can also see in the source code how the current and original data of the different order objects can be provided by internal tables.The example source code uses function module ORDER_WRITE_DOCUMENT that logs - for the ORDER change document object - the changes for the tables transferred to the module.It may be appropriate to define a separate object for change documents for orders, for example ZZORDER. If required, you can use the ORDER standard object as a template.The following tables of the order may have to be taken into ac_countfor this type of change document object:Table Description Production Process orderAFAB Relationships XAFFH Production resource/tool XAFFL Work order sequence X XAFFT Process instructions XAFFV Process instruction values XAFKO Order header data PP X XAFPO Order item X XAFVC General operation X XAFVU User-specific data operation X XAFVV Quantities/dates/values in the operation X XAUFK Order header general X XDRAD_PORDER Link: Document to order XMLST Trigger point XRESB Reservation X XRSDB Index reservation/direct procurement X XImportant:The creation of change documents using the SAP standard tool requires that the indicator for change document creation is set for the data element that defines the affected table field. For example, this indicator is not set for data element GAMNG (total order quantity) in the standard system which is the reason why changes to the planned order quantity of the order header are not logged. The reason for this is that the GAMNG field of the AFKO table is defined using data element GAMNG.To be able to set the indicator for the creation of change documents without modifications and display change document data at a later stage, refer to Note 394887 (Enhancements for installingPH-ELR_100_46C) for Release 4.6C; as of Release 4.70 (SAP Enterprise), the Add-On is part of the R/3 standard system.You can of course set the indicator for activating the creation of document changes manually for eachdata element using Transaction SE11, however, this changes the data element.You can display the change documents using, for example, programs RSSCD100, RSSCD150, or RSSCD200. The display from the standard transactions of the order is not supported.For Release 45B to 46B, you must also create function module CO_BR_AFFX_GET_TABLES_POST in function group COBR using Transaction SE37. Define the following TABLES parameters for the interface: Parameter name Type spec. Reference type OptionalEXP_AFFT LIKE AFFTBEXP_AFFV LIKE AFFVBTo be able to archive the generated change documents, you must implement the program modification from Note 508212 in your system.方法二:通过增强程序记录。
- 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 foun WRONG_ACCESS_TO_ARCHIVE = 2 " incorrect access to archive2)使用select语句直接从表中读取。
直接使用SELECT语句读取数据的示例:*提取信用额度字段修改的抬头信息select cdhdr~changenr cdhdr~udate cdhdr~utime into corresponding fields of tablep_cdhdr from cdhdr where cdhdr~objectclas = 'KLIM' and cdhdr~objectid = wa_customerinfo-kunnr. ifsy-subrc = 0. *提取信用额度字段修改的字段值select cdpos~changenr cdpos~value_old cdpos~value_new into corresponding fields of table p_cdpos from cdpos for all entries in p_cdhdr where cdpos~objectclas = 'KLIM'and cdpos~objectid = wa_customerinfo-kunnrand cdpos~changenr = p_cdhdr-changenrand 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_wsplnd ANDchange_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_layout TABLESt_outtab = t_cdhdr.*---------------------------------------------------------------------** FORMUSER_COMMAND**---------------------------------------------------------------------*FORM user_command USING u_ucomm TYPE syucommus_selfield TYPEslis_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_cdposFROMcdposWHERE 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 FROMcdhdrWHERE 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_type INTO CORRESPONDING FIELDS OF TABLE itab_tempFROM lfa1FOR ALL ENTRIES IN itab_objectWHERE lfa1~lifnr = itab_object-objectid.SELECTknvk~lifnrknvk~name1 AS name2INTO CORRESPONDING FIELDS OF TABLE itab_knvkFROM knvkFOR ALL ENTRIES IN itab_objectWHERE knvk~lifnr = itab_object-objectid.SELECT lfbk~lifnrbnka~bankalfbk~banknINTO CORRESPONDING FIELDS OF TABLEitab_bnkaFROM 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. .。