流动实践(5)形式和过程变量
?流程实例可以保存变量,称为流程变量。
?为了使用效率,易流把变量分为两种:运行时变量和历史变量。
?流程实例运行时的变量存储在act_ru_variable表中。在流程实例结束时,该实例的变量在表中被删除。
?创建和启动流程实例时,可以设置流程变量。所有startProcessInstanceXXX方法都有一个用于设置变量的可选参数。例如,在RuntimeService中:
?您还可以将变量添加到流程执行中。例如,(RuntimeService):
?读取变量方法(请注意,TaskService中也有类似的方法。这意味着任务和执行一样,可以保存局部变量,它们的生存期就是任务的持续时间。)
?历史变量,存储在act_hi_varinst表中。流程启动时,流程变量会同时存储在历史变量表中;过程结束时,历史表中的变量仍然存在。一个可以理解为“永续生成”的过程变量。
?获取id为“XXX”的已完成流程实例中的所有HistoricVariableInstances,并按变量名排序。
?在实际业务中,流程伴随着各种表单,流程引擎将表单数据作为流程变量存储在变量表中。因此,对于可流动引擎,它可以完全独立于表单运行,因为表单数据可以被流程变量所替代。
?但总的来说,我们需要结构化数据,表单仍然是我们推荐的用法。
?定义窗体有两种方式:内置窗体和外部窗体。
?以休假为例,XML内容:
?如何使用:
?或者
?理解内置表单就好,实际应用更多的是使用外部表单。
?根据表单文件自行呈现的任务表单称为外部表单。
?在springboot环境中,任何带有。资源/表单目录中的表单后缀将被自动部署。
?例如,将2.2.2表单定义保存为一个leave.form文件,并将其放在resources/forms目录中。
?事实上,呈现表单所需的所有数据都是通过以下两种方式组装的:
?您可以通过以下两种方式提交表单参数:
?表单参数FormProperty的具体信息:
?获取指定流程实例的表单数据的方法:
?提交表单数据的方法:
?表单数据实际上存储在流程变量表中,所以也可以通过使用流程变量方法来获取和提交表单数据。
?表单支持以下类型的字段
?在实际应用中,flow提供的表单字段类型并不能完全满足需求,所以我们经常需要自定义表单字段类型。
?所有自定义字段类型都需要继承一个表达式类型抽象类“org . flow able . engine . form . abstract formtype”。
?例如,定义一个“卡片”自定义类型:
?创建一个新的配置类并注册一个自定义字段类型解析类。
?可流动支持自定义表单引擎,以适应各种场景。你只需要实现接口org . flow able . engine . impl . form . form engine,然后在引擎中注册自定义表单引擎实现类。
?注册方法类似于自定义表单域类型。将以下语句添加到配置类中:
?如何使用:
?通过本文,我们了解了表单和流程变量的具体用法。同样,在实际业务使用中,我们还需要大量的优化。比如我们可以在formKey中保存通用键,通过算法或者转换得到我们实际需要的表单模板,在Web应用中以正常屏幕大小显示一个表单,在手机等小屏幕上显示另一个表单。还有“集成JPA ”,将在下一篇文章中提到,以进一步优化表单和流程变量的使用。