From 4b199796713b19396ea296bb588128912a0578b2 Mon Sep 17 00:00:00 2001 From: David Caruana Date: Thu, 24 Aug 2006 18:49:29 +0000 Subject: [PATCH] Workflow: - Addition of start date and end date to Workflow Instance API Object - Support redeploy (force if already there) of process definition in WorkflowDeployer bean - Addition of Ad-hoc Task Workflow example definition for Workflow Administration WIKI page git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3604 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/bootstrap-context.xml | 14 ---- .../messages/workflow-messages.properties | 25 ++++++ config/alfresco/model/workflowModel.xml | 77 +++++++++++++++++-- config/alfresco/workflow-context.xml | 27 ++++++- .../repo/workflow/WorkflowDeployer.java | 4 +- .../repo/workflow/jbpm/JBPMEngine.java | 2 + .../jbpm/adhoc_task_processdefinition.xml | 66 ++++++++++++++++ .../cmr/workflow/WorkflowInstance.java | 11 +++ 8 files changed, 199 insertions(+), 27 deletions(-) create mode 100644 source/java/org/alfresco/repo/workflow/jbpm/adhoc_task_processdefinition.xml diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml index a5edf79c22..c12b56d2f7 100644 --- a/config/alfresco/bootstrap-context.xml +++ b/config/alfresco/bootstrap-context.xml @@ -124,20 +124,6 @@ - - - - - - - jbpm - org/alfresco/repo/workflow/jbpm/review_and_approve_processdefinition.xml - text/xml - - - - - diff --git a/config/alfresco/messages/workflow-messages.properties b/config/alfresco/messages/workflow-messages.properties index c21e80fc32..b3c3471fad 100644 --- a/config/alfresco/messages/workflow-messages.properties +++ b/config/alfresco/messages/workflow-messages.properties @@ -41,3 +41,28 @@ wf_review.task.wf_approvedTask.title=Approved wf_review.task.wf_approvedTask.description=Approved wf_review.node.end.title=End wf_review.node.end.description=End + + +# +# Adhoc Task Workflow +# + +wf_adhoc.workflow.title=Adhoc Task +wf_adhoc.workflow.description=Assign task to colleague + +# Adhoc Task Definitions + +wf_workflowmodel.type.wf_submitAdhocTask.title=Submit Adhoc Task +wf_workflowmodel.type.wf_submitAdhocTask.description=Allocate task to colleague +wf_workflowmodel.property.wf_adhocDescription.title=Task Description +wf_workflowmodel.property.wf_adhocDescription.description=Description of what needs to be achieved +wf_workflowmodel.property.wf_adhocDueDate.description=Task Due Date +wf_workflowmodel.property.wf_adhocPriority.title=Task Priority +wf_workflowmodel.property.wf_notifyMe.title=Notify Me +wf_workflowmodel.property.wf_notifyMe.description=Notify me when task is complete +wf_workflowmodel.association.wf_assignee.title=Assignee +wf_workflowmodel.association.wf_assignee.description=Who's doing the task +wf_workflowmodel.type.wf_adhocTask.title=Adhoc Task +wf_workflowmodel.type.wf_adhocTask.description=Adhoc Task allocated by colleague +wf_workflowmodel.type.wf_completedTask.title=Adhoc Task Completed +wf_workflowmodel.type.wf_completedTask.description=Adhoc Task Completed diff --git a/config/alfresco/model/workflowModel.xml b/config/alfresco/model/workflowModel.xml index a99021bf1a..e4ca2b94c0 100644 --- a/config/alfresco/model/workflowModel.xml +++ b/config/alfresco/model/workflowModel.xml @@ -2,10 +2,6 @@ - Content-oriented Workflows Model - Alfresco - 0.1 - @@ -75,10 +71,6 @@ - - - - Review Task @@ -93,6 +85,75 @@ + + + + + + + + + + bpm:workflowTask + + + + Description + d:text + + + + + + Submit Adhoc Task + wf:baseAdhocTask + + + + Due Date + d:date + + + + Priority + d:int + 2 + + + + + + + Email Notification + d:boolean + + + + + + Assignee + + false + false + + + cm:person + true + false + + + + + + + Adhoc Task + wf:baseAdhocTask + + + + Completed Adhoc Task + wf:baseAdhocTask + diff --git a/config/alfresco/workflow-context.xml b/config/alfresco/workflow-context.xml index 71ca8e5bd1..d124a7f68b 100644 --- a/config/alfresco/workflow-context.xml +++ b/config/alfresco/workflow-context.xml @@ -7,6 +7,25 @@ + + + + + jbpm + org/alfresco/repo/workflow/jbpm/review_and_approve_processdefinition.xml + text/xml + false + + + jbpm + org/alfresco/repo/workflow/jbpm/adhoc_task_processdefinition.xml + text/xml + false + + + + + @@ -22,16 +41,16 @@ + + + + - - - - diff --git a/source/java/org/alfresco/repo/workflow/WorkflowDeployer.java b/source/java/org/alfresco/repo/workflow/WorkflowDeployer.java index ac101d87f0..e0020f37c8 100644 --- a/source/java/org/alfresco/repo/workflow/WorkflowDeployer.java +++ b/source/java/org/alfresco/repo/workflow/WorkflowDeployer.java @@ -50,6 +50,7 @@ public class WorkflowDeployer implements ApplicationListener public static final String ENGINE_ID = "engineId"; public static final String LOCATION = "location"; public static final String MIMETYPE = "mimetype"; + public static final String REDEPLOY = "redeploy"; // Dependencies private TransactionService transactionService; @@ -139,13 +140,14 @@ public class WorkflowDeployer implements ApplicationListener { throw new WorkflowException("Workflow definition location must be provided"); } + Boolean redeploy = Boolean.valueOf(workflowDefinition.getProperty(REDEPLOY)); String mimetype = workflowDefinition.getProperty(MIMETYPE); // retrieve input stream on workflow definition ClassPathResource workflowResource = new ClassPathResource(location); // deploy workflow definition - if (workflowService.isDefinitionDeployed(engineId, workflowResource.getInputStream(), mimetype)) + if (!redeploy && workflowService.isDefinitionDeployed(engineId, workflowResource.getInputStream(), mimetype)) { if (logger.isDebugEnabled()) logger.debug("Workflow deployer: Definition '" + location + "' already deployed"); diff --git a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java index bc3582f012..519a7354c4 100644 --- a/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java +++ b/source/java/org/alfresco/repo/workflow/jbpm/JBPMEngine.java @@ -1507,6 +1507,8 @@ public class JBPMEngine extends BPMEngine workflowInstance.id = createGlobalId(new Long(instance.getId()).toString()); workflowInstance.definition = createWorkflowDefinition(instance.getProcessDefinition()); workflowInstance.active = !instance.hasEnded(); + workflowInstance.startDate = instance.getStart(); + workflowInstance.endDate = instance.getEnd(); return workflowInstance; } diff --git a/source/java/org/alfresco/repo/workflow/jbpm/adhoc_task_processdefinition.xml b/source/java/org/alfresco/repo/workflow/jbpm/adhoc_task_processdefinition.xml new file mode 100644 index 0000000000..72bb4f2e79 --- /dev/null +++ b/source/java/org/alfresco/repo/workflow/jbpm/adhoc_task_processdefinition.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java b/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java index 07c0dac232..f4dac45ae9 100644 --- a/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java +++ b/source/java/org/alfresco/service/cmr/workflow/WorkflowInstance.java @@ -16,6 +16,8 @@ */ package org.alfresco.service.cmr.workflow; +import java.util.Date; + /** * Workflow Instance Data Object @@ -35,6 +37,15 @@ public class WorkflowInstance /** Workflow Definition */ public WorkflowDefinition definition; + /** Start Task Instance (optional) */ + public WorkflowTask startTask; + + /** Workflow Start Date */ + public Date startDate; + + /** Workflow End Date */ + public Date endDate; + /* (non-Javadoc) * @see java.lang.Object#toString() */