本文介绍了在金蝶云星空中实现仓库权限控制的解决方案。由于标准功能不支持多对多账号与仓库的对应关系,通过自定义配置仓管员与仓库代码的对应关系,并在单据中进行匹配校验来实现权限控制。详细步骤包括基础资料配置、单据配置及保存校验规则配置,确保仓管员只能审核其负责的仓库单据。
系统上线之初,经常碰到财务小伙伴问各个仓库的仓管员是否有对应其负责的仓库权限的控制或配置,比如:生产领料单,物料对应的仓库为原料仓只能由原料仓的仓管员才能审核,因为财务在成本核算或月末盘点时才发现,某些倒冲的生产领料单是直接从原料仓出库的,属于人为失误且无法及时发现。基本上ERP的标准功能是不支持这个需求的配置,之前做过的SAP B1也是。参考SAP B1之前的经验,通过新建一张表单:录入仓管员账员与仓库代码,并一一对应,然后在数据库中的存储过程对有关的出入库单据一一进行出入库的账号与仓库是否匹配进行校验; 因此在金蝶云星空中,也可以按照这个思路进行保存校验的控制。
前提:考虑到权限控制的灵活性,因此需要配置账号与仓库的对应关系是多对多的关系,比如一个仓管员可以管理多个仓库,一个仓库可以由多个仓管员负责管理;
一、系统实现思路:
1.首先,我们知道,基础资料仓库里面有一个字段:仓库负责人,但是这个如果用来做控制,只能是一个仓库对一个负责人,达不到我们想要的多对多的控制关系; 因此这个方法不行;
2.考虑到多对多,需要用到仓管员的字段来对应仓库代码,然后通过基础资料属性带到单据中,再通过单据中仓库与仓管员对应的仓库代码进行匹配校验;
3.通过单据的数据规则,配置用户的审核权限:仓管员是否为当前用户或指定的仓管员
二、系统配置:
1.首先,BOS找到仓管员这个基础资料,发布到客户端(权限控制也提前配置本文略过),因为这个基础资料比较特殊是通过业务员这张单据系统自动生成,所以无法手工新增与审核,BOS新增自定义字段也会报错,因此,这里将仓管员有一个字段:“描述”拿来用作对应仓库代码的字段;
1.1将仓管员与仓管员列表发布到桌面端;
1.2BOS将仓管员:描述字段在审核状态下设为可以编辑;
1.3 到客户端,打开仓管员列表,找到仓管员,在描述这个字段录入对应的仓库代码; 关闭提示是否保存,选“是”;
2.前面已将基础资料配置完成,下面进行单据配置,这里以其他出库单为例进行示范
2.1 其他出库单明细信息新增文本字段: 负责仓库,用来存储仓管员对应的仓库代码;
2.2BOS打开其他出库单,将仓管员引用属性增加:描述这个字段;
2.3 BOS:仓管员-配置值更新,将仓管员的属性(描述)带到:明细行“负责仓库”这个字段;
2.3 BOS 明细信息-“发货仓库”配置值更新:调用"仓管员"的值更新
2.4 在客户端,录下单据看下效果,没有问题,仓管员对应的仓库代码已带到明细信息"负责仓库";
3.最后就是单据的明细信息"发货仓库"与"负责仓库"的保存校验规则的配置
3.1因为这里是一对多的关系,因此不能用等于,这里需要用到python包含.find; 检查发货仓库是否在负责仓库里面,如包含则值>=0,如果不包含则相反,值<0;
3.2录入单据,看下保存校验是否成功,故意录入一个别的人仓库,经保存校验,成功报错了;
4.最后,配置下用户的数据规则权限,这样保证用户权限只能查看并审核仓管员=用户的单据了;
三、最后,码字不易,看到这里如果对您有用,帮忙点个赞再走,谢谢!