diff --git a/config/alfresco/form-services-context.xml b/config/alfresco/form-services-context.xml
index b73c228415..ec7677b313 100644
--- a/config/alfresco/form-services-context.xml
+++ b/config/alfresco/form-services-context.xml
@@ -104,6 +104,7 @@
parent="filteredFormProcessor">
+
diff --git a/source/java/org/alfresco/repo/forms/FormServiceImplTest.java b/source/java/org/alfresco/repo/forms/FormServiceImplTest.java
index 10f94b2aea..9a11ea101e 100644
--- a/source/java/org/alfresco/repo/forms/FormServiceImplTest.java
+++ b/source/java/org/alfresco/repo/forms/FormServiceImplTest.java
@@ -1234,9 +1234,9 @@ public class FormServiceImplTest extends BaseAlfrescoSpringTest
// a legitimate set of fields for the workflow
List fields = new ArrayList(8);
fields.add("bpm:taskId");
- fields.add("bpm:description");
+ fields.add("bpm:workflowDescription");
fields.add("bpm:workflowDueDate");
- //fields.add("packageItems");
+ fields.add("packageItems");
String workflowDefName = "jbpm$wf:adhoc";
Form form = this.formService.getForm(new Item(WORKFLOW_FORM_ITEM_KIND, workflowDefName), fields);
@@ -1262,15 +1262,15 @@ public class FormServiceImplTest extends BaseAlfrescoSpringTest
// find the fields
PropertyFieldDefinition idField = (PropertyFieldDefinition)fieldDefMap.get("bpm:taskId");
- PropertyFieldDefinition descriptionField = (PropertyFieldDefinition)fieldDefMap.get("bpm:description");
+ PropertyFieldDefinition descriptionField = (PropertyFieldDefinition)fieldDefMap.get("bpm:workflowDescription");
PropertyFieldDefinition dueDateField = (PropertyFieldDefinition)fieldDefMap.get("bpm:workflowDueDate");
- //AssociationFieldDefinition packageItemsField = (AssociationFieldDefinition)fieldDefMap.get("packageItems");
+ AssociationFieldDefinition packageItemsField = (AssociationFieldDefinition)fieldDefMap.get("packageItems");
// check fields are present
assertNotNull("Expecting to find the bpm:taskId field", idField);
- assertNotNull("Expecting to find the bpm:description field", descriptionField);
+ assertNotNull("Expecting to find the bpm:workflowDescription field", descriptionField);
assertNotNull("Expecting to find the bpm:workflowDueDate field", dueDateField);
- //assertNotNull("Expecting to find the packageItems field", packageItemsField);
+ assertNotNull("Expecting to find the packageItems field", packageItemsField);
// get the number of tasks now
List tasks = this.workflowService.getAssignedTasks(USER_ONE,
@@ -1279,10 +1279,10 @@ public class FormServiceImplTest extends BaseAlfrescoSpringTest
// persist the form
FormData data = new FormData();
- data.addFieldData("prop_bpm_description", "This is a new adhoc task");
+ data.addFieldData("prop_bpm_workflowDescription", "This is a new adhoc task");
data.addFieldData("assoc_bpm_assignee_added",
this.personService.getPerson(USER_ONE).toString());
- //data.addFieldData("packageItems_added", this.document.toString());
+ data.addFieldData("assoc_packageItems_added", this.document.toString());
// persist the data
WorkflowInstance workflow = (WorkflowInstance)this.formService.saveForm(
diff --git a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java
index 00da13452f..fdde815119 100644
--- a/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java
+++ b/source/java/org/alfresco/repo/forms/processor/workflow/WorkflowFormProcessor.java
@@ -24,10 +24,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.alfresco.model.ContentModel;
+import org.alfresco.repo.forms.AssociationFieldDefinition;
import org.alfresco.repo.forms.Form;
import org.alfresco.repo.forms.FormData;
import org.alfresco.repo.forms.FormNotFoundException;
import org.alfresco.repo.forms.Item;
+import org.alfresco.repo.forms.AssociationFieldDefinition.Direction;
import org.alfresco.repo.forms.processor.node.ContentModelFormProcessor;
import org.alfresco.repo.workflow.WorkflowModel;
import org.alfresco.service.cmr.dictionary.AspectDefinition;
@@ -35,6 +38,7 @@ import org.alfresco.service.cmr.dictionary.AssociationDefinition;
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.workflow.WorkflowDefinition;
import org.alfresco.service.cmr.workflow.WorkflowException;
import org.alfresco.service.cmr.workflow.WorkflowInstance;
@@ -42,9 +46,11 @@ import org.alfresco.service.cmr.workflow.WorkflowPath;
import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
+import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.springframework.util.StringUtils;
/**
* Temporary FormProcessor implementation that can generate and persist
@@ -57,9 +63,13 @@ public class WorkflowFormProcessor extends ContentModelFormProcessor assigneeList = new ArrayList(1);
assigneeList.add(assignee);
params.put(WorkflowModel.ASSOC_ASSIGNEE, assigneeList);
- // TODO: add any package items
+ // add any package items
+ Object items = data.getFieldData("assoc_packageItems_added").getValue();
+ if (items != null)
+ {
+ String[] nodeRefs = StringUtils.tokenizeToStringArray(items.toString(), ",");
+ for (int x = 0; x < nodeRefs.length; x++)
+ {
+ NodeRef item = new NodeRef(nodeRefs[x]);
+ this.unprotectedNodeService.addChild(workflowPackage, item,
+ WorkflowModel.ASSOC_PACKAGE_CONTAINS, QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
+ QName.createValidLocalName((String)this.nodeService.getProperty(
+ item, ContentModel.PROP_NAME))));
+ }
+ }
// TODO: add any context (this could re-use alf_destination)