mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Workflow Service: add support for task comment.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5763 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -48,6 +48,7 @@ public interface WorkflowModel
|
||||
static final QName PROP_STATUS = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "status");
|
||||
static final QName PROP_PERCENT_COMPLETE = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "percentComplete");
|
||||
static final QName PROP_COMPLETED_ITEMS = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "completedItems");
|
||||
static final QName PROP_COMMENT = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "comment");
|
||||
static final QName ASSOC_POOLED_ACTORS = QName.createQName(NamespaceService.BPM_MODEL_1_0_URI, "pooledActors");
|
||||
|
||||
// workflow task contstants
|
||||
|
@@ -31,8 +31,8 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.zip.ZipInputStream;
|
||||
@@ -96,6 +96,7 @@ import org.jbpm.graph.def.Event;
|
||||
import org.jbpm.graph.def.Node;
|
||||
import org.jbpm.graph.def.ProcessDefinition;
|
||||
import org.jbpm.graph.def.Transition;
|
||||
import org.jbpm.graph.exe.Comment;
|
||||
import org.jbpm.graph.exe.ExecutionContext;
|
||||
import org.jbpm.graph.exe.ProcessInstance;
|
||||
import org.jbpm.graph.exe.Token;
|
||||
@@ -1809,6 +1810,14 @@ public class JBPMEngine extends BPMEngine
|
||||
properties.put(ContentModel.PROP_CREATED, instance.getCreate());
|
||||
properties.put(ContentModel.PROP_OWNER, instance.getActorId());
|
||||
|
||||
// map jBPM comments
|
||||
// NOTE: Only use first comment in list
|
||||
List<Comment> comments = instance.getComments();
|
||||
if (comments != null && comments.size() > 0)
|
||||
{
|
||||
properties.put(WorkflowModel.PROP_COMMENT, comments.get(0).getMessage());
|
||||
}
|
||||
|
||||
// map jBPM task instance collections to associations
|
||||
Set pooledActors = instance.getPooledActors();
|
||||
if (pooledActors != null)
|
||||
@@ -1918,6 +1927,37 @@ public class JBPMEngine extends BPMEngine
|
||||
instance.setPriority((Integer)value);
|
||||
continue;
|
||||
}
|
||||
else if (key.equals(WorkflowModel.PROP_COMMENT))
|
||||
{
|
||||
if (!(value instanceof String))
|
||||
{
|
||||
throw new WorkflowException("Task comment '" + value + "' is invalid");
|
||||
}
|
||||
|
||||
// NOTE: Only use first comment in list
|
||||
final List<Comment> comments = instance.getComments();
|
||||
if (comments != null && comments.size() > 0)
|
||||
{
|
||||
// remove existing comments
|
||||
// TODO: jBPM does not provide assistance here
|
||||
jbpmTemplate.execute(new JbpmCallback()
|
||||
{
|
||||
public Object doInJbpm(JbpmContext context)
|
||||
{
|
||||
Session session = context.getSession();
|
||||
for (Comment comment : comments)
|
||||
{
|
||||
comment.getToken().getComments().remove(comment);
|
||||
session.delete(comment);
|
||||
}
|
||||
comments.clear();
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
instance.addComment((String)value);
|
||||
continue;
|
||||
}
|
||||
else if (key.equals(ContentModel.PROP_OWNER))
|
||||
{
|
||||
if (value != null && !(value instanceof String))
|
||||
|
Reference in New Issue
Block a user