SAP 后台数据库表修改记录查看

如何在SAP系统中查找表的修改记录
在SAP系统中,启用日志功能后,可以通过SE11、RZ10和AUT10等工具跟踪数据库表的修改记录,包括日期、时间、修改人和事务码。SE16N可用于查看特定表的变更,而SE16N_CD_DATA表存储详细修改信息。若日志未开启,则无法追踪非SE16N的修改。

前提条件,SE11该表启用了log  changs

RZ10维护了记录日志的client

如何查找这些表的修改记录呢?

AUT10--->选择增强模式

输入表格,执行

能看到修改的日期,时间,修改人,修改的事务码,不管是SE16N修改,还是SE37修改,或者是程序本身的增删改,都会被记录下来,如果是改的话还会有旧值和新值比较

选中被删除的行,点击资料记录还能查到被删的是什么值

还可以用SCU3查看

如果basis没开日志记录,还能查到谁偷偷用SE16N修改了后台表吗?

也有个方法,只能查到用SE16N修改的记录

方法如下:

SE16N--->输入表 SE16N_CD_KEY

输入相应的用户或者被改的表格名称或时间查到修改记录

然后在表SE16N_CD_DATA中用上面的ID查询具体的修改数.

<think>我们正在讨论SAP采购信息记录修改记录,用户现在询问的是修改记录涉及的后台数据库。根据之前的回答,我们已经提到了CDHDR和CDPOS这两个,但用户可能需要更详细的信息。 根据SAP的标准设计,采购信息记录(Purchasing Info Record)的修改历史主要存储在变更文档(Change Document)相关的后台中,即: 1. **CDHDR**:变更文档抬头,存储每次变更的基本信息(如变更时间、变更者、事务代码等) 2. **CDPOS**:变更文档明细,存储具体字段的变更(字段名、旧值、新值) 此外,采购信息记录的主数据存储在以下中: - **EINA**:采购信息记录一般数据 - **EINE**:采购信息记录采购组织数据 当信息记录修改时,SAP会通过变更文档对象类`EINKBELEG`(采购凭证对象)来记录变更,并将变更写入CDHDR和CDPOS。 因此,要查询采购信息记录修改记录,需要关联以下: - **CDHDR**:通过`OBJECTCLAS = 'EINKBELEG'`和`OBJECTID`(即信息记录号,INFNR)来定位变更抬头 - **CDPOS**:通过关联CDHDR的键(MANDANT, OBJECTCLAS, OBJECTID, CHANGENR)来获取字段变更明细 - 同时,可以通过`TABNAME`字段(在CDPOS中)来区分是修改了哪个主数据表(如EINA或EINE) 具体结构说明: ** CDHDR(变更抬头)** | 字段名 | 描述 | 示例值 | |-------------|-----------------------|-----------------| | MANDANT | 客户端 | 100 | | OBJECTCLAS | 对象类 | 'EINKBELEG' | | OBJECTID | 对象ID(信息记录号) | '5500000123' | | CHANGENR | 变更编号 | '000000000001' | | USERNAME | 用户名 | 'USER01' | | UDATE | 变更日期 | '20240515' | | UTIME | 变更时间 | '102030' | | TCODE | 事务代码 | 'ME12' | ** CDPOS(变更明细)** | 字段名 | 描述 | 示例值 | |--------------|--------------------------|----------------| | MANDANT | 客户端 | 100 | | OBJECTCLAS | 对象类 | 'EINKBELEG' | | OBJECTID | 对象ID(信息记录号) | '5500000123' | | CHANGENR | 变更编号(与CDHDR关联) | '000000000001' | | TABNAME | 被修改名 | 'EINA' | | TABKEY | 键值 | '5500000123' | | FNAME | 被修改的字段名 | 'NETPR' | | VALUE_OLD | 旧值 | '10.50' | | VALUE_NEW | 新值 | '11.00' | **查询示例:** 假设我们要查询信息记录号`5500000123`的所有修改记录,可以使用如下SQL(Open SQL): ```sql SELECT H~OBJECTID, H~UDATE, H~UTIME, H~USERNAME, H~TCODE, P~TABNAME, P~FNAME, P~VALUE_OLD, P~VALUE_NEW FROM CDHDR AS H INNER JOIN CDPOS AS P ON H~MANDANT = P~MANDANT AND H~OBJECTCLAS = P~OBJECTCLAS AND H~OBJECTID = P~OBJECTID AND H~CHANGENR = P~CHANGENR WHERE H~OBJECTCLAS = 'EINKBELEG' AND H~OBJECTID = '5500000123' ORDER BY H~UDATE DESC, H~UTIME DESC. ``` **注意:** 1. 权限要求:访问这些通常需要开发权限或特殊授权(如S_TABU_DIS)。 2. 性能考虑:如果系统中有大量变更记录,建议通过OBJECTID(信息记录号)精确查询。 3. 字段限制:某些字段(如长文本)可能不会记录在CDPOS中,而是通过其他方式存储。 如果用户需要更详细的字段说明,可以查看SAP数据字典(事务码SE11)中的CDHDR和CDPOS。 --- ### 相关问题 1. **如何通过ABAP程序提取采购信息记录的变更历史?** 2. **SAP中哪些字段的修改不会被记录在CDPOS中?** 3. **如何配置SAP记录采购信息记录中特定字段的变更?** 4. **采购信息记录的主键(信息记录号)是如何生成的?**</think>在SAP系统中,采购信息记录(Purchasing Info Record)的修改历史主要通过**变更文档(Change Document)机制**记录,涉及以下核心后台数据库: ### 关键后台结构 | 名 | 存储内容 | 关键字段说明 | 关联关系 | |------------|------------------------|----------------------------------------------------------------------------|------------------------------| | **`CDHDR`** | 变更抬头数据 | `OBJECTCLAS`='EINKBELEG'(采购凭证对象类)<br>`OBJECTID`=信息记录号(INFNR)<br>`USERNAME`(修改者)<br>`UDATE/UTIME`(修改日期时间) | 主,通过`CHANGENR`关联CDPOS | | **`CDPOS`** | 字段级变更明细 | `TABNAME`='EINA'或'EINE'(信息记录)<br>`FNAME`=字段名(如NETPR价格)<br>`VALUE_OLD`(旧值)<br>`VALUE_NEW`(新值) | 从记录具体字段变更 | | **`EINA`** | 信息记录主数据(通用层)| `INFNR`(信息记录号)<br>`MATNR`(物料号)<br>`LIFNR`(供应商号) | 被修改的源 | | **`EINE`** | 信息记录组织数据 | `INFNR`(信息记录号)<br>`EKORG`(采购组织)<br>`NETPR`(净价)<br>`WAERS`(货币) | 价格等关键字段的存储 | ### 间关系图解 ```mermaid erDiagram CDHDR ||--o{ CDPOS : "1:N" CDHDR }|--|| EINA : "OBJECTID = INFNR" CDPOS }|--|| EINE : "TABKEY = INFNR+EKORG" CDPOS }|--|| EINA : "TABKEY = INFNR" ``` ### 数据查询示例(ABAP Open SQL) ```abap SELECT h~objectid AS infnr, h~udate AS change_date, h~username AS changer, p~tabname AS table_name, p~fname AS field_name, p~value_old AS old_value, p~value_new AS new_value FROM cdhdr AS h JOIN cdpos AS p ON h~mandant = p~mandant AND h~objectclas = p~objectclas AND h~objectid = p~objectid WHERE h~objectclas = 'EINKBELEG' "采购对象类 AND h~objectid = '5500000123' "信息记录号 AND p~tabname IN ('EINA','EINE') "关联 ORDER BY h~udate DESC, h~utime DESC. ``` ### 关键说明 1. **变更触发逻辑**: 当通过`ME11/ME12`维护信息记录时,系统自动调用函数`ME_CHANGE_DOCUMENT`生成变更记录[^1] 2. **敏感字段处理**: 价格(`NETPR`)、货币(`WAERS`)等字段变更需权限检查,通过`OMT4B`配置字段组可见性 3. **技术限制**: - 长文本变更不直接记录在`CDPOS`中(需通过`STXH/STXL`追踪) - 批量修改工具(如`MR21`)可能绕过变更文档机制 > ⚠️ **权限要求**:访问这些需分配`S_TABU_DIS`权限,敏感字段需额外授权对象`S_TCODE`(如`ME12`)[^3]。 --- ### 相关问题 1. **如何通过ABAP程序提取特定供应商所有信息记录的变更历史?** 2. **采购信息记录中的条件类型(如PB00)修改记录存储在哪个?** 3. **当CDPOS中VALUE_OLD/VALUE_NEW为空时如何排查原因?** 4. **如何配置SAP自动归档旧的采购信息记录变更文档?** [^1]: SAP采购主数据变更文档技术原理(CDHDR/CDPOS关联逻辑) [^3]: SAP权限管理指南(访问与事务代码授权)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值