⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskformsubmitaction.java

📁 一个java工作流引擎
💻 JAVA
字号:
package org.jbpm.web.struts.action;

import java.util.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.jbpm.*;
import org.jbpm.model.log.*;
import org.jbpm.web.formgen.*;
import org.jbpm.web.struts.form.*;

public class TaskFormSubmitAction extends Action {
  
  public ActionForward execute(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {
    
    String forward = "homeaction";
    
    TaskForm taskForm = (TaskForm) actionForm;
    
    Long definitionId = taskForm.getDefinitionId();
    Long tokenId = taskForm.getTokenId();
    String stateName = taskForm.getStateName();
    String command = taskForm.getCommand();
    
    Form form = Form.getForm( definitionId, stateName );
    FormGenerator formGenerator = form.getGenerator();
    
    Map errors = new HashMap();
    Map parameters = formGenerator.parseParameters( request, errors );
    Map variables = formGenerator.extractVariables( parameters );
    String transitionName = formGenerator.getSelectedTransitionName( request );
    
    String user = Authentication.getUser(request);
    
    InvocationLog invocationLog = null;
    ExecutionService executionService = JbpmServiceLocator.getInstance().getExecutionService();
    if ( TaskForm.COMMAND_START_PROCESS_INSTANCE.equals( command ) ) {
      invocationLog = executionService.startProcessInstance( Authentication.getUser(request), definitionId, variables, transitionName );
    } else {
      invocationLog = executionService.endOfState( user, tokenId, variables, transitionName );
    }

    /*
    // TODO redirect to next form (instead of the home page) if an assignment has been done to the current user 
    AssignmentLog assignmentLog = null;
    Iterator iter = invocationLog.getExecutionLogs().iterator();
		while ( (iter.hasNext()) 
            && (assignmentLog == null) ) {
      ExecutionLog executionLog = (ExecutionLog) iter.next();
			if ( executionLog instanceof AssignmentLog ) {
        AssignmentLog candidate = (AssignmentLog) executionLog;
        if ( candidate.getActorId().equals( user ) ) {
          assignmentLog = candidate;
        }
      }
		}
    if ( assignmentLog != null ) {
      request.setAttribute( "tokenId", tokenId.toString() );
      request.removeAttribute( "definitionId" );
      forward = "taskformprepareaction";
    }
    */
    
    return mapping.findForward( forward );
  }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -