实现对货品行级别信息的审批

之前常听有些顾问说B1无法对行信息进行审批,比如:采购订单某一行单价超过一定金额即触发审批流程.其实这是一种误解.B1完全可以做到对行信息的审批.
先来分析一下为什么有人认为无法对行信息审批,原因无非有二:
一是在审批的SQL查询中无法直接调用窗口行字段里填的内容.
二是存储过程SBO_SP_TransactionNotification里的代码是在审批触发之后.

其实结合这两种思路,不用开发,很简单就实现对行信息的审批了.方法:

一.首先,在表头建一个自定义字段,比如叫做"是否申请审批",字段选项:0-否;(默认) 1-是.
二.然后在存储过程SBO_SP_TransactionNotification里添加控制,如果行单价超过一定金额,且表头字段"是否申请审批"为0-否时,拒绝单据生成.
三.建一个SQL查询检查表头"是否申请审批",当字段为:1-是 时,触发审批流程

现在明白了吗?当用户填写的信息超过你规定的条件,而又不申请审批时,无法保存.他只有把申请审批改为是才可能通过,而这个时候就顺利触发审批了.
而如果用户填写的信息未达到审批条件,则可以直接保存,无需审批!
 

 
为生产订单加审批?
当然可以! 不是说了吗, B1没有做不到,只有想不到!!!
不过不是用系统的审批,也不需要开发,顾问通过方案即可完成!

要实现生产订单的审批(以单级审批为例,多级审批原理类似),只需按如下步骤就可以完成:

1,为生产订单增加自定义字段:批准状态:0-批准;1-拒绝;2-待批准(默认) 文本字段:拒绝原因;
2,建立自定义表,存放如下信息:需要审批才能让生产订单变成"已批准"状态的用户;有权限改批准状态的用户.
3,利用存储过程(我是用我自已开发的那个控制ADDON,在本论坛可以找到免费下载),作如下控制:
   A.当生产订单更新时,检查状态是否由"计划"变成"已批准"状态(检查日志表的对应记录可实现),如果是,则检查自定义字段"批准状态"是不是0-批准,如果否,并且操作用户为需要审批的用户时,拒绝订单保存.
   B.当生产订单新增时,检查自定义字段"批准状态"是否为2-待批准,如果否,再检查操作用户是否为需要被审批的用户,如果是,拒绝订单保存.
   C.当生产订单更新时,检查自定义字段"批准状态"是否被更新,如果是,检查操作用户是否为有权限改此字段的用户,如果否,拒绝订单保存.

大家仔细想想,这样是不是就能模拟系统审批了?你设定的用户,只有等到他的上级把批准状态改为已批准后,才能把生产订单变成"已批准"状态.以上只是简单的一个原理,要做到完美,还可以完善更多的细节.

另外:这个只是以生产订单为例来说明一个通用的原理,其实订单本身通过对"状态"的相关控制即可做到审批,不需要再建自定义表.这里为了说明通用的原理,才做如上阐述.

其它的单据,如采购订单,可以利用字段"后勤-已批准",另一些单据,可以通过对后续引用单据的控制来实现"未批准"的状态.曾经就利用这个思路把B1的审批完全抛在一边....B1的审批有时候会很烦人的,特别是需要拒绝回去多次修改的情况下.