【SAP ABAP 获取采购申请首次审批时间】
文章目录
- 前台查看
- 从后台数据库抓取数据
本篇将从SAP前台和后台数据库表两个方面介绍如何获取到采购申请的首次审批时间
前台查看
使用采购申请相关事务码,这里我用的是ME29N审批采购申请
选中采购申请行项目点击上方环境-》项目更改
可以看到采购申请所有的更改记录
采购申请首次审批的时间就是批准标识旧值为X新值为R的第一条记录
从后台数据库抓取数据
这里介绍两个记录凭证更改信息的数据库表:CDHDR和CDPOS
CDHDR存储变更操作的基本信息,用户在某个时间对某个对象如采购申请、采购订单等做了某个操作。
CDPOS存储具体字段的变更细节如哪些字段被修改,旧值和新值是什么。
se16n输入CDPOS表,在对象值字段输入需要查询的凭证编号,对字段进行过滤,只查找字段名称为FRGKZ审批标识,旧值为X的数据
可以发现同样的数据出现了两次,这是因为采购申请的行项目有两条
再根据文档编号去CDHDR表查找这条变更记录的时间
在abap程序中可以这样取值:
SELECT p~objectid , " 采购申请号MIN( c~udate ) AS firstappro " 取最早的审批日期FROM cdpos AS pINNER JOIN cdhdr AS c " 关联变更记录抬头表ON p~objectid = c~objectid " 采购申请号一致AND p~changenr = c~changenr " 变更号一致WHERE p~objectclas = 'BANF'AND p~tabname = 'EBAN' " 采购申请表AND p~fname = 'FRGKZ' " 审批状态字段AND p~value_old = 'X' " 旧值为 'X'(表示已审批)AND p~objectid IN ( SELECT t~objectid FROM @lt_cdpos AS t )GROUP BY p~objectid " 按采购申请号分组INTO TABLE @DATA(lt_cdpos2).