
propertyPackages属性中增加扩展属性定义
id:自定义的属性id
type:指向自定义的类型
找到文件resources/static/editor-app/configuration/properties.js
在文件中追加自定义类型的注册信息
注意:此处的属性名称“flowable-mypropertytype”,是约定好的书写格式,是定义的propertyPackage的id加前缀flowable,不能随意修改,不然将无法找到相关的信息
readModeTemplateUrl:定义显示属性内容的模板
writeModeTemplateUrl:定义编辑属性内容的模板
flowable本身已经创建了许多类型的模板,可以参考**-template.html相关的文件
增加模板文件
mypropertytype-properties-display-template.html
mypropertytype-properties-write-template.html
增加js实现,创建文件properties-mypropertytype-properties-controller.js
结构可以参考其他相关属性实现,一般为**-properties-controller.js
在index.html引入扩展的属性
在用户任务节点中增加mypeopertypackage
有两种方式配置扩展属性
对应属性设置
对应属性设置
流程实例按步骤执行时,需要保存并使用一些数据,在Flowable中,这些数据称为变量( variable )。
流程实例可以持有变量,称作流程变量( process variables )。
为了使用效率,Flowable将变量分为两种:运行时变量、历史变量。
流程实例运行时的变量,存入act_ru_variable表中。在流程实例运行结束时,此实例的变量在表中删除。
在流程实例创建及启动时,可设置流程变量。所有的 startProcessInstanceXXX 方法都有一个可选参数用于设置变量。例如,在 RuntimeService 中:
也可以在流程执行中加入变量。例如,( RuntimeService ):
读取变量方法(请注意 TaskService 中有类似的方法。这意味着任务与执行一样,可以持有局部变量,其生存期为任务持续的时间。)
历史变量,存入act_hi_varinst表中。在流程启动时,流程变量会同时存入历史变量表中;在流程结束时,历史表中的变量仍然存在。可理解为“永久代”的流程变量。
获取已完成的、id为’XXX’的流程实例中,所有的HistoricVariableInstances(历史变量实例),并以变量名排序。
在实际业务中,流程伴随着各种各样的表单,Flowable引擎将表单数据统一作为流程变量存入变量表中。所以,对于Flowable引擎,可以完全独立于表单运行,因为可以用流程变量替代表单数据。
但一般的,我们需要结构化的数据,表单仍然是我们推荐的用法。
表单定义有两种方法,内置表单和外部表单。
以请假为例,XML内容:
使用方法:
或
内置表单了解即可,实际应用更多的是使用外部表单。
根据表单文件自行渲染的任务表单,称为外部表单。
在springboot环境下, resources/forms 目录下任何.form后缀的表单定义文件都会被自动部署。
例如,将2.2.2表单定义内容保存为leave.form文件,放入 resources/forms 目录下。
实际上,渲染表单所需的所有数据都组装在下面两个方法:
可以通过下面两个方法提交表单参数:
表单参数FormProperty的具体信息:
获取指定流程实例的表单数据的方法:
提交表单数据的方法:
表单数据实际存放在流程变量表,所以,用流程变量的方法同样可以获取及提交表单数据。
表单支持以下类型字段
在实际应用中,Flowable提供的表单字段类型并不能完全满足需求,往往我们需要自定义表单字段类型。
所有自定义字段类型需要继承一个表达类型抽象类“org.flowable.engine.form.AbstractFormType”。
比如,定义一个"卡片"自定义类型:
新建配置类,注册自定义字段类型解析类
Flowable支持自定义表单引擎以适应各种场景。只需要实现接口org.flowable.engine.impl.form.FormEngine,然后在引擎中注册自定义的表单引擎实现类即可。
注册方法与自定义表单字段类型相似,在配置类中加入以下语句:
使用方法:
通过本篇,我们了解到了表单和流程变量的具体使用,同样的,在实际业务使用中,还需要不少优化。比如,我们可以在formKey中保存通用的key,通过算法或转换得到实际需要使用的表单模板,在普通屏幕尺寸的Web应用中显示一个表单,在手机等小屏幕中显示另一个表单。还有下一篇将讲到的“集成JPA”,进一步对表单和流程变量的使用做出优化。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)