Activiti: 关于表单的一些接口

获得流程启动的时候的表单信息
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", variables);
StartFormData formData =  formService.getStartFormData(processInstance.getProcessDefinitionId());


手册里面说道:
表单属性可以通过
ProcessInstance FormService.submitStartFormData(String processDefinitionId, Map<String,String> properties)
and
void FormService.submitStartFormData(String taskId, Map<String,String> properties)
2种方式进行提交。

获得流程运行时候的表单信息
TaskFormData formData = formService.getTaskFormData(task.getId());



问题: 如果是编程,那么如何去为这些表单赋值(赋值应该是在这些节点前的那一刻进行的)?
一下是咖啡兔例子的动态表单处理方式
1. 咖啡兔的例子里面,在请假启动之前,需要输入的表单信息,是放在自定义表里面。所以在启动之前,就把信息保存到自定义表。
2. 咖啡兔的动态表单例子里面,在处理节点之前,通过
StartFormDataImpl startFormData = (StartFormDataImpl) formService.getStartFormData(processDefinitionId);
拿到表单信息,然后构造form view。
然后提交并启动
ProcessInstance processInstance = formService.submitStartFormData(processDefinitionId, formProperties);
,formProperties这个变量保存输入的表单数据的信息。
3. 完成任务前,使用
TaskFormDataImpl taskFormData = (TaskFormDataImpl) formService.getTaskFormData(taskId);
来得到任务节点的表单信息,然后构造form view,并提供输入和提交到后台,并调用完成任务。
4. 提交表单后,使用
formService.submitTaskFormData(taskId, formProperties);
完成任务

猜你喜欢

转载自panyongzheng.iteye.com/blog/1943106