<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: TaskListener cannot delete potential owners specified in XML in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99348#M68662</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The user guide says: "When receiving the create event, we usually want to inspect all properties of the task including the assignee." So therefore the assignation should happend before.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I did the following demo to show that the candidates are already assigned when the listener is called:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;nbsp; Set&amp;lt;IdentityLink&amp;gt; identityLinks = delegateTask.getCandidates();&lt;BR /&gt;&amp;nbsp; Iterator&amp;lt;IdentityLink&amp;gt; iterator = identityLinks.iterator();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // Contains all candidate users (includes individual users and users from groups)&lt;BR /&gt;&amp;nbsp; List&amp;lt;String&amp;gt; candidateUsers = new LinkedList&amp;lt;String&amp;gt;();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // Iterate over all candidate users for this task&lt;BR /&gt;&amp;nbsp; while (iterator.hasNext()) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IdentityLink identityLink = iterator.next();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (identityLink.getType().equals(IdentityLinkType.CANDIDATE)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String userId = identityLink.getUserId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String groupId = identityLink.getGroupId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (userId != null) {&amp;nbsp;&amp;nbsp; // Single candidate user&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.debug("userId (single user): " + userId);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; candidateUsers.add(userId);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (groupId != null) { // Group candidate users&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.debug("groupId: " + groupId);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;User&amp;gt; users = ProcessEngines.getDefaultProcessEngine().getIdentityService().createUserQuery().memberOfGroup(groupId).list();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (User user : users) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; candidateUsers.add(user.getId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.warn("userId and groupId are null");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; log.info("# candidate users = " + candidateUsers.size());&lt;BR /&gt;&amp;nbsp; assert candidateUsers.size() != 0;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for further suggestions!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 27 Aug 2012 12:44:41 GMT</pubDate>
    <dc:creator>processengine</dc:creator>
    <dc:date>2012-08-27T12:44:41Z</dc:date>
    <item>
      <title>TaskListener cannot delete potential owners specified in XML</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99346#M68660</link>
      <description>Version: Activiti 5.10 (with setup like in demo via ant demo.start)In the XML I've defined a user task with a task listener on create event like this:&amp;lt;userTask id="dynamicAssignmentTask" name="Dynamic Assignment Task" &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;Some documentation here&amp;lt;/documentation&amp;gt;&amp;nbsp;</description>
      <pubDate>Fri, 24 Aug 2012 12:47:09 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99346#M68660</guid>
      <dc:creator>processengine</dc:creator>
      <dc:date>2012-08-24T12:47:09Z</dc:date>
    </item>
    <item>
      <title>Re: TaskListener cannot delete potential owners specified in XML</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99347#M68661</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;In the XML I've defined a user task with a task listener on create event like this:&lt;BR /&gt;Quote:&lt;BR /&gt;&amp;lt;userTask id="dynamicAssignmentTask" name="Dynamic Assignment Task" &amp;gt;&lt;BR /&gt;&amp;lt;documentation&amp;gt;Some documentation here&amp;lt;/documentation&amp;gt;&lt;BR /&gt;&amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;activiti:taskListener event="create" class="org.activiti.tasklistener.DynamicAssignmentHandler" /&amp;gt;&lt;BR /&gt;&amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;potentialOwner&amp;gt;&lt;BR /&gt;&amp;lt;resourceAssignmentExpression&amp;gt;&lt;BR /&gt;&amp;lt;formalExpression&amp;gt;user(kermit), group(DynamicAssignmentGroup)&amp;lt;/formalExpression&amp;gt;&lt;BR /&gt;&amp;lt;/resourceAssignmentExpression&amp;gt;&lt;BR /&gt;&amp;lt;/potentialOwner&amp;gt;&lt;BR /&gt;&amp;lt;/userTask&amp;gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;I think the you're trying to delete the candidates before assignation.(Your taskListener it's executed before the &amp;lt;potentialOwner&amp;gt; sequence)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Aug 2012 12:00:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99347#M68661</guid>
      <dc:creator>mitziuro</dc:creator>
      <dc:date>2012-08-27T12:00:21Z</dc:date>
    </item>
    <item>
      <title>Re: TaskListener cannot delete potential owners specified in XML</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99348#M68662</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The user guide says: "When receiving the create event, we usually want to inspect all properties of the task including the assignee." So therefore the assignation should happend before.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I did the following demo to show that the candidates are already assigned when the listener is called:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;nbsp; Set&amp;lt;IdentityLink&amp;gt; identityLinks = delegateTask.getCandidates();&lt;BR /&gt;&amp;nbsp; Iterator&amp;lt;IdentityLink&amp;gt; iterator = identityLinks.iterator();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // Contains all candidate users (includes individual users and users from groups)&lt;BR /&gt;&amp;nbsp; List&amp;lt;String&amp;gt; candidateUsers = new LinkedList&amp;lt;String&amp;gt;();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // Iterate over all candidate users for this task&lt;BR /&gt;&amp;nbsp; while (iterator.hasNext()) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; IdentityLink identityLink = iterator.next();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (identityLink.getType().equals(IdentityLinkType.CANDIDATE)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String userId = identityLink.getUserId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String groupId = identityLink.getGroupId();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (userId != null) {&amp;nbsp;&amp;nbsp; // Single candidate user&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.debug("userId (single user): " + userId);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; candidateUsers.add(userId);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if (groupId != null) { // Group candidate users&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.debug("groupId: " + groupId);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;User&amp;gt; users = ProcessEngines.getDefaultProcessEngine().getIdentityService().createUserQuery().memberOfGroup(groupId).list();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (User user : users) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; candidateUsers.add(user.getId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.warn("userId and groupId are null");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; log.info("# candidate users = " + candidateUsers.size());&lt;BR /&gt;&amp;nbsp; assert candidateUsers.size() != 0;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for further suggestions!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Aug 2012 12:44:41 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99348#M68662</guid>
      <dc:creator>processengine</dc:creator>
      <dc:date>2012-08-27T12:44:41Z</dc:date>
    </item>
    <item>
      <title>Re: TaskListener cannot delete potential owners specified in XML</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99349#M68663</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think this is a case of 'sometimes the documentation is (unfortunately) wrong'&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Aug 2012 21:15:09 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99349#M68663</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2012-08-27T21:15:09Z</dc:date>
    </item>
    <item>
      <title>Re: TaskListener cannot delete potential owners specified in XML</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99350#M68664</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;what event type would be the right one for this case?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Mike&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Jul 2013 09:11:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99350#M68664</guid>
      <dc:creator>michj_74</dc:creator>
      <dc:date>2013-07-11T09:11:45Z</dc:date>
    </item>
    <item>
      <title>Re: TaskListener cannot delete potential owners specified in XML</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99351#M68665</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I don't get your question … even with reading the old posts above. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What 'event' or 'case' are you referring to?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Jul 2013 07:22:17 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/tasklistener-cannot-delete-potential-owners-specified-in-xml/m-p/99351#M68665</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2013-07-12T07:22:17Z</dc:date>
    </item>
  </channel>
</rss>

