2 Replies Latest reply on Oct 9, 2006 8:44 AM by antitrust1982

    how create swimlane

    antitrust1982

      Hello,

      I have created a jbpm portlet. For now I have use this code in order to do working the swimlane assigment:

      package com.opensymphony.webwork.portlet.tutorial;
      
      import java.util.*;
      
      
      import org.jbpm.graph.def.ProcessDefinition;
      import org.jbpm.graph.exe.ExecutionContext;
      import org.jbpm.graph.exe.ProcessInstance;
      import org.jbpm.db.*;
      import org.jbpm.graph.exe.Token;
      import org.jbpm.taskmgmt.exe.*;
      import org.jbpm.taskmgmt.log.SwimlaneAssignLog;
      import org.jbpm.taskmgmt.log.SwimlaneCreateLog;
      import org.jbpm.taskmgmt.log.SwimlaneLog;
      import org.jbpm.taskmgmt.log.TaskAssignLog;
      import org.jbpm.graph.exe.*;
      import org.jbpm.graph.log.TokenCreateLog;
      
      import com.opensymphony.xwork.ActionContext;
      import com.opensymphony.xwork.ActionSupport;
      import org.jbpm.*;
      
      import org.jbpm.taskmgmt.def.*;
      
      import org.jbpm.ant.StartHsqldbTask;
      import org.jbpm.context.log.*;
      
      import java.util.Iterator;
      
      public class CreateProcessInstanceAction extends ActionSupport{
      
       TaskInstance taskinstance=null;
       static JbpmConfiguration jbpmConfiguration = null;
       static ProcessDefinition processDefinition= null;
       Date date;
      
       JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
       GraphSession graphSession = jbpmContext.getGraphSession();
       SwimlaneInstance si =null;
       ExecutionContext ec=null;
       private long processus;
      
       public long getProcessus() {
       return processus;
       }
       public void setProcessus(long processus) {
       System.out.println("set process");
       this.processus = processus;
       }
      
      
      @Override
      public String execute() throws Exception {
       Map session1 = (Map) ActionContext.getContext().get("session");
       String login=(String) session1.get("login");
       System.out.println("mon login:"+login);
       Collection processdefinstances= graphSession.findAllProcessDefinitions();
       Iterator itpro = processdefinstances.iterator();
       while (itpro.hasNext()){
       ProcessDefinition processdef =(ProcessDefinition) itpro.next();
       if(processus == processdef.getId()){
       ProcessInstance processinstance= processdef.createProcessInstance();
       jbpmContext.save(processinstance);
       jbpmContext.loadProcessInstanceForUpdate(processinstance.getId());
      
      
       Map swimlanes = processdef.getTaskMgmtDefinition().getSwimlanes();
       Iterator itr = swimlanes.keySet().iterator();
       while(itr.hasNext()) {
       Swimlane swimlane = (Swimlane)swimlanes.get(itr.next());
       swimlane.setPooledActorsExpression(login);
       ec= new ExecutionContext(processinstance.getRootToken());
       SwimlaneInstance swi = processinstance.getTaskMgmtInstance().getInitializedSwimlaneInstance(ec, swimlane);
      
       /*if(swi.getName().equals("Assurimo")){
       swi.setActorId("bert");
       }*/
      
       Set pooledActors = swi.getPooledActors();
       if(pooledActors != null) {
       Iterator paItr = pooledActors.iterator();
       while(paItr.hasNext()) {
       ((PooledActor)paItr.next() ).setSwimlaneInstance(swi);
       }
       }
      
       }
      
       if (processdef.getTaskMgmtDefinition().getStartTask() != null) {
      
       org.jbpm.taskmgmt.def.Task task = processdef.getTaskMgmtDefinition().getStartTask();
       String swimlaneName = task.getSwimlane().getName();
       SwimlaneInstance swi = processinstance.getTaskMgmtInstance().getSwimlaneInstance(swimlaneName);
       String originalActorId = swi.getActorId();
       Set originalPooledActors = swi.getPooledActors();
       System.out.println("taskinstance");
       TaskInstance startTask = processinstance.getTaskMgmtInstance().createStartTaskInstance();
       startTask.setActorId(login);
       startTask.setDueDate(date);
      
       if(startTask.getSwimlaneInstance() != null) {
       si = startTask.getSwimlaneInstance();
       startTask.getSwimlaneInstance().setActorId(login);
      
       if (startTask.getSwimlaneInstance().getPooledActors() != null) {
      
       }
       }
      
       }
       else {
       }
      
       jbpmContext.save(processinstance);
       jbpmContext.close();
       }
       }
      
       return SUCCESS;
       }
      }


      Now I want create automatically my swimlane for processes, but how create a swimlane from the process definition.

      thank you for your help

      antitrust1982

        • 1. Re: how create swimlane
          antitrust1982

          hello,

          when I create a porcess, I don't know why jbpm want that I define all the user of the swimlanes. How can create my swimlanes without run my all process.

          because I create a start task without swimlane and after I have a swimlane task in my case. So when I instanciate my process I have this error:


          08:16:02,843 ERROR [portal-web.docroot.html.common.error.jsp] Error executing action NewProcess
          javax.portlet.PortletException: Error executing action NewProcess
          at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:427)
          at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.processAction(Jsr168Dispatcher.java:272)
          at com.liferay.portal.shared.servlet.PortletServlet.service(PortletServlet.java:77)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
          at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
          at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
          at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:289)
          at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:142)
          at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:232)
          at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:250)
          at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:86)
          at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
          at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
          at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:185)
          at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
          at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
          at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:415)
          at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:810)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:91)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:131)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:112)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:197)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
          at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
          at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
          at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
          at java.lang.Thread.run(Thread.java:595)
          Caused by: org.jbpm.graph.def.DelegationException
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:208)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.getInitializedSwimlaneInstance(TaskMgmtInstance.java:176)
          at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:170)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:148)
          at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:167)
          at org.jbpm.graph.def.Node.enter(Node.java:316)
          at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke(<generated>)
          at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
          at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
          at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$e5c9eb20.enter(<generated>)
          at org.jbpm.graph.def.Transition.take(Transition.java:119)
          at org.jbpm.graph.def.Node.leave(Node.java:382)
          at org.jbpm.graph.node.StartState.leave(StartState.java:70)
          at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke(<generated>)
          at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
          at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
          at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$e5c9eb20.leave(<generated>)
          at org.jbpm.graph.exe.Token.signal(Token.java:174)
          at org.jbpm.graph.exe.Token.signal(Token.java:123)
          at com.opensymphony.webwork.portlet.tutorial.CreateProcessInstanceAction.execute(CreateProcessInstanceAction.java:67)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
          at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
          at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
          at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
          at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:100)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
          at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:414)
          ... 49 more
          Caused by: org.jbpm.identity.assignment.ExpressionAssignmentException: couldn't resolve assignment expression 'user(ernie)'
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.assign(ExpressionAssignmentHandler.java:97)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentDelegation(TaskMgmtInstance.java:217)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:193)
          ... 105 more
          Caused by: org.jbpm.identity.assignment.ExpressionAssignmentException: user 'ernie' couldn't be fetched from the user db
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.getUserByName(ExpressionAssignmentHandler.java:210)
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.resolveFirstTerm(ExpressionAssignmentHandler.java:147)
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.assign(ExpressionAssignmentHandler.java:75)
          ... 107 more

          Nested Exception is org.jbpm.graph.def.DelegationException
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:208)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.getInitializedSwimlaneInstance(TaskMgmtInstance.java:176)
          at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:170)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:148)
          at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:167)
          at org.jbpm.graph.def.Node.enter(Node.java:316)
          at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke(<generated>)
          at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
          at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
          at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$e5c9eb20.enter(<generated>)
          at org.jbpm.graph.def.Transition.take(Transition.java:119)
          at org.jbpm.graph.def.Node.leave(Node.java:382)
          at org.jbpm.graph.node.StartState.leave(StartState.java:70)
          at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke(<generated>)
          at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
          at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
          at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$e5c9eb20.leave(<generated>)
          at org.jbpm.graph.exe.Token.signal(Token.java:174)
          at org.jbpm.graph.exe.Token.signal(Token.java:123)
          at com.opensymphony.webwork.portlet.tutorial.CreateProcessInstanceAction.execute(CreateProcessInstanceAction.java:67)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:365)
          at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:217)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:191)
          at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:137)
          at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
          at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:81)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:171)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:100)
          at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
          at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
          at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.serviceAction(Jsr168Dispatcher.java:414)
          at com.opensymphony.webwork.portlet.dispatcher.Jsr168Dispatcher.processAction(Jsr168Dispatcher.java:272)
          at com.liferay.portal.shared.servlet.PortletServlet.service(PortletServlet.java:77)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
          at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
          at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
          at com.liferay.portlet.CachePortlet._invoke(CachePortlet.java:289)
          at com.liferay.portlet.CachePortlet.processAction(CachePortlet.java:142)
          at com.liferay.portal.action.LayoutAction._processPortletRequest(LayoutAction.java:232)
          at com.liferay.portal.action.LayoutAction._processActionRequest(LayoutAction.java:250)
          at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:86)
          at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
          at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
          at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:185)
          at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
          at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
          at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:415)
          at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:810)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.filters.strip.StripFilter.doFilter(StripFilter.java:91)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:131)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.filters.compression.CompressionFilter.doFilter(CompressionFilter.java:112)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter.doFilter(LayoutCacheFilter.java:197)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
          at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
          at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
          at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
          at java.lang.Thread.run(Thread.java:595)
          Caused by: org.jbpm.identity.assignment.ExpressionAssignmentException: couldn't resolve assignment expression 'user(ernie)'
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.assign(ExpressionAssignmentHandler.java:97)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentDelegation(TaskMgmtInstance.java:217)
          at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:193)
          ... 105 more
          Caused by: org.jbpm.identity.assignment.ExpressionAssignmentException: user 'ernie' couldn't be fetched from the user db
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.getUserByName(ExpressionAssignmentHandler.java:210)
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.resolveFirstTerm(ExpressionAssignmentHandler.java:147)
          at org.jbpm.identity.assignment.ExpressionAssignmentHandler.assign(ExpressionAssignmentHandler.java:75)
          ... 107 more




          JBPM want a definition of ernie but I'm not in this node yet for executing I just create my start node. can you help me ?

          I want create a java file which permit me to create all the possible processes like the webapplication of the quickstart, (in a portlet). for the moment I can create a porcess if my start task in assign by swimlane to a specific person. So I want to generalize file to create any processes that I want to.

          thank you for your help

          antitrust1982

          • 2. Re: how create swimlane
            antitrust1982

            Nobody can explain me how then assign poeple and swimlane in the qucikstart webapp. because this webapp do that I want but I can find where and how they create the swimlane and assigment of the tasks.