delegation with maps problem
simonbaker Oct 13, 2008 9:24 PMI am successful using ArrayList as a delegation parameter in an Assignment. I tried a HashMap, but so far it is not assigned, always null.
I'm using jbpm-jpdl-3.2.GA version, are there any known problems with Maps?
My successful ArrayList is processusercodingfields in the code below. The unsuccessful HashMap is processcodingfieldvalues.
<task name="Officer - Add Record Holds" blocking="true"> <assignment class="com.rco.bpm.assignment.GeneralTaskAssignment"> <currentStep>Officer - Add Record Holds</currentStep> <roles>Record Officer</roles> <processusercodingfields> <element>UserComment</element> <element>Promise Date</element> <element>Due Date</element> </processusercodingfields> <processcodingfieldvalues> <entry><key>RMS Stat Description</key><value>Number Destroyed</value></entry> </processcodingfieldvalues> </assignment> </task>
public class GeneralTaskAssignment implements AssignmentHandler { private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(GeneralTaskAssignment.class); private String roles = null; private String currentStep = null; private boolean bIncludeRolesWithBlankRole = false; private boolean bIncludeRolesWithBlankOrg = false; private boolean bIncludeRolesWithBlankSubOrg = false; private boolean bIgnoreRole = false; private boolean bIgnoreOrgNum = false; private boolean bIgnoreSubOrgNum = false; private String orgNumsOverride = null; private String subOrgNumsOverride = null; private String actorcodingfieldname = null; private String statdescription = null; private ArrayList processusercodingfields = null; private HashMap processcodingfieldvalues = null; public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception { CAssignment.IAssignablePlus assignableplus = new CAssignment.AssignableTask( assignable); CAssignment.assign( assignableplus, executionContext, this.currentStep, processusercodingfields, processcodingfieldvalues, actorcodingfieldname, this.roles, this.orgNumsOverride, this.subOrgNumsOverride, false, this.bIncludeRolesWithBlankRole, this.bIncludeRolesWithBlankOrg, this.bIncludeRolesWithBlankSubOrg, this.bIgnoreRole, this.bIgnoreOrgNum, this.bIgnoreSubOrgNum); } }
public abstract interface Assignable extends Serializable { // Methods void setActorId(String string); void setPooledActors(String[] stringArray); }