.findLatestProcessDefinitionById(processDefinitionId);
UserTaskBehavior userTask = (UserTaskBehavior) processDefinition
.getDefinitions().getElement(nodeId);
TaskCommandInst taskCommand = userTask.getTaskCommandsMap().get(
userCommandId);
ProcessInstanceEntity processInstanceImpl = processInstanceManager
.findProcessInstanceById(processInstanceId, processDefinition);
processInstanceImpl.getContextInstance().addTransientVariable(
"fixVariable_userCommand", userCommandId);
processInstanceImpl.getContextInstance().setVariableMap(variables);
// processInstanceImpl.setBizKey(this.businessKey);
TokenEntity token = processInstanceImpl.getTokenMap().get(tokenId);
processInstanceImpl.getContextInstance().setTransientVariableMap(
transientVariables);
ExecutionContext executionContext = ProcessObjectFactory.FACTORYINSTANCE
.createExecutionContext(token);
if (taskCommand != null && taskCommand.getExpression() != null) {
try {
ExpressionMgmt.execute(taskCommand.getExpression(),
executionContext);
} catch (Exception e) {
throw new FixFlowException("用户命令表达式执行异常!", e);
}
}
List<TaskInstanceEntity> taskInstances = processInstanceImpl
.getTaskMgmtInstance().getTaskInstanceEntitys();
for (TaskInstanceEntity taskInstance : taskInstances) {
if (taskInstance.getId().equals(taskId)) {
TaskInstanceEntity taskInstanceImpl = taskInstance;
taskInstanceImpl.end();
if (taskCommand != null) {
taskInstanceImpl.setCommandId(taskCommand.getId());
taskInstanceImpl.setCommandType(StringUtil
.getString(taskCommand.getTaskCommandType()));
taskInstanceImpl.setCommandMessage(taskCommand.getName());
}
taskInstanceImpl.setTaskComment(this.taskComment);
}