**惯例闲话:**最近感觉时间不够用,脑子有很多想法,但是到下笔却感觉总是下不了手,写完一段,感觉和自己想的差距很大,然后有全部删除…这难道就是传说中年纪大了,手脚不停使唤…这让闲人更加焦虑了,前篇还说立了flag,难道就要打退堂鼓——还有一种可能性,就是追求完美主义的后遗症,但愿是后者。
闲话到此为止,今天聊聊项目状态管理。
项目状态管理的应用场景
项目全生命周期管理中,项目状态是常见的管控点。常见的有,将项目分成前期、计划、执行、收尾以及竣工等状态。
项目状态的主要应用于统计分析和管控业务。统计分析很好理解,管理层需要企业当前项目的进展情况,工程企业中,总共多少项目,哪些项目处在投标阶段,哪些项目中标,哪些项目在设计阶段,哪些项目在施工阶段等等,这些都是都是影响管理层需要了解的关键的经营信息。管控业务,则相对比较细节化,对于企业中层管理者而言,是一个重要的管理措施,举例如下:
通过上表可以看出,在不同的项目状态下,业务具有不同的管控点,大部分管控点均围绕项目的成本利润实现有关。下面就以上表为例,选取个别状态来说明SAP的状态配置和管控业务的实现过程。
相关技术配置
SAP的项目状态管理分为2大类,系统状态和用户状态。
系统状态常见的有创建状态CRTD、下达(REL)、技术性完成(TECO)、关闭(CLSD),系统状态是SAP固有的标准配置,为各个模块通用,不可变动。可以通过事务代码BS22来查看相应的系统状态下的受控业务。举例,查看创建状态的受控范围。
如果想改变系统状态的受控内容,如下图,则双击状态编码上I0001,对相应的业务动作上单选框上做勾选即可。但是,笔者强烈的反对这样改配置,系统状态是其他模块公用的,一改必然会影响其他模块的使用。在笔者参与过的实施项目中,曾经出现过更改系统状态造成模块之间冲突事件,比如把PS模块创建CRTD状态的控制点改为可以货物移动,那么PP模块的生产订单在CRTD状态也可以领料发货,此类类似的情况屡见不鲜,教训也是惨痛的。这就是为何禁止这样修改系统状态控制内容的原因。
因此,PS模块实施,必然要启用用户状态功能。PS模块可以启用状态管理的有项目定义、WBS、网络三个结构对象,配置方法一样,我们以最常用的WBS为例,配置如下:
第1步: WBS状态参数文件配置
操作路径 项目系统->结构->实施结构->工作分解结构(WBS)->工作分解结构用户状态->创建状态参数文件
事务代码 OK02
配置说明 SAP经典的参数文件配置,用户状态的核心配置。配置之前,需要业务确认的文件有,状态清单,每个状态受控的业务清单。
配置内容
配置路径如下。
选中PS000002 WBS元素状态参数文件,点击复制按钮生成ZPS0003自定义状态参数文件并保存。双击新定义的状态参数文件之后,进入主配置界面,按照蓝图确定好的状态配置。
配置参数说明如下:
状态编号:从准备10——关闭60,编号间隔按照10。 这里有个思考,为何状态编号补按1-6这样的间隔来设置?我们在SAP中出处可见这种有别于常见自然数顺序的排序编号,如网络作业编号0010、0020,生产订单工序0010、0020……经历过蓝图流程反复变更就知道这其中奥妙。比如系统刚配置完成,用户想在准备和计划状态之间,增加一个状态投标,那问题来了如果按照1-6这样的编号规则,那么新增的投标状态自然得从7号编号,但是从实际应用排序上,应该排在1,2之间,这样便于使用,不至于引起误解。但是计算机的排序是按照编码,所以这就产生了矛盾。那么解决这个问题的方法,就是扩大编码间隔的容量,这就很简单了,用编号11即可轻松解决,这种解决方案让人拍案叫绝,这就不得不佩服SAP的设计思路。所谓大道至简,大抵如此。
状态(ID)和短文本:Z010~Z060,对每一个用户状态定义一个ID,以及描述。ID编码规则同上。状态ID会在TJ30T中保存,可作为BAPI输入参数改变WBS状态。在后续BAPI章节做详细介绍。
最低状态和最高状态:每一个当前状态可退回去最低和最高状态序号。如图配置,20计划状态,设置10,30,表示当前状态如果为20时候,可以退回到10准备状态,以及上升到30施工状态。在业务上,通常会有这样的考虑,项目状态具有连续性,不得跳序,如计划状态时候不能直接到竣工或关闭状态,同样道理,施工状态也不能直接跳回到准备状态。
请读者思考,如果允许施工状态能直接退回到10准备状态,升级到60关闭状态,应该如何设置?
授权代码:每一个用户状态的操作授权码,当绑定授权代码之后,只有授权的用户才能去修改状态。如图配置,ZPS00001财务部门的授权,ZPS00002计划部门授权,表示对应的WBS用户状态只能由相应的授权用户来操作。
双击其中一个状态编号20计划,进入业务管控配置页面。
点击
进入详细的业务动作选择清单。注意这里所列的业务动作清单,是系统标准的功能,暂不支持自定义的事务功能。我们以请购和采购的控制点为例,希望能实现项目在计划Z020阶段,不能进行物资请购和采购。
在业务控制栏位下滚动查找,找到材料采购定单和材料采购申请,单选禁止,保存。
业务事务这个栏位中有比较多的选项,除了采购申请和采购订单的控制之外,结合常见的业务控制策略的选项说明:
控制物料移动:发货,发货过账,货物移动,采购定单货物接收
控制成本记账:FI: 统计记帐FI: 记帐
控制预算调整:锁定预算,预算补充,预算
控制销售单据:建立销售订单、建立开票凭证
具体每一个事务动作的控制,可边设置边做测试。
统状态是WBS(其他业务对象也适用)必填的属性,这就意味着,每个用户状态必然会对应一个系统状态,而且是唯一。笔者的结论,应在系统状态的基础框架下设置用户状态,用户状态对应唯一的系统状态。对于系统状态对应,笔者根据经验做如下对照:
设计用户状态的前提,需要了解系统状态的详细内容,避免出现,用户状态和系统状态的控制逻辑冲突,用户状态对系统状态一对多。
系统状态和用户状态联动。业务要求竣工和系统TECO状态联动。按下图配置,将技术实现动作的设置选中。注意这里的联动关系,区分主动和被动,系统状态主动,用户状态被动触发。
第2步: 用户状态的授权码
操作路径 项目系统->结构->实施结构->工作分解结构(WBS)->工作分解结构用户状态->定义WBS的授权码
事务代码 BS52
配置说明 用户状态的授权操作码定义。用于控制状态的修改权限。
配置内容:
配置2个授权码,用于步骤1中状态码的修改权限。授权码可按照部门也可按照状态清单每一个都定义。如果对于管控的颗粒度不是很高,可按照部门,本例按照部门来设置。
第3步: 状态参数文件分配给项目参数文件
操作路径 项目系统->结构->实施结构->工作分解结构(WBS)->创建项目参数文件
事务代码 OPSA
配置说明 用户状态参数文件分配给项目参数文件
配置内容
将状态参数文件分配给项目参数文件后,用户状态对项目生效。注意,更改凭证勾选,勾选后,任何修改状态的操作都会留下日志备查。否则,不会有日志保存,无法查询历史记录。切记要勾上。
其他模块配合
前台应用
第1步:建项目并改用户状态
操作路径
事务代码 CJ20N
操作岗位 计划管理部门
前置业务 项目前期结束,进入计划阶段
操作输出 项目和状态更改
操作内容:
创建项目1520000199,为了测试出差异,直接下达,将用户状态改为Z020 计划。
第2步:建采购申请的控制
操作路径
事务代码 ME51N
操作岗位 计划管理部门
前置业务 项目前期结束,进入计划阶段
操作输出 禁止建采购申请提示
操作内容:
ME51N建采购申请,系统提示:用户状态Z020(计划)是活动的。根据此状态,不允许事务’材料采购请求’。验证功能已生效。这里我们可以发现,虽然系统状态是REL,允许采购申请或采购订单,但是由于WBS启用了用户状态控制,在Z020用户状态的控制下,禁止用该WBS创建采购申请。这里可以推断,用户状态和系统状态,对业务的控制,是串联关系,必须同时满足才允许业务执行。从这个角度分析,笔者的结论是,系统状态的控制事务清单应包含用户状态控制事务,举例说明,系统状态REL控制了100种事务业务,那么REL状态下的用户状态,应在这100中事务业务中进行选取。避免出现,系统状态禁止的业务,在用户状态中可以被允许。
测试授权码对用户权限的控制
第1步:建2个角色
操作路径
事务代码 PFCG
操作岗位 IT后台管理
前置业务 业务蓝图的权限控制策略
操作输出 角色授权
操作内容:
进入角色权限对象参数维护界面,建角色Z_PS001_F804_01(财务人员),插入权限对象B_USERSTAT。授权参数中STSMA是状态参数文件,选择自定义的ZPS00003,对象类型OBTYP则选择PRN,这里可以点开搜索帮助在列表中选择,BERSL选择授权码ZPS0001。
再建一个角色Z_PS001_F804_02(计划人员),其他参数同上,授权码配置维护ZPS0002
第2步:计划岗位操作
操作路径
事务代码 CJ20N
操作岗位 计划岗位
前置业务 计划人员误操作项目进入计划阶段,出现特殊情况需要将项目状态撤回到准备状态
操作输出 计划人员未授权计划状态的授权码,禁止操作提示
操作内容:
系统提示无授权
第3步:财务岗位操作
操作路径
事务代码 CJ20N
操作岗位 计划岗位
前置业务 项目进入计划阶段,财务人员误操作状态改到施工状态
操作输出 财务人员未授权计划状态的授权码,禁止操作提示
再测试下财务改回准备状态。
第4步:状态联动
操作路径
事务代码 CJ20N
操作岗位 计划岗位
前置业务 项目进入竣工阶段,计划岗位做系统状态TECO
操作输出 TECO技术完成设置后,用户状态自动变成50竣工
操作内容:
实际测试中,我们在Z020计划状态做TECO,系统提示报错。这个错误信息。再一次验证了在用户状态逐级改变的策略下,系统状态变更也遵循配置规则。
逐级更改用户状态到40 收尾。做TECO操作,用户状态变到了50 竣工状态
小结
从这一测试过程中,我们发现,WBS系统状态REL,TECO,CLSD,通过用户状态的联动关系设置,可以对系统状态的设置起到约束的作用,从而有效解决实际应用场景中的一些管控需求,比如项目不到收尾状态不能TECO,可以用这个思路来解决问题。
需要注意的是,部分场景下,通过MRP自动跑出采购申请,则不受状态控制。这个就需要在MRP程序中做相应的增强干预。