SAP PS 第20节常用的一些逻辑脚本

想不到从写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, '/') 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值