ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SAP PS项目计划成本与项目预算:从设计思路到可用性控制实操

SAP PS项目计划成本与项目预算:从设计思路到可用性控制实操 这两年数字化转型聊得热闹工程项目型客户一上SAP最常见的抱怨其实不在FI而在PS。很多项目组在WBS里做了一堆项目计划成本预算也录了月底一跑项目差异报表发现要么该超的不超、要么没超的显示超支来回折腾。作为一个做过不少PS实施和优化的顾问我特别想先聊聊SAP PS中项目计划成本与项目预算的设计思路——这两个概念在SAP PS里经常被混成一件事但它们的来源、用途和控制逻辑完全不同。这篇文章把我这些年踩过的坑和沉淀下来的方法写出来希望能给正在做PS模板设计、或者被预算控制折磨的同行一点参考。1. 先把概念拆清楚计划成本与预算是两个不同的盘子1.1 项目计划成本算出来的“估算盘子”项目计划成本通俗地说就是项目还没正式开干的时候项目团队预估的这个项目大概要花多少钱。在SAP PS里它挂在WBS元素上也会挂在网络Network的活动上。你可以手工录也可以让系统根据网络上的工序、作业类型、物料需求自动汇总出来。这组数的作用很明确第一给后续的项目预算提供编制依据第二作为项目执行中对比差异的基线比如计划500万实际花了550万差了50万一翻报表就看得出来第三做项目收益率分析的时候用来跟项目收入计划对着比。很多人以为在CJ40里录了计划成本采购订单超了系统就该拦。这是个常见的误解。SAP PS的计划成本不参与可用性控制Availability Control它本质上是一个“估算盘子”你把它理解成装修前在纸上列的“水管多少、电线多少、人工多少”就够了。这个清单想怎么调就怎么调不需要走严格的审批流。系统不会因为你CJ40里录的计划成本不够就不让你下单或者不让你过账。真正承担控制职责的是预算。1.2 项目预算批下来的“资金红线”项目预算在SAP PS里代表的是经过审批程序批准后这个项目或者某个WBS元素真正可以花的钱的上限。它跟计划成本的最大区别在于预算是有“审批”属性的而且参与系统的可用性控制。SAP里跟预算相关的事务代码非常清晰CJ30录入初始预算CJ31做预算补充CJ32做预算退回CJ33做预算转移。这些操作通常对应着企业内部不同的资金审批流程比如集团批复了800万你在CJ30里录进去执行中发现不够了申请追加50万批准后再用CJ31补充。预算的控制逻辑是通过“承诺Commitments”和“实际成本Actual Costs”来实现的。采购申请一提交、采购订单一确认系统就会占用预算实际成本过账、发票校验的时候系统再释放承诺并扣减预算。当“预算余额 原预算 补充 - 退回 - 承诺 - 实际成本”变成负数时系统就会按照预算参数文件里设置的规则选择放行还是拦截。所以预算不仅仅是记一笔账它是一条资金红线。1.3 两者的关系计划是预算的输入预算是执行的控制这两者不是互相替代的关系而是上下游的关系。一个标准的项目控制流程应该是先基于WBS做项目计划成本测算得出整个项目“预判要花多少”管理层根据这个估算结合资金状况和利润率要求批出一个“允许你花多少”的预算最后预算进入SAP PS配合可用性控制对执行过程进行约束。举个实际例子投标阶段计划成本800万中标之后公司出于利润率考虑只批准750万预算。执行过程中发现现场条件变化追加到780万那么预算就从750万补充到780万。这里计划成本可以一直是800万也可以后续调整成850万两者并不需要完全相等。在报表里SAP PS通常会把计划成本和预算、承诺、实际成本放在四列里对比这才是完整的管理视图。如果你把“计划”和“预算”做成同一个数后面监控就失去意义了。2. 设计思路在哪里做计划、在哪里管预算2.1 先定WBS结构再谈控制粒度无论是计划成本还是预算都挂在WBS元素上所以WBS结构设计是所有后续工作的起点。我见过不少项目组一上来就建七八层WBS每一层都做完完整编码结果计划成本不知道往哪一层录、预算不知道该在哪一层控制、报表汇总下来层层重复。做WBS分解的时候我通常建议控制在三层左右项目定义一层、阶段或标段一层、工作包一层。这样既满足核算要求又不至于让计划、预算和结算数据分散得太碎。WBS元素上有几个属性字段必须先确认清楚是否允许记账、是否允许计划、是否允许预算。这些属性决定了这个WBS元素是纯粹做汇总的“归集元素”还是能实际发生业务、录计划、挂预算的“记账元素”。如果某个上层WBS本来只打算用来汇总却允许了记账后面很容易出现费用挂错层级的问题如果底层工作包不允许预算那CJ30里很可能就录不进去。设置这些属性的时候一定要跟WBS的层级用途一起规划而不是等系统配置完了再返工。2.2 控制粒度的选择顶层控量、底层算账在SAP PS项目里计划成本最合理的录入粒度是底层工作包而预算最合理的控制粒度是中间管理层级。什么意思呢比如一个工程项目的施工标段底下有土建、安装、装饰三个工作包土建、安装、装饰各自的计划成本应该录在自己所在的工作包上这样底层的数据是清晰的但预算可以挂在“施工标段”这一层用一个总的预算金额把底下几个工作包都管住。原因有两点。第一预算管得太细比如每个工作包都单独录预算执行中稍微有一点调剂就要做预算转移CJ33的操作频繁发生管理成本极高。第二预算管得太粗比如挂在项目定义层那项目底下任何一个地方超支只要整体没超系统都不提示预算控制基本形同虚设。所以“顶层控量、底层算账”是比较成熟的做法。具体粒度怎么定要看企业财务的付款计划和项目管理的颗粒度要求一般来说预算控制层级最好跟“审批权限”对齐哪个层级的负责人对钱负责预算就放在哪个层级。2.3 用一条示例串起整个设计为了后面讲实操时不至于太抽象我定义一个示例项目后面所有步骤都拿这个例子来说。假设项目叫做“研发大楼改造项目”WBS结构简化如下WBS编码名称计划成本录入层预算控制层计划预算金额万元R-1000研发大楼改造项目汇总层汇总层200R-1100设计阶段汇总层控制层30R-1110方案设计录入层汇总层20R-1120施工图设计录入层汇总层10R-1200施工阶段汇总层控制层150R-1210土建工程汇总层控制层100R-1211桩基工程录入层汇总层40R-1212主体工程录入层汇总层60R-1220安装工程汇总层控制层50R-1221机电安装录入层汇总层30R-1222消防工程录入层汇总层20R-1300项目管理费录入层控制层20这个结构下计划成本录在R-1110、R-1120、R-1211、R-1212、R-1221、R-1222、R-1300这些最底层WBS上预算挂在R-1100、R-1210、R-1220和R-1300这些控制层WBS上。这样R-1200施工阶段汇总显示的是150万预算而底下各工作包的执行都会受到这150万总体控制。后面讲到CJ40和CJ30我都会回到这个示例上。3. 计划成本实操三条常见录入路线3.1 WBS直接计划CJ40手工录入对于不做网络排程的简化项目管理直接在WBS元素上录计划成本是最省事的方式。在SAP中用事务代码CJ40打开计划成本维护界面输入项目定义或直接选中某个WBS元素界面会显示计划成本的录入表。你需要选择版本、选择成本要素或成本要素组然后填入金额。比如在R-1211桩基工程上挂一个“外部施工费”的成本要素计划40万保存之后上层R-1210和R-1200会自动汇总这40万。录计划成本时有三个细节容易被忽略。第一成本要素必须是用对类型的一般计划成本使用的是初级成本要素如果需要分摊内部分包费用也可以用次级成本要素做计划。第二CJ40界面里有“年度计划”和“总体计划”两种视图年度计划会在界面上按会计年度拆分适合做分年Rolling Plan总体计划则直接录一个总数。第三如果WBS元素属性里没有勾选允许计划的选项CJ40里是录不进去的这一点在上线前清理主数据时就要检查好。手工录入适合项目数量多但每个项目WBS层级不深、费用结构清晰的场景。3.2 网络集成计划从工序到活动的成本如果项目需要做工期排程或者成本要和工时、物料、外包作业关联那么计划成本不应该只挂在WBS上更好的是通过网络Network来做集成计划。网络里有活动Activity活动上可以挂作业类型Activity Type、外部作业External Processing、物料组件Material Component、服务Service等等。系统会根据活动上的计划工时乘计划单价、计划物料数量乘物料价格自动算出活动的计划成本再按网络分配的WBS元素汇总到项目上。实操中的路径很直接在CJ20N项目构造器里建好网络分配好对应的WBS元素然后在网络活动里维护各项资源。比如R-1212主体工程有一条网络里面有一个“混凝土浇筑”活动挂一个“施工人工”作业类型计划100个工时计划单价50元系统就会算出5000元的计划成本。这样做出来的计划成本比手工录一个总金额要“有依据”后续还可以跟实际工时、实际作业成本做对比分析能非常清楚地看到差异出在数量上还是价格上。建议凡是要用网络管理工期的项目计划成本尽量走网络路线不要两层皮否则网络工期排了成本却手工录在WBS上两边数字对不上。3.3 计划版本的妙用SAP PS的计划成本是分版本管理的默认情况下标准版本叫版本0也就是实际执行时的正式计划版本。除了版本0你还可以在后台定义版本1、版本2等用于做“模拟计划”、“调整方案对比”、“滚动预测”等场景。在CJ40里切换版本号就可以在同一套WBS上维护多套互不干扰的计划成本报表里也能按版本显示。我的习惯是版本0永远放“正式批准的计划成本”如果要做成本压降测算或者变更可行性评估就先复制一套到版本1里模拟算出来觉得可行再手工把版本1的结果调整到版本0上。这个动作虽然技术上不复杂但在实际业务里非常有用因为在跟业务部门争论“如果这个方案变更会多花多少钱”的时候你可以直接在版本1里改数字实时演示比在Excel里拉来拉去有说服力得多。不过要注意很多自定义的报表默认只读版本0如果录到了其他版本在标准报表里查不到不要以为数据丢了。4. 预算实操CJ30到可用性控制的完整链条4.1 预算参数文件预算控制的心脏要实现预算控制第一步不是CJ30录数字而是先在后台配置预算参数文件Budget Profile。配置路径在IMG里大概是“项目系统 → 成本 → 预算 → 预算参数文件 → 定义预算参数文件”。这个参数文件是整个预算控制的配置文件它在后台决定了系统到底怎么检查预算、超了怎么办。参数文件里的关键控制项有四个。第一可用性控制的检查范围是总体Overall、年度Annual还是月度/期间Period第二超额容差比如允许超预算5%超过5%才提示第三消息类型不管是错误Error还是警告Warning第四控制对象是只检查实际成本还是把承诺也算进去。这四个配置参数直接决定预算控制严不严。配置好之后要把参数文件分配给项目定义或WBS元素通常建议分配给项目定义层让下面的WBS统一继承个别WBS如果管理上需要区别对待可以单独再分配不同的参数文件。4.2 录入初始预算、补充、退回与转移拿到预算参数文件之后才轮到CJ30录初始预算。在CJ30里选到要控制的WBS元素比如R-1210土建工程录入100万初始预算保存即可。系统会把这个数字作为该WBS元素的原始预算。后续如果要追加用CJ31做预算补充如果某项工程取消导致钱花不完了用CJ32做预算退回如果要把预算从土建调剂到安装用CJ33做预算转移。这组操作里最容易出问题的是CJ32退回和CJ33转移。CJ32退回的时候系统会校验当前WBS元素上的承诺和实际成本如果已经承诺或者已经发生50万你想退回60万系统会直接报错因为退回去的钱不能超过尚未承诺或尚未发生的部分。CJ33转移则是在不同WBS元素之间平调预算转出方和转入方的总额度不变适合解决“这个工作包预算不够、那个工作包预算用不完”的情况。业务上CJ31和CJ33通常要对应不同的审批流程CJ31往往是追加资金需要更高层级的审批CJ33更像是内部调剂流程可以适当简化。另外必须提醒的是年度预算问题。如果预算参数文件或WBS元素设置的可用性控制是“年度”那么每一个会计年度都要有独立的预算额度。比如跨年项目第一年在CJ30里录了800万到了第二年如果第二年的年度预算没有分配系统会认为第二年没有预算直接不让过账。这种问题在项目月度报表里经常被当成“系统bug”实际就是年度预算没维护。4.3 可用性控制让超支真正被拦下来预算参数文件、CJ30初始预算都做好了还需要确保“可用性控制范围”是激活状态。可用性控制范围可以在IMG里配置也可以用事务代码CJBV维护。控制范围和WBS元素绑定后系统才会在执行过程中实时检查预算余额。检查的时机包括采购申请、采购订单、分包合同、网络活动确认、以及财务实际过账等节点。每发生一笔系统都会把“承诺”或“实际成本”和预算余额去比。举个例子R-1210土建工程预算100万已经下了80万的采购订单也就是承诺占用了80万剩余预算20万。这时候哪个采购员再想下一个15万的采购订单系统一算“801595剩余还有5万”订单会正常通过如果他想下25万的订单系统一算超过100万了预算参数文件里如果消息类型配的是“错误”系统会直接拒绝连订单都保存不了如果配的是“警告”系统会允许保存但会记录一条警告信息提醒后续审批注意。这里有一个容易踩的坑如果你配置的时候把消息类型设成了“警告”那业务人员几乎感觉不到控制存在因为单子照样能下。很多客户上线以后跑来问“为什么超预算了系统没提示”我先问的第一个问题就是“你参数文件里消息类型是不是设的警告”。所以做预算控制设计的时候一定要跟最终用户和财务确认清楚超预算场景到底是“坚决不允许”还是“允许超但留痕”。如果是不允许消息类型就配错误。5. 高频问题与排查技巧5.1 计划成本录了报表上却是空的这个现象太常见了。明明CJ40里面录了好几百万的计划成本跑到CJ34或者计划/实际对比报表里一看计划成本那列居然是空的。我建议遇到这种问题按下面的顺序排查。先看计划版本。录计划成本时是不是选了版本1而报表里默认在查版本0。再看WBS属性是不是录到了“归集元素”上导致系统没有真正把计划金额写到这个WBS的独立计划里。接着看网络分配如果计划成本是通过网络产生的检查网络活动是不是漏分配了WBS元素只要没分网络计划成本就不会汇总到项目上。最后看成本要素如果用了一个被明确设置为“只记录数量不记金额”的成本要素金额自然显示不出来。实际排查中用CJ41显示计划成本带上版本和WBS层级的条件一眼就能看出数据到底存不存在比对着报表猜效率高很多。5.2 预算超支了系统为什么不拦预算超支没有提示是SAP PS项目里最让人头疼的问题之一我把可能的原因整理成了下面这张表可能原因现象处理方式预算参数文件没有分配给项目/WBS系统完全没有可用性检查给项目定义或WBS元素分配预算参数文件可用性控制范围未激活参数文件配了但控制范围对象未在CJBV中激活检查并激活可用性控制范围消息类型被配置成“警告”订单照常保存仅提示按业务要求改为“错误”超额容差设置过大一般超一点不会提示调低容差比例检查范围不对用年度控制但项目总体预算有余额年度没余额时不拦结合财务付款计划切换到正确的控制范围费用不过采购订单直接财务过账承诺不产生实际成本发生时才检查滞后从业务规范上要求PO先行并检查成本要素是否可用性控制大多数客户的问题都集中在前三行。特别是“消息类型”这一项实施顾问在配置时为了不挡业务推进经常会偷偷配成警告结果上线后财务一查发现预算控制根本就没起作用。配置之前先问清楚这个WBS上的超支是要“硬拦”还是要“软提示”不要自己想当然。5.3 从差异报表快速定位预算问题预算控制做得好不好最后要通过报表来验证。SAP PS里预算相关的事务代码CJ34可以看预算报表能展示预算、承诺、实际成本、剩余预算等列的组合。标准报表里也有计划/成本/承诺/差异对比比如S_ALR_87013011这种方式适合做总体分析。看报表时我习惯先看最上层项目定义的剩余预算如果是负数就往下展开看是哪个阶段或者工作包超了。SAP PS的报表是可以逐层下钻的双击上层数字就能看到它包含的下层WBS数据。定位到具体超支的WBS之后再判断这个超支是应该走CJ31补充预算还是走CJ33从别的WBS调剂或者是已经发生了不可控费用需要做财务分析。整个流程下来不用十分钟就能把超支责任从项目定义一路定位到具体工作包这也是SAP PS相比Excel管理项目最大的优势。做SAP PS这么多年我最大的体会是计划和预算从来不是纯配置问题。你先把WBS层级和责任部门对齐想清楚计划谁录入、预算谁控制、超支找谁审批再回系统里搭参数文件水到渠成。技术上真的没什么玄乎的无非是CJ40、CJ30加可用性控制这一套组合拳真正难的是把这套机制嵌进公司的项目核算流程里让业务人员愿意用、不敢超、超了有迹可循。希望这篇文章能帮正被PS预算控制折磨的同行少走点弯路。
返回列表