5.1. ProcActionsFragment
流程操作 Fragment
ProcActionsFragment
用于处理流程操作。fragment 被初始化之后,以下组件会自动显示:
-
启动流程按钮,在流程尚未启动的情况下显示
-
处理任务按钮,在流程已启动且当前用户具有活动任务的情况下显示
-
取消流程按钮
-
任务信息面板(显示任务的名称和创建日期等信息)
可以将断言分配给每个流程操作以检查操作是否可以被执行(例如,断言提交编辑器,如果提交失败,则不执行流程操作)。还可以定义 post-action 监听器(例如,监听器将关闭编辑器并显示一条通知)。
ProcActionsFragment
必须与 ProcInstance
关联。在 fragment 初始化期间进行关联。
fragment 初始化的一个示例:
procActionsFragment.initializer()
.setBeforeStartProcessPredicate(() -> {
getScreenData().getDataContext().commit();
return true;
})
.setAfterStartProcessListener(() -> {
notifications.create()
.withCaption(messageBundle.getMessage("processStarted"))
.withType(Notifications.NotificationType.HUMANIZED)
.show();
})
.init(PROCESS_CODE, getEditedEntity());
-
initializer()
方法返回一个用于初始化 fragment 的对象。 -
setBeforeStartProcessPredicate
方法设置将在流程启动之前被执行的断言。如果断言返回false
,则流程启动会中断。 -
setAfterStartProcessListener
方法定义一个在流程启动操作被执行后将被调用的监听器。 -
init
方法有两个参数:流程代码和实体实例。此方法被调用时,将搜索ProcInstance
对象,这个对象与实体实例关联,并且具有对给定代码的ProcDefinition
的引用。如果这个ProcInstance
对象存在,则将 fragment 关联到它,否则创建一个新的ProcInstance
对象。
初始化 ProcActionsFragment
的最简单方法是使用 standard() 初始化程序:
procActionsFragment.initializer()
.standard()
.init(PROCESS_CODE, getEditedEntity());
标准初始化器执行以下操作:
-
创建在启动流程之前提交实体编辑器和完成任务操作的断言
-
创建显示 “流程启动” 或 “任务完成” 等通知并且刷新
ProcActionsFragment
的监听器。
以下是用于自定义 fragment 的方法列表。
- 流程生命周期
-
-
initializer()
- 返回一个 fragment 初始化器的新实例。
-
init()
- 尝试通过指定的流程代码和实体引用来查找流程实例。如果未找到流程实例,则会创建一个新流程实例。然后适用于当前用户和流程实例流程操作 UI 被初始化。
-
- 流程配置
-
-
setStartProcessEnabled()
- 定义是否可以启动该流程。
-
setCancelProcessEnabled()
- 定义是否可以取消该流程。
-
setCompleteTaskEnabled()
- 定义任务是否可以完成。
-
setClaimTaskEnabled()
- 定义是否可以自己将任务分配给用户。
-
setTaskInfoEnabled()
- 定义是否启用具有本地化任务名称及其开始日期的布局。
-
setButtonWidth()
- 设置操作控制按钮的宽度。默认值为 150px。
-
addActionButton()
- 允许在自动生成的按钮旁边给 fragment 添加自定义按钮。
-
- 断言
-
-
setBeforeStartProcessPredicate()
- 设置在流程启动之前将被执行的断言。如果断言返回false
,则流程启动将被中断。
-
setBeforeCompleteTaskPredicate()
- 设置在任务完成之前将被执行的断言。如果断言返回false
,则任务完成将被中断。
-
setBeforeClaimTaskPredicate()
- 设置在向用户分配任务之前将被执行的断言。如果断言返回false
,则任务分配将被中断。
-
setBeforeCancelProcessPredicate()
- 设置在任务取消之前将被执行的断言。如果断言返回false
,则该任务不会被取消。
-
- 流程和任务监听器
-
-
setAfterStartProcessListener()
- 定义将在执行流程启动操作后将被调用的监听器。
-
setAfterCompleteTaskListener()
- 定义将在执行任务完成操作后将被调用的监听器。
-
setAfterClaimTaskListener()
- 定义将在执行任务分配操作后将被调用的监听器。
-
setAfterCancelProcessListener()
- 定义将在执行流程取消操作后将被调用的监听器。
-
- 变量和参数提供者
-
-
setStartProcessActionProcessVariablesSupplier()
- 设置流程变量提供者。流程变量提供者返回流程变量字典,必须在流程启动时将其添加到 Activiti 流程实例。
-
setCompleteTaskActionProcessVariablesSupplier()
- 设置流程变量提供者。流程变量提供者返回流程变量字典,必须在任务完成时将其添加到 Activiti 流程实例。
-
setStartProcessActionScreenParametersSupplier()
- 设置流程表单界面参数提供者。这些界面参数提供者返回一个界面参数字典,该字典将传递给通过StartProcessAction
显示的流程表单。
-
setCompleteTaskActionScreenParametersSupplier()
- 设置流程表单界面参数提供者。这些界面参数提供者返回一个界面参数字典,该字典将传递给通过CompleteTaskAction
显示的流程表单。
-
- ProcActionsFragment API
- 初始化程序 API
-
init - setAfterCancelProcessListener - setAfterClaimTaskListener - setAfterCompleteTaskListener - setAfterStartProcessListener - setBeforeCancelProcessPredicate - setBeforeClaimTaskPredicate - setBeforeCompleteTaskPredicate - setBeforeStartProcessPredicate - setButtonWidth - setCancelProcessEnabled - setClaimTaskEnabled - setCompleteTaskActionProcessVariablesSupplier - setCompleteTaskActionScreenParametersSupplier - setCompleteTaskEnabled - setStartProcessActionProcessVariablesSupplier - setStartProcessActionScreenParametersSupplier - setStartProcessEnabled - setTaskInfoEnabled