cancel
Showing results for 
Search instead for 
Did you mean: 

workflowService in Alfresco 5

svar0g
Champ in-the-making
Champ in-the-making
I want make workflow report. In page http://ecmarchitect.com/archives/2010/12/20/1228 read code.

[java]
WorkflowTaskQuery tasksQuery = new WorkflowTaskQuery();
Map<QName, Object> processCustomProps = new HashMap<QName, Object>();
processCustomProps.put(SomeCoWorkflowModel.PROP_RELATED_SITE_ID, siteId);
tasksQuery.setProcessCustomProps(processCustomProps);
tasksQuery.setTaskName(SomeCoWorkflowModel.TYPE_DASHBOARD_TASK);
tasksQuery.setTaskState(WorkflowTaskState.IN_PROGRESS);
List<WorkflowTask> tasks = workflowService.queryTasks(tasksQuery);

[/java]
But eclipse shows errors.


siteId cannot be resolved to a variable   NodeWebScript.java   /workflow/src/org/example   line 269   Java Problem
SomeCoWorkflowModel cannot be resolved to a variable   NodeWebScript.java   /workflow/src/org/example   line 269   Java Problem
SomeCoWorkflowModel cannot be resolved to a variable   NodeWebScript.java   /workflow/src/org/example   line 271   Java Problem
The type List is not generic; it cannot be parameterized with arguments <WorkflowTask>   NodeWebScript.java   /workflow/src/org/example   line 273   Java Problem
workflowService cannot be resolved   NodeWebScript.java   /workflow/src/org/example   line 273   Java Problem

[img]http://rghost.ru/8ptgPKJGH/image.png[/img]

I think is no load library,but i'm include all library and error save.
Pls help me. workflowService disable in Alfresco 5?
3 REPLIES 3

mrogers
Star Contributor
Star Contributor
Workflow service should be fine in 5.0 but you may want to use activity (not jbpm) for the task id.

SomeCoWorkflowModel  being missing is not an Alfresco problem.

svar0g
Champ in-the-making
Champ in-the-making
This code good compiled.

package org.example;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import org.alfresco.repo.model.Repository;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.cmr.workflow.WorkflowTaskQuery;
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
import org.springframework.extensions.webscripts.Cache;
import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptException;
import org.springframework.extensions.webscripts.WebScriptRequest;



import antlr.collections.List;

public class NodeWebScript extends DeclarativeWebScript {

   private Repository repository;

   public void setRepository(Repository repository) {
      this.repository = repository;
   }
   
   

   

   
   private WorkflowService getWorkflowService()

    {

        return this.getWorkflowService();

    }
   
   
   
   protected Map<String, Object> executeImpl(WebScriptRequest req,
         Status status, Cache cache) {
      WorkflowTaskQuery query1 = new WorkflowTaskQuery();
      query1.setActive(null);
      query1.setTaskState(WorkflowTaskState.COMPLETED);
      
      
      java.util.List<WorkflowTask> completedTasks = getWorkflowService().queryTasks(query1, false);
      Map<String, Object> model = new HashMap<String, Object>();
      model.put("test", completedTasks);
      return model;
   }
}

But it does not work
cat alfresco.log

2015-05-22 12:55:58,457 ERROR [org.springframework.extensions.webscripts.AbstractRuntime] [http-bio-443-exec-5] Exception from executeScript - redirecting to status template error: 04220001 Wrapped Exception (with status template): null
org.springframework.extensions.webscripts.WebScriptException: 04220001 Wrapped Exception (with status template): null
        at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:1127)
        at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
        at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:489)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:457)
        at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:551)
        at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:619)
        at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:399)
        at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:280)
        at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
        at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
        at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.StackOverflowError
        at org.example.NodeWebScript.getWorkflowService(NodeWebScript.java:40)
        at org.example.NodeWebScript.getWorkflowService(NodeWebScript.java:40)
        at org.example.NodeWebScript.getWorkflowService(NodeWebScript.java:40)
        at org.example.NodeWebScript.getWorkflowService(NodeWebScript.java:40)
        at org.example.NodeWebScript.getWorkflowService(NodeWebScript.java:40)

Help pls.

gravitonian
Star Collaborator
Star Collaborator
Method getWorkflowService recurs infinitely. Inject the Workflow Service via Spring and then use it:

Spring context:

   <bean id="webscript.xxxxxxxxxxx.get"
        class="xxxxxxxxxxxxxx.XXXWebScript"
        parent="webscript">
      <property name="workflowService"><ref bean="workflowServiceImpl" /></property>
   </bean>

Use it in the implementation:

    private WorkflowService workflowService;

    public void setWorkflowService(WorkflowService workflowService) {
        this.workflowService = workflowService;
    }


    protected Map<String, Object> executeImpl(WebScriptRequest req,
                                              Status status, Cache cache) {
        WorkflowTaskQuery query1 = new WorkflowTaskQuery();
        query1.setActive(null);
        query1.setTaskState(WorkflowTaskState.COMPLETED);

        java.util.List<WorkflowTask> completedTasks = workflowService.queryTasks(query1, false);
        Map<String, Object> model = new HashMap<String, Object>();
        model.put("test", completedTasks);

        return model;
    }