【增强背景】
在去年的一个项目中,采购订单的增强做的比较多,以下就是一个。当时采购订单类型的分类分得很细,无非从业务类型、权限、号码段、创建方式等方面考虑区分订单类型的必要性。最终的方案如下
在测试过程中就遇到这样的问题,就连顾问也会不小心创建错的类型
1、ZNB1标准采购订单也能创建本应该用ZNB2的固定资产
2、ZNB4工序委外的也能创建本应该ZNB5费用采购订单
3、费用类的都不允许物料号的,这是当时方案的一个基础
4、标准的配置只能配采购凭证类型+行项目类别;科目分配类别+行项目类别;唯独缺一个采购凭证类型+科目分配类别的组合,因此这就是这个增强的真正目的
【功能实现】
前4项的配置是标准的配置,这里不详述,仅说增强的实现
增强的基本逻辑是
先检查凭证类别+采购凭证类型,自建表出现的范围才检查控制
1、当M21N、ME22N保存采购订单时,检查该张表的组合关系,组合关系不在自建表当中报错
1.1组合关系举例:ZNB1的订单只能发生科目分配类别、行项目类别为空的值,否则报错,每一行都检查
1.2报错消息为:采购订单&的科目分类类别&、行项目类别&的组合没有被定义,请联系IT部门!
1.3当物料号字段有值时,检查是否允许物料号=X,如果<>X报错:采购订单类型&不允许有物料号采购!请检查采购订单&行
2、当M51N、ME52N保存采购申请时,检查该张表的组合关系,组合关系不在自建表当中报错
2.1组合关系举例:ZNB1的订单只能发生科目分配类别、行项目类别为空的值,否则报错,每一行都检查
2.2报错消息为:采购申请&的科目分类类别&、行项目类别&的组合没有被定义,请联系IT部门!
2.3当物料号字段有值时,检查是否允许物料号=X,如果<>X报错:采购订单类型&不允许有物料号采购!请检查采购订单&行
这张自建表其实不用行项目类别字段的,因为标准配置已控制,仍然写到这张自建表的目的是让顾问指定,整体的凭证类型控制业务的场景的组合关系可以在这张表中体现。
【增强效果】
以下是部分报错达到效果的截图,因为测试的场景组合比较多,列举几项,这个增强很通用,配置一下要允许的组合关系即可,而如果在不同公司代码、采购组织、工厂有不同的控制只需自建表再增加几个主键维度即可
ZNB1标准采购订单不能创建本应该ZNB2固定资产采购订单
ZNB2固定资产采购订单不能创建本应该ZNB5费用采购订单