想不到从写SAP文档到现在,关注人数已经到1000人了,算是个小小里程碑,感谢大家的支持和关注,在此谢谢大家。本期分享下一些SQL的逻辑,方便做query或者abap取数。(本期的内容没有任何干货,都是水。。。)
1 PS部分
1.1 项目定义与项目进度计划关系
elect * from sapsr3.proj proj -- 项目信息
join sapsr3.prps prps on PROJ.PSPNR=PRPS.PSPHI --WBS信息
项目信息一些关键字段:
-- 项目基本信息一些主要字段
select pspnr,-- 项目定义(内部)
pspid,-- 项目定义
post1,-- PS:短描述1
objnr,-- 对象号
ernam,-- 创建对象的人员名称
vernr,-- 负责人编号
verna,-- 负责人姓名(项目管理者)
astnr,-- 申请人号
astna,-- 申请人
vbukr,-- 项目的公司代码
vgsbr,-- 项目的业务部门
vkokr,-- 此项目的控制范围
prctr,-- 利润中心
pwhie,-- WBS货币(项目定义)
werks,-- 工厂
kostl,-- 成本中心
plfaz,-- 项目计划开始日期
plsez,-- 项目计划完成日期
sprog,-- 项目定义的预测开始日期
eprog-- 项目定义的预测完成日期
from sapsr3.proj t8 ;--项目基本信息
WBS的一些关键字段
-- 项目进度计划信息一些主要字段
select
pspnr,-- WBS要素(内码)
posid,-- 工作分解结构元素(WBS元素)(外部展示码)
post1,-- PS:短描述(第一行文本)
objnr,-- 对象号
psphi,-- 合适的项目的当前编号
poski,-- WBS元素简明标识
verna,-- 负责人姓名(项目管理者)
astnr,-- 申请人号
astna,-- 申请人
prart-- 项目类型
from sapsr3.prps t9 --项目WBS信息
1.2 项目进度计划和网络
select * from sapsr3.proj proj -- 项目信息
join sapsr3.prps prps on PROJ.PSPNR=PRPS.PSPHI --WBS信息
join sapsr3.AUFK AUFK on prps.PSPNR = aufk.PSPEL -- 关联网络
1.3 典型取项目WBS、网络对象号的做法
-- 都是prps关联网络,一个是取WBS的对象号,一个是取网络的对象号,两个union
SELECT DISTINCT t.PSPNR as PSPNR --WBS要素内码
,t2.PSPEL as PSPEL -- 网络内码
,t.OBJNR as OBJNR -- WBS对象号
FROM sapsr3.prps t
LEFT join sapsr3.aufk t2
on t.PSPNR=t2.PSPEL
WHERE t.mandt='201' and t2.mandt='201'
union all
SELECT DISTINCT t.PSPNR as PSPNR
,t2.PSPEL as PSPEL
,t2.OBJNR as OBJNR -- 网络对象号
FROM sapsr3.prps t
LEFT join sapsr3.aufk t2
on t.PSPNR=t2.PSPEL
WHERE t.mandt='201' and t2.mandt='201'
;
PRGUID:项目WBS的所有对象号
1.4 取项目下所有采购申请的做法
-- 项目专用库存的采购申请,先根据PROJ-PSPID=PRPS-PSPHI查询项目下所有的WBS对应的对象WBS的,再关联采购申请
select EBKN.*,proj.pspid from sapsr3.proj proj -- 项目信息
join sapsr3.prps prps on PROJ.PSPNR=PRPS.PSPHI --WBS信息
join sapsr3.EBKN EBKN on PRPS.PSPNR = EBKN.PS_PSP_PNR --采购申请信息
where proj.pspid = 'B68882100001'
-- 服务类采购申请
union
select EBKN.*,proj.pspid from sapsr3.proj proj -- 项目信息
join sapsr3.prps prps on PROJ.PSPNR=PRPS.PSPHI --WBS信息
join sapsr3.AUFK AUFK on prps.PSPNR = aufk.PSPEL -- 关联网络
join sapsr3.EBKN EBKN on aufk.AUFNR = EBKN.NPLNR --采购申请信息
where proj.pspid = 'B68882100001'
and AUFK.AUTYP='20'
1.5 取对象的系统状态和用户状态
select objnr, -- 工单对象ID
LISTAGG(case when stat LIKE 'I%' then stat end, '/') WITHIN GROUP(ORDER BY objnr) AS istat,
LISTAGG(case when stat LIKE 'I%' then txt30 end, '/') WITHIN GROUP(ORDER BY objnr) AS istattx,
LISTAGG(case when stat LIKE 'E%' then stat end, '/') WITHIN GROUP(ORDER BY objnr) AS estat,
LISTAGG(case when stat LIKE 'E%' then txt04 end, '/')