cancel
Showing results for 
Search instead for 
Did you mean: 

how to assign two different assignees to different tasks?

targa2000
Champ in-the-making
Champ in-the-making
defining a custom advanced workflow, looking at the Workflow Lifecycle Sample:

http://wiki.alfresco.com/wiki/WorkflowSample_Lifecycle

This code here seems to assign the task to an assignee:

   <swimlane name="reviewer">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{bpm_assignee}</actor>
      </assignment>
   </swimlane>

I want to put in a second task that is assigned to a different assignee.  How would I do this?
13 REPLIES 13

stevegreenbaum
Champ in-the-making
Champ in-the-making
See if For Each Fork is what you are looking for:  http://wiki.alfresco.com/wiki/WorkflowAdministration#For_Each_Fork

sethatrothbury
Champ in-the-making
Champ in-the-making
You would need a second bpm:assignee or something along the same lines. It'd probably be easiest to create your own aspects for each assignee, something like:

     <aspect name="my:t1Assignee">
            <associations>
                <association name="my:t1Assignee">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:person</class>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </association>
            </associations>
        </aspect>
     <aspect name="my:t2Assignee">
            <associations>
                <association name="my:t2Assignee">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:person</class>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </association>
            </associations>
        </aspect>

You'd set each of your assignees at the start of the workflow and assign each assignee their respective task.

targa2000
Champ in-the-making
Champ in-the-making
the fork is interesting.  It seems most applicable for tasks that need to be done in parallel and with an unknown number of nodes.  Is this right?

In my situation.  I have two tasks that I know need to be completed each by a different person and tasks need to be completed in sequence, one after the other.

targa2000
Champ in-the-making
Champ in-the-making
I have created a process definition file where I have defined two tasks and an assignee.  The assignee gets assigned the first task.  The task completes and that is it.  I can't tell when the second task takes place.  And there is not another assignee.

Here's the process definition file I have created so far:

<?xml version="1.0" encoding="UTF-8"?>

<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="art:atdrequesttwo">
  
    <swimlane name="initiator" />
   
   <start-state name="start-state1">
       <task name="wf:submitAdhocTask" swimlane="initiator"/>
      <transition to="task-node1"></transition>
   </start-state>

   <swimlane name="assignee">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{bpm_assignee}</actor>
      </assignment>
   </swimlane>

   <task-node name="task-node1">
      <task name="wf:adhocTask" swimlane="assignee">
         <event type="task-create">
            <script>
               if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
               if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
            </script>
         </event>
      </task>   
      <transition to="task-node2"/>
   </task-node>

   <task-node name="task-node2">
      <task name="wf:adhocTask" swimlane="assignee">
         <event type="task-create">
            <script>
               if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
               if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
            </script>
         </event>
      </task>   
      <transition to="end-state1"/>
   </task-node>

   <end-state name="end-state1"></end-state>

</process-definition>

targa2000
Champ in-the-making
Champ in-the-making
You would need a second bpm:assignee or something along the same lines. It'd probably be easiest to create your own aspects for each assignee, something like:

     <aspect name="my:t1Assignee">
            <associations>
                <association name="my:t1Assignee">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:person</class>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </association>
            </associations>
        </aspect>
     <aspect name="my:t2Assignee">
            <associations>
                <association name="my:t2Assignee">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cm:person</class>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </association>
            </associations>
        </aspect>

You'd set each of your assignees at the start of the workflow and assign each assignee their respective task.

It's a good idea.  But how would you implement it?

I tried one way without much luck:

<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="my:requestone">
  
    <swimlane name="initiator" />
   
   <start-state name="start-state1">
       <task name="my:submitNewRequest" swimlane="initiator"/>
      <transition to="task-node1"></transition>
   </start-state>

   <swimlane name="assigneeone">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{my:t1Assignee}</actor>
      </assignment>
   </swimlane>

   <task-node name="task-node1">
      <task name="wf:adhocTask" swimlane="assigneeone">
         <event type="task-create">
            <script>
               if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
               if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
            </script>
         </event>
      </task>   
      <transition to="task-node2"/>
   </task-node>

   <swimlane name="assigneetwo">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{my:t2Assignee}</actor>
      </assignment>
   </swimlane>

   <task-node name="task-node2">
      <task name="wf:adhocTask" swimlane="assigneetwo">
         <event type="task-create">
            <script>
               if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
               if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
            </script>
         </event>
      </task>   
      <transition to="end-state1"/>
   </task-node>

   <end-state name="end-state1"></end-state>

</process-definition>

