0

我用 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(从露天存储库中挑选团队成员),则属性很好地传递给任务 2。但是如果分配给任务 2 的其他用户在任务 3 上更改 mcwm:teamWithDoc(例如,添加更多团队成员或删除一些团队成员)这些更改不可见。在任务 3 mcwm:teamWithDoc 具有在启动任务上设置的值。其他任务也是如此,无论其他用户在任务 2、任务 3 或任务 4 上使用 mcwm:teamWithDoc 完成什么,mcwm:teamWithDoc 总是具有在开始时设置的值?

知道如何更新此关联吗?

PS我使用 execution.setVariable('propertName', task.getVariable('propertName')); 更新任务之间的常规属性 但是对于关联,这不起作用。

问候, 亚历山大

4

2 回答 2

1

我认为您的问题与此错误有关 https://issues.alfresco.com/jira/browse/ALF-13640

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

于 2012-07-23T11:11:18.727 回答
1

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

例如,它将如下所示:

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

那么你有 mcwm_projectCharter 映射到道具。因此,您可以使用 prop.assocs["mcwm:teamWithDoc"][0] 来获取第一个或遍历它。

于 2012-03-13T10:10:36.757 回答