文/吴良锋 李江 张雨豪
编辑/杜逸敏
一、需求来源
最近,明道云某合作伙伴找到我们,提出当前为客户搭建应用中遇到多个困难,需要我们的协助。在为合作伙伴逐一指导解答后,遗留了一个比较有意思的需求。
一个绩效考核应用,客户的实际业务场景是:全部角色总权重占比为100%的前提上 ,会有多个角色共同评分,需要依据评分角色数量再计算一遍最终权重分数。
如果是单纯的计算默认权重,在同角色多人评分的情况下,权重合计分数会超过满分100分,这无疑最终的统计带来巨大难度。因为权重分数还需要手工再计算一遍,费时费力并且准确性也不能保证。
举例:
评分角色 |
权重占比 | 评分(满分100) | 一般权重得分 | 需实现最终权重得分 |
大领导 | 50% | 100 | 50 | 50 |
上级领导 | 30% | 100 | 30 | 10 |
上级领导 | 30% | 100 | 30 | 10 |
上级领导 | 30% | 100 | 30 | 10 |
平级 | 20% | 100 | 20 | 10 |
平级 | 20% | 100 | 20 |
10 |
在这个例子中,只有一位大领导评了一次满分、权重为50%,最终权重得分就是50。有三位上级领导评了三次满分,权重都是30%,那最终权重得分就不应该是30*3=90了,而是应该均分权重占比变为各10分,平级评分也是如此。进一步了解详情后,我们提议为伙伴搭建一个小样例来实现伙伴问题。
正式搭建前,我们梳理并推导出最终权重分数的计算公式和初步思路:各明细最终权重分数=角色权重 x 评分分数÷合计角色数量,然后将计算获得的最终权重分数通过明道云的工作流更新到评分明细,那么,如何直接计算评分的角色数量呢?
在明道云表单中有“汇总”字段控件,可以按筛选条件自动计算关联表的字段计数或合计,这样可以快速实现角色数量合计的需求。但是这个方法存在一些弊端,需要有几个角色就需要设置多少个汇总字段、计算多少遍。虽然伙伴表示这样解决已经可以满足需求了,但是我们还是想给伙伴一个更加完美的方案。
二、解决方案
在评分过程中可能会有多种情况:新评分,修改评分,删除评分。结合明道云工作流的特点,我们可以使用两个工作流来分别实现。
新增、修改评分自动更新权重分数
当新增/更新评分明细时,获取到对应的评分总表(主表),再反向获取评分总表的相同触发角色,运用运算节点计算角色数量后,以流程参数传入子流程计算。子流程依据传入的角色数量计算平均权重分数并更新评分明细。
主流程
子流程
实现效果
删除评分自动更新权重分数
当删除评分明细时,获取到被删除评分明细对应的评分总表(主表),再依据明细记录的评分汇总单据编号反向获取评分总表的未删除的同角色,运用运算节点计算剩余角色数量后以流程参数传入子流程计算。子流程依据传入的角色数量计算平均权重分数并更新评分明细。
主流程
子流程
实现效果
三、总结
明道云可以帮助企业灵活搭建复杂个性化绩效考核应用,解决用传统Excel计算绩效考核中存在的准确度低、周期长、劳心费力等问题,全自动、简单通用地实现复杂的绩效考核评分计算。
除了上述的工作流处理方式,我们还可以将可能被重复使用的工作流抽离出来做“封装业务流程”(PBP),实现流程复用,减少重复设置工作。基于明道云“快、活、通、简”的特性,即使以后客户的业务规则发生变化,业务人员也可以根据最新变化,自行灵活调整绩效考核方案。