<model name="my:workflowonemodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <description>Workflow One Model</description>
   <author></author>
   <version>1.0</version>

   <imports>
       <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
       <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm" />
       <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
       <import uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf"/>
   </imports>

   <namespaces>
       <namespace uri="my.model" prefix="my" />
   </namespaces>
  
   <types>
-       <type name="my:submitNewRequest">
           <parent>bpm:startTask</parent>
-             <properties>
-                <property name="my:notifyMe">
                    <type>d:boolean</type>
                    <default>false</default>
               </property>
              </properties>
-             <mandatory-aspects>
                 <aspect>my:t1Assignee</aspect>
                 <aspect>my:t2Assignee</aspect>                
              </mandatory-aspects>
        </type>
   </types>

  <aspects>
  <aspect name="my:t1Assignee">
            <associations>
                <association name="my:t1Assignee">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cmSmiley Tongueerson</class>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </association>
            </associations>
        </aspect>
     <aspect name="my:t2Assignee">
            <associations>
                <association name="my:t2Assignee">
                    <source>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </source>
                    <target>
                        <class>cmSmiley Tongueerson</class>
                        <mandatory>false</mandatory>
                        <many>false</many>
                    </target>
                </association>
            </associations>
        </aspect>
    </aspects>

</model>

targa2000
Champ in-the-making
Champ in-the-making
deploying the above processdefinition and task model, the workflow options that are requested are only owner:_____  I don't know where that is coming from.  none of the other options are requested on the startup page, then when it is finished, receive a number of exceptions, Script Exception t1Assignee is not defined.

sethatrothbury
Champ in-the-making
Champ in-the-making
You'll have to update the start task properties in the web-client-config-custom.xml to allow for those aspects to be set.


   <config evaluator="node-type" condition="my:submitNewRequest" replace="true">
      <property-sheet>
         <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" />
         <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" />
         <show-property name="my:notifyMe" />
         <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" />
         <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
         <show-association name="my:t1Assignee" display-label-id="wf_reviewer" />
         <show-association name="my:t2Assignee" display-label-id="wf_reviewer" />
      </property-sheet>
   </config>

Something like that.

targa2000
Champ in-the-making
Champ in-the-making
You'll have to update the start task properties in the web-client-config-custom.xml to allow for those aspects to be set.


   <config evaluator="node-type" condition="my:submitNewRequest" replace="true">
      <property-sheet>
         <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
         <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" />
         <show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" />
         <show-property name="my:notifyMe" />
         <show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" />
         <separator name="sep2" display-label-id="users_and_roles" component-generator="HeaderSeparatorGenerator" />
         <show-association name="my:t1Assignee" display-label-id="wf_reviewer" />
         <show-association name="my:t2Assignee" display-label-id="wf_reviewer" />
      </property-sheet>
   </config>

Something like that.

Yes, that allows the various properties to be set including the two reviewers, but I'm still getting the same exception and error upon selecting finish to start the workflow:

Failed to signal transition 'null' from workflow task 'jbpm$1'
org.alfresco.service.cmr.workflow.WorkflowException: 02050005 Failed to signal transition 'null' f
rom workflow task 'jbpm$1'
        at org.alfresco.repo.workflow.jbpm.JBPMEngine.endTask(JBPMEngine.java:1727)
        at org.alfresco.repo.workflow.WorkflowServiceImpl.endTask(WorkflowServiceImpl.java:544)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:3
04)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(Reflective
MethodInvocation.java:182)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:149)
        at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(Alway
sProceedMethodInterceptor.java:40)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke
(ExceptionTranslatorMethodInterceptor.java:49)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:148)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionIn
terceptor.java:106)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204
)
        at $Proxy46.endTask(Unknown Source)
        at org.alfresco.web.bean.workflow.StartWorkflowWizard.finishImpl(StartWorkflowWizard.java:
239)
        at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:124)
        at org.alfresco.web.bean.dialog.BaseDialogBean$1.execute(BaseDialogBean.java:121)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransac
tionHelper.java:327)
        at org.alfresco.web.bean.dialog.BaseDialogBean.finish(BaseDialogBean.java:130)
        at org.alfresco.web.bean.wizard.WizardManager.finish(WizardManager.java:599)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
        at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java
:61)
        at javax.faces.component.UICommand.broadcast(UICommand.java:109)
        at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
        at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecuto
r.java:32)
        at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
        at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain
.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:20
6)
        at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:11
0)
        at sun.reflect.GeneratedMethodAccessor422.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(Chaining
SubsystemProxyFactory.java:122)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204
)
        at $Proxy161.doFilter(Unknown Source)
        at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain
