无法更新任务关联

时间:2012-03-13 09:17:09

标签: workflow alfresco activiti

我用alfresco / activiti定义了我的自定义工作流程。在我的模型中,我定义了自定义方面,除了某些属性之外还有代表某些团队成员的关联

<aspects>
    <aspect name="mcwm:projectCharter">
         <properties>
                  ........
                <property name="cm:userName">
                 ..........
                </property>
          </properties>
          <associations>
                <association name="mcwm:teamWithDoc">
                        <source>
                              <mandatory>false</mandatory>
                              <many>false</many>
                       </source>
                       <target>
                               <class>cm:person</class>
                               <mandatory>false</mandatory>
                               <many>true</many>
                         </target>
                </association>
      </associations>

现在,在我的工作流程中,我有5个任务,在每个任务中,我都设置了上面描述的强制性方面。

<type name="mcwm:submitStart">
  <parent>bpm:startTask</parent>
  <mandatory-aspects>
     <aspect>bpm:assignee</aspect>
     <aspect>mcwm:projectCharter</aspect>
  </mandatory-aspects>

问题在于,如果某个用户例如在任务1的进程开始时设置关联mcwm:teamWithDoc(从alfresco存储库中选择团队成员),则属性很好地传递给任务2.但是如果其他用户被分配了任务2更改mcwm:teamWithDoc(例如,添加更多团队成员或删除一些团队成员)在任务3上没有看到这些更改。在任务3 mcwm:teamWithDoc具有在启动任务上设置的值。同样的情况是其他任务,无论其他用户使用mcwm:teamWithDoc在任务2,任务3或任务4上做了什么,mcwm:teamWithDoc总是具有在开始时设置的值?

知道如何更新此关联吗?

P.S。我使用execution.setVariable('propertName',task.getVariable('propertName'))更新任务之间的常规属性;但是对于协会来说这不起作用。

此致 亚历山大

2 个答案:

答案 0 :(得分:1)

您可以使用任务控制器更好地使用task controller,而不是使用该方法,您可以轻松获得关联。查看wiki以获取有关如何获得关联的更多信息。

E.g。它将如下所示:

<controller>
    <variable name="prop" access="read,write" mapped-name="mcwm_projectCharter"/>
</controller>

然后你将mcwm_projectCharter映射到prop。因此,您可以执行prop.assocs [“mcwm:teamWithDoc”] [0]以获取第一个或迭代它。

答案 1 :(得分:1)

我认为你的问题与这个bug有关 https://issues.alfresco.com/jira/browse/ALF-13640

一旦你设置了一个关联的值,你就不要改变它!