1.用途
执行业务公式时,根据一定的情况不允许公式继续执行,并弹出错误提示,防止用户操作失误。
业务公式报错时,同一个事件下的业务公式全部回滚到未执行前。
2.示例
2.1 报错操作
我们以填写“请假单”申请请假为例,填写请假单后,单击【提交申请】,若“请假事由”为空时,则不允许提交请假申请。
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/baf16cc5-0c1c-4b55-8f90-20a338d6c2c1/%E4%B8%9A%E5%8A%A1%E5%85%AC%E5%BC%8F%E6%8A%A5%E9%94%9911644389463604.png)
①在模板的设计窗口,单击工具栏的【状态字段】按钮,添加【提交申请】状态字段,并为【提交申请】状态字段添加业务公式。
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/baf16cc5-0c1c-4b55-8f90-20a338d6c2c1/41644389550112.png)
②设置公式如下,执行条件为 本表单.提交申请 = 常量.是,当满足以下条件时为 本表单.事由 = "" 或者 本表单.事由 = 常量.空 ,报错信息为"请填写您的请假事由!"。
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/baf16cc5-0c1c-4b55-8f90-20a338d6c2c1/51644389597383.png)
③应用效果。填写一张“请假单”,“事由”留空,单击【提交申请】按钮,系统执行业务公式
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/baf16cc5-0c1c-4b55-8f90-20a338d6c2c1/61644389622765.png)
系统报错如下:
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/baf16cc5-0c1c-4b55-8f90-20a338d6c2c1/71644389644353.png)
2.2 与子数据源的综合应用
我们以“采购入库单”入库审核为例。审核“采购入库单”时,而该采购入库单来源的“采购订单”已经反审(取消采购),此时系统提示“采购订单已经取消审核或者删除”。
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/8ad72fce-4065-4439-a223-a26791d281b9/1665986650816/image.png)
其中【入库】为状态按钮,单击【入库】状态按钮时,通过子数据源查询关联的“采购订单”状态,若订单的状态<> 常量.是,则报错。
①《采购入库单》模板样式如下
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/8ad72fce-4065-4439-a223-a26791d281b9/1665985658281/image.png)
②添加“审核”状态数据项,并在“审核”的状态改变事件下添加针对“采购入库单”(本模板)的业务公式。
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/8ad72fce-4065-4439-a223-a26791d281b9/1665985771652/image.png)
③设置业务公式,“采购入库单”有2个目标对象,只需要针对基本信息操作,使用默认的目标对象“采购入库单”。
数据源使用默认的“本表单”;
将情况1重命名为“审核_有来源时验证来源状态”,当 本表单.审核=常量.是 并且 有来源单号时,才需要做做验证,填写执行条件;
设置
子数据源
,此时需要判断“采购订单”的状态,因此需要添加模板数据接口“采购订单.查询单据审核状态(采购单号)”,查询结果要么为空,要么只有一条记录,无需设置“多记录”;针对“采购入库单”执行“报错操作”,并不是只要执行条件满足就一定报错,而是通过来源的“采购订单”状态决定,当采购订单.审核=常量.空 或者 常量.否时才需要报错,设置满足条件;
报错时,为了报错更清晰,编辑报错信息;
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/8ad72fce-4065-4439-a223-a26791d281b9/1665979025958/image.png)
④模板数据接口“采购订单.查询单据审核状态(采购单号)”,该数据接口的数据来源于“采购订单”,应该在《采购订单》中设计接口
数据源为本模板;数据列为“本模板.审核”;
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/8ad72fce-4065-4439-a223-a26791d281b9/1665987020876/image.png)
过滤条件添加参数“采购单号”,根据采购单号,查询订单的审核情况;
![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/8ad72fce-4065-4439-a223-a26791d281b9/1665987080007/image.png)
在该案例中,审核时,还可针对《采购订单》《库存表》《商品信息》....多个目标模板操作,根据业务公式的执行规则(详见
概述-执行规则
),报错时该事件下所有的公式将回滚,为了提高系统运行的效率,有报错的公式放在第一个执行,在同一个业务公式中有报错的情况,也放在第一个情况中运行。![](https://saas.bk-cdn.com/t/87272730-5b16-4196-bed5-5f8eb2b1bbb0/u/8ad72fce-4065-4439-a223-a26791d281b9/1665987241999/image.png)
《》