.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:20
6)
        at org.alfresco.repo.web.filter.beans.NullFilter.doFilter(NullFilter.java:74)
        at sun.reflect.GeneratedMethodAccessor422.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(Chaining
SubsystemProxyFactory.java:122)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204
)
        at $Proxy161.doFilter(Unknown Source)
        at org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:88)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain
.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:20
6)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.
java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.jbpm.graph.def.DelegationException: 02050004 Failed to execute supplied script: 020
50003 ReferenceError: "t1Assignee" is not defined. (AlfrescoJS#1)
        at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:298)
        at org.jbpm.taskmgmt.exe.TaskMgmtInstance.getInitializedSwimlaneInstance(TaskMgmtInstance.
java:260)
        at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:202)
        at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:223)
        at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:174)
        at org.jbpm.graph.def.Node.enter(Node.java:390)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:15
7)
        at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$d2e48c60.enter(<generated>)
        at org.jbpm.graph.def.Transition.take(Transition.java:167)
        at org.jbpm.graph.def.Node.leave(Node.java:479)
        at org.jbpm.graph.node.StartState.leave(StartState.java:82)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:15
7)
        at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$d2e48c60.leave(<generated>)
        at org.jbpm.graph.exe.Token.signal(Token.java:223)
        at org.jbpm.graph.exe.Token.signal(Token.java:150)
        at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:490)
        at org.alfresco.repo.workflow.jbpm.WorkflowTaskInstance.end(WorkflowTaskInstance.java:141)

        at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:406)
        at org.alfresco.repo.workflow.jbpm.JBPMEngine$26.doInJbpm(JBPMEngine.java:1703)
        at org.springmodules.workflow.jbpm31.JbpmTemplate$1.doInHibernate(JbpmTemplate.java:87)
        at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372
)
        at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:338
)
        at org.springmodules.workflow.jbpm31.JbpmTemplate.execute(JbpmTemplate.java:80)
        at org.alfresco.repo.workflow.jbpm.JBPMEngine.endTask(JBPMEngine.java:1680)
        … 71 more
Caused by: org.alfresco.scripts.ScriptException: 02050004 Failed to execute supplied script: 02050
003 ReferenceError: "t1Assignee" is not defined. (AlfrescoJS#1)
        at org.alfresco.repo.jscript.RhinoScriptProcessor.executeString(RhinoScriptProcessor.java:
254)
        at org.alfresco.repo.processor.ScriptServiceImpl.executeScriptString(ScriptServiceImpl.jav
a:314)
        at org.alfresco.repo.processor.ScriptServiceImpl.executeScriptString(ScriptServiceImpl.jav
a:292)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:3
04)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(Reflective
MethodInvocation.java:182)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:149)
        at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(Alway
sProceedMethodInterceptor.java:40)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke
(ExceptionTranslatorMethodInterceptor.java:49)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:148)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionIn
terceptor.java:106)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodIn
vocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204
)
        at $Proxy172.executeScriptString(Unknown Source)
        at org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript.executeScript(AlfrescoJavaScript.jav
a:178)
        at org.alfresco.repo.workflow.jbpm.AlfrescoAssignment.assign(AlfrescoAssignment.java:96)
        at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentDelegation(TaskMgmtInstance.jav
a:320)
        at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:274)
        … 102 more
Caused by: org.alfresco.error.AlfrescoRuntimeException: 02050003 ReferenceError: "t1Assignee" is n
ot defined. (AlfrescoJS#1)
        at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.j
ava:472)
        at org.alfresco.repo.jscript.RhinoScriptProcessor.executeString(RhinoScriptProcessor.java:
250)
        … 125 more
Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "t1Assignee" is not defined. (Alfresc
oJS#1)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3350)
        at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3340)
        at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3413)
        at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1612)
        at org.mozilla.javascript.gen.c1._c0(AlfrescoJS:1)
        at org.mozilla.javascript.gen.c1.call(AlfrescoJS)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
        at org.mozilla.javascript.gen.c1.call(AlfrescoJS)
        at org.mozilla.javascript.gen.c1.exec(AlfrescoJS)
        at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.j
ava:456)
        … 126 more

zladuric
Champ on-the-rise
Champ on-the-rise
I don't know if this can help you, but I guess it can't hurt.

My swimlanes (when I need to send the document all over the place) look like this (few different examples):

<swimlane name="firstReviewer">
      <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
         <actor>#{bpm_package.children[0].assocs["mycm:myReferrenceToSite"][0].assocs["mycm:theCustomAspectYouWereToldToUse"][0].properties.userName}
                        </actor>
                </assignment>
</swimlane>

or
<actor>#{companyhome.childByNamePath("MyCustomPlace").properties("somePropHoldingTheUsername")}</actor>

If it doesn't help you, maybe it will help me (by somebody pointing me to the error).