最近发现一个SAP B1审批功能上很抽象的问题。场景如下:
- 在采购订单上设置一个审批流程,如果是国外供应商则需要走审批流

- 按照普遍对审批的理解,无论单据是什么内容,只要需要单据中的数据满足是国外供应商就会触发审批。
但是实际使用时问题来了:
注意单据状态;添加单据时,审批功能是没问题的。
当审批通过后,又修改这张订单(订单变更很常见的场景)的时候,例如只修改了价格或者数量,居然直接成功了,没有重新走审批!!! 按照普遍思维,无论单据是什么内容,只要满足SQL语句中的条件就触发审批,但实际情况显然不是。 - 通过SAP官网咨询,反馈结果如下:

- 总结下处理方法:
通过自定义查询条件进行审批流判断,如果修改时候还需要触发,则自定义查询条件中需要列出该字段,否则就无法触发。
例如:修改行数量或者金额时候,可通过表头的DocTotal字段进行触发。
原先判断条件:SELECT CASE WHEN EXISTS(SELECT 1 FROM OCRD WHERE CardCode=$[OPOR.CardCode] AND GroupCode='110') THEN 'TRUE' ELSE 'FALSE' END
调整后判断条件:SELECT CASE WHEN EXISTS(SELECT 1 FROM OCRD WHERE CardCode=$[OPOR.CardCode] AND GroupCode='110') THEN 'TRUE' ELSE 'FALSE' END WHERE $[OPOR.DocTotal.NUMBER]>0

评论已关闭