mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Added method to find tasks based on workflow definition name (String instead of QName as in setProcessName)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28578 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -961,12 +961,22 @@ public abstract class AbstractWorkflowServiceIntegrationTest extends BaseSpringT
|
||||
{
|
||||
WorkflowTaskQuery taskQuery = createWorkflowTaskQuery(state);
|
||||
|
||||
// Test depricated method, using QName
|
||||
taskQuery.setProcessName(getAdhocProcessName());
|
||||
checkTasksFoundUsingQuery(expectedTaskIds, taskQuery);
|
||||
|
||||
taskQuery = createWorkflowTaskQuery(state);
|
||||
taskQuery.setProcessName(QName.createQName("dummyProcessName"));
|
||||
checkNoTasksFoundUsingQuery(taskQuery);
|
||||
|
||||
|
||||
// Test method, using String
|
||||
taskQuery.setWorkflowDefinitionName(getAdhocProcessName().toPrefixString());
|
||||
checkTasksFoundUsingQuery(expectedTaskIds, taskQuery);
|
||||
|
||||
taskQuery = createWorkflowTaskQuery(state);
|
||||
taskQuery.setWorkflowDefinitionName("dummyProcessName");
|
||||
checkNoTasksFoundUsingQuery(taskQuery);
|
||||
}
|
||||
|
||||
protected void checkProcessPropsQuery(List<String> expectedTaskIds, WorkflowTaskState state)
|
||||
|
@@ -24,7 +24,6 @@ import org.alfresco.repo.tenant.TenantService;
|
||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||
import org.alfresco.service.cmr.workflow.WorkflowException;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QNameCache;
|
||||
|
||||
/**
|
||||
* @since 3.4.e
|
||||
|
@@ -28,7 +28,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.extensions.surf.util.I18NUtil;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.admin.BaseInterpreter;
|
||||
import org.alfresco.repo.avm.AVMNodeConverter;
|
||||
@@ -69,6 +68,7 @@ import org.alfresco.service.transaction.TransactionService;
|
||||
import org.alfresco.util.GUID;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.extensions.surf.util.I18NUtil;
|
||||
|
||||
/**
|
||||
* An interactive console for Workflows.
|
||||
@@ -665,6 +665,10 @@ public class WorkflowInterpreter extends BaseInterpreter
|
||||
{
|
||||
query.setProcessName(QName.createQName(predicate[1], namespaceService));
|
||||
}
|
||||
else if (predicate[0].equals("workflowDefinitionName"))
|
||||
{
|
||||
query.setWorkflowDefinitionName(predicate[1]);
|
||||
}
|
||||
else if (predicate[0].equals("processActive"))
|
||||
{
|
||||
Boolean active = Boolean.valueOf(predicate[1]);
|
||||
|
@@ -1467,6 +1467,12 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
|
||||
String processName = getProcessNameMTSafe(query.getProcessName());
|
||||
taskQuery.processDefinitionKey(processName);
|
||||
}
|
||||
|
||||
if (query.getWorkflowDefinitionName() != null)
|
||||
{
|
||||
String processName = getWorkflowDefinitionNameMTSafe(query.getWorkflowDefinitionName());
|
||||
taskQuery.processDefinitionKey(processName);
|
||||
}
|
||||
|
||||
if (query.getActorId() != null)
|
||||
{
|
||||
@@ -1534,6 +1540,21 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
|
||||
}
|
||||
return processName;
|
||||
}
|
||||
|
||||
protected String getWorkflowDefinitionNameMTSafe(String name)
|
||||
{
|
||||
String processName = null;
|
||||
if (tenantService.isEnabled())
|
||||
{
|
||||
String baseName = tenantService.getBaseName(name, true);
|
||||
processName = tenantService.getName(baseName);
|
||||
}
|
||||
else
|
||||
{
|
||||
processName = name;
|
||||
}
|
||||
return processName;
|
||||
}
|
||||
|
||||
private void orderQuery(TaskQuery taskQuery, OrderBy[] orderBy) {
|
||||
for (WorkflowTaskQuery.OrderBy orderByPart : orderBy)
|
||||
@@ -1676,6 +1697,12 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
|
||||
String processName = getProcessNameMTSafe(query.getProcessName());
|
||||
historicQuery.processDefinitionKey(processName);
|
||||
}
|
||||
|
||||
if (query.getWorkflowDefinitionName() != null)
|
||||
{
|
||||
String processName = getWorkflowDefinitionNameMTSafe(query.getWorkflowDefinitionName());
|
||||
historicQuery.processDefinitionKey(processName);
|
||||
}
|
||||
|
||||
if (query.getTaskCustomProps() != null)
|
||||
{
|
||||
@@ -1826,6 +1853,7 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
|
||||
}
|
||||
}
|
||||
|
||||
// Query by process name deprecated, but still implemented.
|
||||
if(query.getProcessName() != null)
|
||||
{
|
||||
String processName = factory.mapQNameToName(query.getProcessName());
|
||||
@@ -1834,6 +1862,14 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(query.getWorkflowDefinitionName() != null)
|
||||
{
|
||||
if(!query.getWorkflowDefinitionName().equals(workflowTask.getPath().getInstance().getDefinition().getName()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(query.getTaskCustomProps() != null)
|
||||
{
|
||||
|
@@ -29,8 +29,8 @@ import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.zip.ZipInputStream;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
@@ -1601,6 +1601,11 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
|
||||
query.setProcessName(tenantService.getName(query.getProcessName()));
|
||||
}
|
||||
|
||||
if ((query.getWorkflowDefinitionName() != null) && (tenantService.isEnabled()))
|
||||
{
|
||||
query.setWorkflowDefinitionName(tenantService.getName(query.getWorkflowDefinitionName()));
|
||||
}
|
||||
|
||||
Criteria criteria = createTaskQueryCriteria(session, query);
|
||||
List<TaskInstance> tasks = criteria.list();
|
||||
return getWorkflowTasks(tasks);
|
||||
@@ -1915,6 +1920,25 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
|
||||
processDef.add(Restrictions.eq("name", processName));
|
||||
}
|
||||
|
||||
// Process definition name
|
||||
if (query.getWorkflowDefinitionName() != null)
|
||||
{
|
||||
process = (process == null) ? root.createCriteria("processInstance") : process;
|
||||
Criteria processDef = process.createCriteria("processDefinition");
|
||||
|
||||
String processName = null;
|
||||
if (tenantService.isEnabled())
|
||||
{
|
||||
String baseProcessName = tenantService.getBaseName(query.getWorkflowDefinitionName(), true);
|
||||
processName = tenantService.getName(baseProcessName);
|
||||
}
|
||||
else
|
||||
{
|
||||
processName = query.getWorkflowDefinitionName();
|
||||
}
|
||||
processDef.add(Restrictions.eq("name", processName));
|
||||
}
|
||||
|
||||
return process;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user