美文网首页
数据保存(四) 立即执行中删除

数据保存(四) 立即执行中删除

作者: MisShop智能开发平台 | 来源:发表于2020-03-23 21:27 被阅读0次

1.级联删除子表

删除数据的同时,删除引用这条记录的子表的数据,可以通过在数据表设计中,对于引用字段,勾选上级联删除来实现。

但如果不是简单的级联删除子表数据,那么如何实现呢。
例如对于报销流程的报销单来说,希望删除报销单的同时,删除报销单对应的流程实例mis_process_execution(也就是流程实例)。


2.复杂的删除

如删除报销单的时候,希望同时删除该报销单关联的报销流程的实例mis_process_execution的数据。

我们在报销单列表下,按照建立立即执行页面的方法,建立一个报销单的详情页面。
然后给该页面建立 泛型(数据表)是 mis_process_execution 的数据集executions。
设置筛选条件为:
table.mis_process_execution.business_key==@it_id && table.mis_process_execution.process=="报销流程"

表示筛选出流程实例表中,流程名为"报销流程",而业务主键是传递过来的参数@it_id的数据。

接下来我们设计页面,

  • A1格 值中写入=@it_id, 保存至属性写入:save.delete(it.id)

A1格的值是参数it_id,也就是传递过来需要删除的报销表记录的id。
保存至中写入save.delete表示删除,it.id表示按照it表的id去删除。由于it是报销表,所以这句话表示保存时,删除报销表中id为格子值的记录。

  • A2格 值中写入.=executions.select(executions.id), 保存至属性写入:save.delete(executions.id)

这里A2格表示 数据集executions,展开后的多条记录的id。也就是看到的多行流程实例id。保存至的公式里和上面相同的save.delete函数表示按照id去删除mis_process_execution表的记录。由于扩展开多个格子,所以将会删除多条记录。

点击翻译 可以看到生成的更新属性:

image.png

两条del的更新属性。

最后我们在报销单的列表页面配置一个立即执行按钮,指向这个页面,并且把id传递到it_id中即可。


2.保存或立即执行中的删除

立即执行相当于其他编程语言中的服务,可以完成各种复杂工作。
在一个普通的立即执行中,可以通过这种save.delete的方式,来实现执行过程中对于某些数据的删除。

这些删除命令,将会和其他更新命令一起,在用户点击保存,或者点击立即执行按钮的时候同时执行。如果执行出错,会回滚操作,抛出错误。

相关文章

网友评论

      本文标题:数据保存(四) 立即执行中删除

      本文链接:https://www.haomeiwen.com/subject/ldvwyhtx.html