1.用途
执行业务公式时,根据一定的情况不允许公式继续执行,并弹出错误提示,防止用户操作失误。
业务公式报错时,同一个事件下的业务公式全部回滚到未执行前。
2.示例
2.1 报错操作
我们以填写“请假单”申请请假为例,填写请假单后,单击【提交申请】,若“请假事由”为空时,则不允许提交请假申请。
①在模板的设计窗口,单击工具栏的【状态字段】按钮,添加【提交申请】状态字段,并为【提交申请】状态字段添加业务公式。
②设置公式如下,执行条件为 本表单.提交申请 = 常量.是,当满足以下条件时为 本表单.事由 = "" 或者 本表单.事由 = 常量.空 ,报错信息为"请填写您的请假事由!"。
③应用效果。填写一张“请假单”,“事由”留空,单击【提交申请】按钮,系统执行业务公式
系统报错如下:
2.2 与子数据源的综合应用
我们以“采购入库单”入库审核为例。审核“采购入库单”时,而该采购入库单来源的“采购订单”已经反审(取消采购),此时系统提示“采购订单已经取消审核或者删除”。
其中【入库】为状态按钮,单击【入库】状态按钮时,通过子数据源查询关联的“采购订单”状态,若订单的状态<> 常量.是,则报错。
①《采购入库单》模板样式如下
②添加“审核”状态数据项,并在“审核”的状态改变事件下添加针对“采购入库单”(本模板)的业务公式。
③设置业务公式,“采购入库单”有2个目标对象,只需要针对基本信息操作,使用默认的目标对象“采购入库单”。
数据源使用默认的“本表单”;
将情况1重命名为“审核_有来源时验证来源状态”,当 本表单.审核=常量.是 并且 有来源单号时,才需要做做验证,填写执行条件;
设置
子数据源
,此时需要判断“采购订单”的状态,因此需要添加模板数据接口“采购订单.查询单据审核状态(采购单号)”,查询结果要么为空,要么只有一条记录,无需设置“多记录”;针对“采购入库单”执行“报错操作”,并不是只要执行条件满足就一定报错,而是通过来源的“采购订单”状态决定,当采购订单.审核=常量.空 或者 常量.否时才需要报错,设置满足条件;
报错时,为了报错更清晰,编辑报错信息;
④模板数据接口“采购订单.查询单据审核状态(采购单号)”,该数据接口的数据来源于“采购订单”,应该在《采购订单》中设计接口
数据源为本模板;数据列为“本模板.审核”;
过滤条件添加参数“采购单号”,根据采购单号,查询订单的审核情况;
在该案例中,审核时,还可针对《采购订单》《库存表》《商品信息》....多个目标模板操作,根据业务公式的执行规则(详见
概述-执行规则
),报错时该事件下所有的公式将回滚,为了提高系统运行的效率,有报错的公式放在第一个执行,在同一个业务公式中有报错的情况,也放在第一个情况中运行。