单据公式执行规则
- 格式:doc
- 大小:41.50 KB
- 文档页数:2
单据公式执行规则
一、 单据公式分类
单据公式分为运算公式和审核公式两大类:
1、 运算公式:用于执行、计算、赋值。
2、 审核公式:用于检查、校验单据数据。
二、 单据公式执行方式
单据公式有5中执行方式,对应于单据生命周期中的不同时间段。
1、 初始时执行:在创建新单据后马上执行。
2、 启动后执行:在单据数据加载、初始化完成后执行。
3、 运行时执行:单据在修改过程中,触发字段数据发生变化后执行。
4、 存取时执行:在单据保存时执行。
5、 确认时执行:在单据确认、入帐等,业务上确认数据合法性时候,保存单据时执行。
6、 总是执行:除了初始时,其他时间都执行。
三、 单据公式执行顺序
运行时执行的公式由触发字段即时触发。
其他的公式执行顺序是:按照单据主表,从表,附表的顺序遍历,单个表内按照重构的字段顺序触发,然后按照公式定义的顺序执行。如图:
四、 单据公式执行机制
公式执行大致分为内层执行、中层遍历和外层遍历。
1、 内层执行:根据公式类型,确定是执行运算公式还是审核公式。
2、 中层遍历:根据是否是赋值公式,以及是赋值公式的话,赋值影响表,决定做那个表的遍历。
3、 外层遍历:根据是否是存取执行以及驱动项来源于那个表,决定做那个表的遍历。如果外层遍历表跟中层遍历表一致,则只作一次遍历。
如上图:外层因存取而存在,内存因赋值而存在。
例如:如果有一个运行时的运算公式,触发字段为主表的字段,公式中对子表的某个字段赋值,则公式执行时,会对从表的逐条记录执行一遍。因此,需要注意一个问题,单据公式必须是等幂计算,即无论公式执行多少遍,最后的计算结果必须是相同的。