Workflow 无法更新任务关联

Workflow 无法更新任务关联,workflow,alfresco,activiti,Workflow,Alfresco,Activiti,我用alfresco/activiti定义了我的自定义工作流。在我的模型中,我定义了自定义方面,它在一些属性旁边具有代表某些团队成员的关联 <aspects> <aspect name="mcwm:projectCharter"> <properties> ........ <property name="cm:userName">

我用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>

........
..........
假的
假的
cm:人
假的
真的

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

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

bpm:startTask
bpm:受让人
mcwm:项目章程

问题是,如果某个用户(例如,在任务1的流程开始时)设置了关联mcwm:teamWithDoc(从alfresco存储库中选择团队成员),则该属性很好地传递给任务2。但是,如果分配给任务2的其他用户在任务3上更改mcwm:teamWithDoc(例如,添加更多的团队成员或删除一些团队成员),则不会看到这些更改。在任务3中,mcwm:teamWithDoc具有在开始任务时设置的值。其他任务也是如此,无论其他用户在任务2、任务3或任务4上使用mcwm:teamWithDoc执行什么操作,mcwm:teamWithDoc始终具有在开始时设置的值

知道如何更新这个关联吗

另外,我使用execution.setVariable('propertName',task.getVariable('propertName'))在任务之间更新常规属性;但对于联想来说,这是不起作用的

问候,,
Aleksandar

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

例如,它将如下所示:

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


因此,您将mcwm_项目章程映射到prop。因此,您可以使用prop.assocs[“mcwm:teamWithDoc”][0]来获取第一个或遍历它。

我认为您的问题与此bug有关


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

我使用的是Activiti而不是JBPM,这个控制器在Activiti中可用吗?此外,我在访问关联方面也没有问题(我是从Java类进行的,这很好)。我的问题是如何在任务之间传递关联值,或者确切地说,如果我的关联在一个任务上更新了,我如何才能在另一个任务上看到这些更改?在我的情况下,任务1上的用户设置拾取一些团队成员,如果任务2、3或4上的用户更改了这些团队成员更改,则任务2、3或4上的团队成员关联仍然具有第一步拾取的值。您需要将该任务的关联值保存为常规值并使用该值。任务实例值/属性在结束时消失。所以你需要定义一个Proces变量,它保存实际值并推拉它。我把关联值从第一个任务放到全局值。在我的第二个任务中,我有完全不同的关联(不同的变量)。在第二个任务create中,我将第二个变量设置为全局值,以便用户可以使用上一个任务中键入的值。在第二个任务完成时,我想选择第二个任务关联的值,将其置于全局变量中,但即使用户在任务期间选择了某些内容,第二个任务关联的值也不会更新,她的值与我在任务创建时设置的值相同。看起来关联值只能设置一次?嗨,弗朗西斯科。我知道(我忘了在这里过去了),我的队长报告了那个bug,它是我们的拦截器。无论如何,谢谢你。:)