很早前就想过,按SAP设计的理念,不应该只狭隘地让采购申请和采购订单的审批内容只能从指定的那两个表结构里找现成的,果然,它是可以扩充的,只是我不知道。最近,在一众朋与友的帮助下,实现了审批结构表的扩充。
最初源于,如果需要采购订单的审批不是按净价值来审批,而是按含税价总价值来决定审批,那怎么办呢。所以,想到,如果加个字段在CEKKO,那就好了,因为在EKPO里,有记录总值的字段,如果能用到这个字段的数据来审批就可以了。
第一步,是在CEKKO增加一个附加结构(-字段)Append Structure:
附加结构的字段参照EKPO-BRTWR 的字段。(不用Y,Z开头,检查有警告,也可以用Y,Z开头,这ABAP知道)
货币类型字段还要有单位参考:
保存,激活,退回。这都是ABAP的,踩过界了。
退回后可以看到新加的附加结构与字段:
结构字段加好了,激活结构。这时可以在CT04引用这个字段了,但它还没有值。
第二步:给新加的字段指定数据来源。增强M06E0004,出口EXIT_SAPLEBND_002。
写程序,程序内容:采购订单的整张单总价值超过100RMB时,须审批。所以要把整张PO的行项目总价值加起再赋给CEKKO-BRTWR。
DATA:L_BRTWR LIKE EKPO-BRTWR . LOOP AT IT_BEKPO INTO GT_BEKPO . IF GT_BEKPO-LOEKZ <> 'X' . "删除的行项目不计" MOVE L_BRTWR TO I_CEKKO-BRTWR . |
同样保存,激活什么的。
第三步:审批策略配置
特性:
分类:
批准策略:
第四步:下采购订单。
采购订单的单个行项目含税总价值不超过100RMB,整张合计行项目含税总价值超过100RMB,要审批。
10行:
整张合计总价值为34+70=104RMB,大于100RMB,须审批。结果:
OK。就是这样。
其实,SAP在结构表也预留了几个字段给我们。可以在出口写程序,赋值给它们,再用于审批策略。
例如,要用成本中心或科目分配类别作为审批内容,估计就可以写出口赋值给它们了。
再者,同理,采购申请的审批结构表CEBAN也是可以这样处理的,只是如果用到出口,则出口不同。CEBAN的出口用这2个: M06E0002 (以行项目为审批单位)M06E0005(以整张为审批单位)。
凡事皆有可能。以此为记。