单据公式执行规则

  • 格式:doc
  • 大小:41.50 KB
  • 文档页数:2

单据公式执行规则

一、 单据公式分类

单据公式分为运算公式和审核公式两大类:

1、 运算公式:用于执行、计算、赋值。

2、 审核公式:用于检查、校验单据数据。

二、 单据公式执行方式

单据公式有5中执行方式,对应于单据生命周期中的不同时间段。

1、 初始时执行:在创建新单据后马上执行。

2、 启动后执行:在单据数据加载、初始化完成后执行。

3、 运行时执行:单据在修改过程中,触发字段数据发生变化后执行。

4、 存取时执行:在单据保存时执行。

5、 确认时执行:在单据确认、入帐等,业务上确认数据合法性时候,保存单据时执行。

6、 总是执行:除了初始时,其他时间都执行。

三、 单据公式执行顺序

运行时执行的公式由触发字段即时触发。

其他的公式执行顺序是:按照单据主表,从表,附表的顺序遍历,单个表内按照重构的字段顺序触发,然后按照公式定义的顺序执行。如图:

四、 单据公式执行机制

公式执行大致分为内层执行、中层遍历和外层遍历。

1、 内层执行:根据公式类型,确定是执行运算公式还是审核公式。

2、 中层遍历:根据是否是赋值公式,以及是赋值公式的话,赋值影响表,决定做那个表的遍历。

3、 外层遍历:根据是否是存取执行以及驱动项来源于那个表,决定做那个表的遍历。如果外层遍历表跟中层遍历表一致,则只作一次遍历。

如上图:外层因存取而存在,内存因赋值而存在。

例如:如果有一个运行时的运算公式,触发字段为主表的字段,公式中对子表的某个字段赋值,则公式执行时,会对从表的逐条记录执行一遍。因此,需要注意一个问题,单据公式必须是等幂计算,即无论公式执行多少遍,最后的计算结果必须是相同的。