简介:这份PDF资料面向SAP PS模块的初学者与项目管理人员,系统梳理了项目系统的核心概念与实操要点,帮助读者快速建立从项目创建、规划、执行到收尾的完整认知框架。内容涵盖SAP PS模块概述、项目分类与工作分解结构WBS、网络图与里程碑监控、项目过程流程,以及与财务、物料管理、销售分销、生产计划等ERP模块的集成关系,并延伸至公司代码、业务区、控制区、工厂与存储位置等组织元素的配置说明。资源包为1个PDF文件,大小约2.31MB,结构清晰、便于按章节查阅,适合作为入门速查手册或培训辅助材料。目前已有670人学习浏览,对于希望理解SAP项目系统运作逻辑、掌握基础配置思路的读者而言,是一份轻量且实用的参考文档。
1. SAP PS 模块快速指南:从项目定义到 WBS 到底该怎么落地
很多做 SAP 的同行第一次接触 PS(Project System,项目系统)模块,都是被业务方一句“帮我把这个项目在系统里建起来”推着走的。结果打开 CJ20N 一看,项目定义、WBS 元素、网络、活动、里程碑一大堆字段,瞬间懵了。PS 模块不像 MM、SD 那样天天有人用,但一旦涉及工程类、研发类、CAPEX 投资类业务,它就是绕不开的核心。这篇快速指南面向两类人:一是刚接手 PS 配置或运维的顾问,二是需要跟 PS 模块做接口、取数的开发与业务分析人员。我会按“项目结构怎么搭 → 主数据怎么配 → 预算和实际怎么跑 → 报表怎么取 → 坑在哪”的顺序,把 PS 模块最常用的操作路径和参数逻辑讲清楚,让你看完能自己在沙箱里跑通一个最小项目。
2. PS 模块的项目结构:项目定义、WBS 与网络到底怎么搭
PS 模块最核心的概念就是“结构”。SAP 用一套层级化的对象来描述一个项目:最上面是项目定义(Project Definition),往下是 WBS 元素(Work Breakdown Structure),再往下可以挂网络(Network)和活动(Activity)。很多人第一次配的时候会把 WBS 和网络搞混,其实记住一句话就行:WBS 管的是“钱和进度”,网络管的是“活和工序”。
2.1 项目定义与 WBS 的层级逻辑
项目定义是一个项目的“壳”,它本身不承载成本,只用来把下面所有 WBS 元素归拢在一起。WBS 元素才是真正承载预算、实际成本、承诺、计划日期的对象。WBS 可以有多层,比如第一层是“XX 工厂扩建项目”,第二层拆成“土建”“设备采购”“安装调试”,第三层再拆到具体子项。
在 CJ20N 里创建项目时,系统会要求你选一个项目参数文件(Project Profile)。这个参数文件决定了这个项目允不允许做预算、用哪种编号规则、哪些字段是必填的。常见做法是让 BASIS 或 PS 顾问在 SPRO 里先配好项目参数文件,业务用户只负责在 CJ20N 里填结构。
一个最小可用的项目结构大概是这样的:
项目定义:P-2024-001 厂房改造 WBS:P-2024-001.01 土建工程 WBS:P-2024-001.01.01 基础施工 WBS:P-2024-001.01.02 钢结构 WBS:P-2024-001.02 设备采购 WBS:P-2024-001.03 安装调试这里要注意,WBS 编号的层级分隔符是“.”,但系统里实际存储的是一串带掩码的编号。你在做接口取数的时候,不能直接拿显示用的编号去拼,得看 PROJ 表和 PRPS 表里的实际字段。
2.2 网络与活动的挂接方式
网络(Network)是 PS 里用来管工序的对象,它下面挂活动(Activity)。网络可以挂在 WBS 下面,也可以独立存在。常见做法是把网络挂在最底层的 WBS 上,这样活动产生的工时、物料消耗就能直接归集到对应的 WBS 上。
创建网络的常用事务码是 CN21,创建活动用 CN22。活动分几种类型:内部处理(比如自己车间干活)、外部处理(比如外包)、服务、成本活动等。每种活动类型对应的成本计算逻辑不一样,这个在配置里由“活动类型”和“控制码”决定。
如果你只是想做预算控制,不关心工序排程,其实可以只用 WBS 不用网络。但一旦涉及工时确认、能力计划、外协采购,网络就是必须的。我一般建议新手先把 WBS 结构跑通,再逐步加网络,不然一上来对象太多,容易乱。
2.3 用 CJ20N 建一个最小项目的完整步骤
下面是在沙箱里从零建一个项目的操作路径。假设项目参数文件已经配好,编号用外部给号。
1. 输入事务码 CJ20N,回车。 2. 在项目定义字段输入项目编号,比如 P2024001,回车。 3. 系统提示“项目定义不存在,是否创建”,选“是”。 4. 输入项目描述“厂房改造项目”,选择项目参数文件。 5. 保存后,光标停在项目定义上,点“WBS 元素”按钮,创建第一层 WBS。 6. 输入 WBS 编号 P2024001.01,描述“土建工程”,保存。 7. 选中 P2024001.01,再点“WBS 元素”,创建下层 WBS。 8. 重复直到结构建完。 9. 选中某个底层 WBS,点“网络”按钮,创建网络和活动。 10. 全部保存,用 CJ03 显示项目结构确认。这里每一步的字段含义:项目参数文件决定预算和日期控制;WBS 的“账户分配”标识决定它能不能直接记成本;网络的“控制码”决定活动能不能做确认和排程。保存后如果报错,先看状态栏的消息号,常见的是“项目参数文件不允许该操作”或者“WBS 编号重复”。
3. PS 模块的主数据与预算:WBS 预算怎么放、实际成本怎么归集
结构搭好只是第一步,PS 模块真正干活靠的是预算和实际成本的流转。这一章讲清楚预算怎么录入、实际成本从哪些模块流进来、以及最常用的几个报表怎么读。
3.1 WBS 预算的录入与释放
WBS 预算用事务码 CJ30 录入,CJ31 显示,CJ32 查看预算与实际对比。预算可以按年度录入,也可以按总额录入,取决于预算参数文件的配置。
录入预算前,WBS 必须已经设置了“预算可用性控制”标识,否则系统不让你放预算。这个标识在 WBS 的“控制数据”页签里。常见做法是:底层 WBS 放预算,上层 WBS 只做汇总显示。
1. CJ30 输入项目编号,回车。 2. 系统列出所有 WBS,在对应年度列输入预算金额。 3. 点“保存”,系统检查预算参数文件是否允许。 4. 如果提示“预算可用性控制未激活”,去 CJ02 改 WBS 的控制数据。 5. 保存后用 CJ32 查看预算/实际/承诺对比。预算录入后不是马上就能用的,有些配置下需要做“预算释放”。释放用 CJ3V 或者后台作业。如果业务方说“预算放了但采购申请还是报预算不足”,先查预算有没有释放,再查 WBS 的预算可用性控制是不是设成了“绝对控制”。
3.2 实际成本从 MM、FI、CO 怎么流进 PS
PS 本身不产生成本,它只是成本归集的对象。实际成本主要从这几个地方来:
- MM 模块:采购订单、收货、发票校验,如果采购订单的账户分配写了 WBS,成本就归集到 PS。
- FI 模块:直接过账到 WBS 的会计凭证,比如费用报销。
- CO 模块:内部作业分摊、间接费用分摊。
- CATS:工时确认,如果活动挂了 WBS,工时成本也会归集过去。
这里最容易翻车的地方是“账户分配”没写对。比如采购申请里账户分配类别选了“K”成本中心,但实际应该选“P”项目,结果成本跑到成本中心去了,PS 报表里看不到。这种问题一般要等月底对账才发现,血泪经验就是:采购订单创建时就检查账户分配,别等收货了再改。
3.3 用 CJI3 和 CN41N 做成本与进度分析
CJI3 是 PS 最常用的实际成本明细报表,可以按项目、WBS、年度、成本要素筛选。CN41N 是项目信息系统里的结构概览,能看预算、实际、承诺、差异。
CJI3 使用要点: - 输入项目编号或 WBS 范围。 - 选择“实际成本”和“承诺”两个勾。 - 布局里把“成本要素”“金额”“参考凭证”拉出来。 - 如果数据量大,用变式保存筛选条件,下次直接调用。 CN41N 使用要点: - 输入项目参数文件或项目编号。 - 选择“预算/实际/承诺”视图。 - 可以导出 Excel 做差异分析。这两个报表的区别:CJI3 看明细,CN41N 看汇总。做月度项目成本分析时,我一般先用 CN41N 看哪些 WBS 超预算,再用 CJI3 钻到具体凭证。如果 CJI3 里某条成本没有“参考凭证”,大概率是 CO 分摊过来的,要去 CO 模块查分摊循环。
4. PS 模块避坑与常见问题排查
PS 模块的坑大多集中在“对象没建全”“状态没放行”“账户分配写错”这三类。下面列几条我实际遇到过的典型问题,按现象、原因、解决来写。
4.1 采购申请报“预算不足”但预算明明放了
现象:业务方在 ME51N 创建采购申请,账户分配写 WBS,保存时系统报预算不足,但 CJ32 里看预算余额是够的。
原因:常见有三种。一是预算没释放,系统只认已释放的预算;二是 WBS 的预算可用性控制设成了“绝对控制”,任何超一点都报错;三是采购申请里的年度和预算录入的年度不一致。
解决:先 CJ32 看预算年度和实际年度是否匹配;再用 CJ3V 检查预算释放状态;最后 CJ02 看 WBS 控制数据里的“预算可用性控制”是“绝对”还是“警告”。如果是警告,系统只提示不阻止;如果是绝对,超一分钱都不让过。
4.2 WBS 已经建了但 CJ20N 里看不到
现象:用 CJ20N 打开项目,只看到项目定义,下面的 WBS 不显示。
原因:多半是 WBS 的“删除标识”或“锁定标识”被勾上了,或者用户没有对应 WBS 的显示权限。
解决:用 SE16N 查 PRPS 表,输入项目编号,看字段“LOEVM”(删除标识)和“STSPD”(锁定标识)。如果有值,用 CJ02 取消。权限问题用 SU53 看缺哪个授权对象。
4.3 网络活动确认时报“活动未释放”
现象:用 CN25 或 CAT2 确认工时,系统报“活动未释放”或“活动状态不允许确认”。
原因:网络或活动的状态没到“释放”(REL)状态。PS 里对象有状态管理,没释放就不能做后续业务。
解决:用 CN22 或 CN23 打开活动,看状态栏。如果是“创建”状态,点“释放”按钮。如果网络头没释放,先释放网络。批量释放可以用 CN24。
4.4 CJI3 里看不到某笔采购成本
现象:采购订单收货了,发票也校验了,但 CJI3 里查不到这笔成本。
原因:采购订单的账户分配没写 WBS,或者写的是别的 WBS;也可能是收货凭证的过账日期不在查询范围内。
解决:用 ME23N 打开采购订单,看“账户分配”页签。如果账户分配类别不是“P”,成本不会进 PS。如果是“P”但 WBS 写错,用 ME22N 改,但已经收货的部分要冲销重做。查询范围用 CJI3 的“过账日期”字段调整。
4.5 项目结算后成本还在往 WBS 上跑
现象:项目已经技术完成(TECO)或关闭(CLSD),但 CJI3 里还能看到新的成本。
原因:TECO 只阻止新的采购和确认,不阻止 FI 直接过账和 CO 分摊。如果有 FI 凭证直接记 WBS,或者 CO 分摊循环还在跑,成本照样进。
解决:项目关闭前要检查所有可能进成本的入口:FI 的直接过账、CO 的分摊分配、MM 的后续发票。真正要锁死,得把 WBS 的“锁定标识”勾上,或者用状态管理把“允许过账”关掉。
5. PS 模块进阶:用 LSMW 批量导入 WBS 与接口取数技巧
当你需要建几十上百个 WBS 时,手工 CJ20N 就不现实了。常见做法是用 LSMW 或者 BAPI 批量导入。另外,PS 和外围系统做接口时,取数逻辑也有讲究。
5.1 用 LSMW 批量创建 WBS 的最小配置
LSMW 是 SAP 老牌批量导入工具,虽然现在有 Migration Cockpit,但很多老系统还在用 LSMW。导入 WBS 一般走“标准批输入”方式,录屏事务码用 CJ20N。
LSMW 步骤: 1. 输入 LSMW,创建项目、子项目、对象。 2. 选择“批输入录屏”,事务码填 CJ20N。 3. 录屏:创建项目定义 → 创建 WBS → 保存。 4. 定义源结构字段:项目编号、WBS 编号、描述、参数文件。 5. 源文件用 Excel 或制表符文本,字段顺序和源结构一致。 6. 分配字段映射,把源字段对应到录屏字段。 7. 生成批输入会话,用 SM35 运行。关键参数:录屏时不要跳步,每一步的字段都要录进去,否则导入时会缺字段报错。WBS 编号如果系统是内部给号,录屏时就不能输编号,得让系统自动生成。导入前先在沙箱跑一遍,用 SM35 看会话日志,报错会精确到行号。
5.2 PS 接口取数的核心表与字段
做接口取数,绕不开这几张表:
| 表名 | 用途 | 关键字段 |
|---|---|---|
| PROJ | 项目定义 | PSPID(项目编号)、POST1(描述) |
| PRPS | WBS 元素 | PSPHI(项目内部号)、POSID(WBS 编号)、OBJNR(对象号) |
| AUFK | 订单/网络主数据 | AUFNR(订单号)、OBJNR |
| COSP | CO 对象成本汇总 | OBJNR、WRTTP、WTGES |
| COSS | CO 对象成本汇总(次级) | OBJNR、WRTTP、WTGES |
| BPGE | 预算总额 | OBJNR、WTGES |
| BPJA | 预算年度 | OBJNR、GJAHR、WTGES |
取数逻辑一般是:先用 PROJ 和 PRPS 拿到项目结构和 OBJNR,再用 OBJNR 去 COSP/COSS 取实际成本,去 BPGE/BPJA 取预算。注意 OBJNR 是 PS 对象的唯一标识,格式一般是“PR”开头加内部号。
-- 示例:取某项目下所有 WBS 的预算与实际 SELECT P.PSPID, P.POSID, B.GJAHR, B.WTGES AS BUDGET, C.WTGES AS ACTUAL FROM PROJ A JOIN PRPS P ON A.PSPNR = P.PSPHI LEFT JOIN BPJA B ON P.OBJNR = B.OBJNR LEFT JOIN COSP C ON P.OBJNR = C.OBJNR AND B.GJAHR = C.GJAHR WHERE A.PSPID = 'P2024001' AND C.WRTTP = '01'这段 SQL 只是示意,实际取数要注意 WRTTP(值类型)的区分:01 是实际,04 是承诺,10 是预算。COSP 里还有版本(VERSN)和期间(PERIO),做月度分析时要加上。
5.3 一个验证接口数据对不对的小技巧
接口取完数,怎么验证?我一般用 CJI3 和 CN41N 做交叉核对。接口取的实际成本合计,应该和 CJI3 里同范围的合计一致;接口取的预算,应该和 CJ32 里一致。如果对不上,先查 WRTTP 和版本,再查 OBJNR 有没有取错。这个习惯帮我省了很多后悔药,因为接口数据一旦被业务方用去决策,再回头查就很被动。
希望帮到你。
本文还有配套的精品资源,点击获取