* @see org.fireflow.engine.taskinstance.ITaskInstanceRunner#run(org.fireflow.engine.IWorkflowSession, org.fireflow.engine.RuntimeContext, org.fireflow.engine.IProcessInstance, org.fireflow.engine.ITaskInstance)
*/
public void run(IWorkflowSession currentSession, RuntimeContext runtimeContext, IProcessInstance processInstance,
ITaskInstance taskInstance) throws EngineException, KernelException {
if (!Task.FORM.equals(taskInstance.getTaskType())){
throw new EngineException(processInstance,
taskInstance.getActivity(),
"DefaultFormTaskInstanceRunner:TaskInstance的任务类型错误,只能为FORM类型");
}
DynamicAssignmentHandler dynamicAssignmentHandler = ((WorkflowSession)currentSession).consumeCurrentDynamicAssignmentHandler();
FormTask task = (FormTask)taskInstance.getTask();
Participant performer = task.getPerformer();//获取到form的执行者
if (performer == null || performer.getAssignmentHandler().trim().equals("")) {
throw new EngineException(processInstance,
taskInstance.getActivity(),
"流程定义错误,Form类型的 task必须指定performer及其AssignmentHandler");
}
assign(currentSession,processInstance,runtimeContext,taskInstance, task, performer, dynamicAssignmentHandler);
}