<?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: Fetch tasks that are available to be claimed by a specific user in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230560#M183690</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Interesting.&amp;nbsp; The "taskCandidateUser" JavaDoc sounds like it only compares the user to the Task's "Candidate Users" list.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If it actually does compare it to both "candidate users" and all users in the Task's candidate group's, then true.&amp;nbsp; I can eliminate a query. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 16 Mar 2016 02:24:04 GMT</pubDate>
    <dc:creator>jwestra</dc:creator>
    <dc:date>2016-03-16T02:24:04Z</dc:date>
    <item>
      <title>Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230558#M183688</link>
      <description>I just want to be sure I'm not missing an API somewhere.Goal: fetch tasks that are available to be claimed by a specific user.My requirements for the list are as follows:———————————————1. Tasks must be unassigned (assignee == null)2. Includes: All tasks where candidate groups is empty and candidate</description>
      <pubDate>Tue, 15 Mar 2016 23:42:27 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230558#M183688</guid>
      <dc:creator>jwestra</dc:creator>
      <dc:date>2016-03-15T23:42:27Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230559#M183689</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;One thing you could do is use taskCandidateUser which should do two of your requirements in one, but does require that you set up your users and groups in Activiti or configure a GroupEntityManager to provide the user/group mapping.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2016 01:52:26 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230559#M183689</guid>
      <dc:creator>schmke</dc:creator>
      <dc:date>2016-03-16T01:52:26Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230560#M183690</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Interesting.&amp;nbsp; The "taskCandidateUser" JavaDoc sounds like it only compares the user to the Task's "Candidate Users" list.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If it actually does compare it to both "candidate users" and all users in the Task's candidate group's, then true.&amp;nbsp; I can eliminate a query. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2016 02:24:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230560#M183690</guid>
      <dc:creator>jwestra</dc:creator>
      <dc:date>2016-03-16T02:24:04Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230561#M183691</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My experience is that it works for users being candidates via group as well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now, I'm having trouble getting or() to work as well, so still interested in hearing from anyone on how they are able to get it to work.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2016 04:07:19 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230561#M183691</guid>
      <dc:creator>schmke</dc:creator>
      <dc:date>2016-03-16T04:07:19Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230562#M183692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I've done some more testing and it seems there are some issues with or() in some cases.&amp;nbsp; Or I'm not using or() correctly so feedback welcome.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have several tasks in different states.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Unassigned at step with candidate group managers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) Standalone task assigned to andy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3) Assigned to andy at step with no candidate group&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;User andy is a member of group managers using a custom GroupEntityManager.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now the scenarios and different methods:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;taskCandidateUser("andy") - Using this by itself works correctly, it returns the task #1 above and uses the custom GroupEntityManager to lookup the groups for andy and use the result in the SQL.&amp;nbsp; The SQL being:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;select distinct RES.*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from ACT_RU_TASK RES&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; inner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;WHERE RES.ASSIGNEE_ is null&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; and I.TYPE_ = 'candidate'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and (I.USER_ID_ = 'andy'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; or I.GROUP_ID_ IN ( 'managers' )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;order by RES.ID_ asc;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;taskCandidateOrAssigned("andy") - I would expect this to return the task #1 as part of it being a candidate, and then return #2 and #3 as well as they are assigned.&amp;nbsp; Only the latter occurs with #2 and #3 returned but not #1.&amp;nbsp; The SQL generated doesn't get the group right as it appears to use ACT_ID_MEMBERSHIP instead of my custom GroupEntityManager.&amp;nbsp; This appears to be a bug.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;select distinct RES.*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from ACT_RU_TASK RES&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; left join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;WHERE (RES.ASSIGNEE_ = 'andy' or&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; (RES.ASSIGNEE_ is null and&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; (I.USER_ID_ = 'andy' or I.GROUP_ID_ IN&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; (select g.GROUP_ID_ from ACT_ID_MEMBERSHIP g where g.USER_ID_ = 'andy')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;order by RES.ID_ asc;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm guessing the above could be fixed with changes to Task.xml.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;or().taskAssignee("andy").taskCandidateUser("andy").endOr() - This would seem to be the workaround for the issue above, doing the or manually rather than using the convenience method.&amp;nbsp; Alas this one doesn't work either, it returns just task #1.&amp;nbsp; So this seems to be a bug too.&amp;nbsp; The SQL generated is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;select distinct RES.*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from ACT_RU_TASK RES&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; inner join ACT_RU_IDENTITYLINK I_OR0 on I_OR0.TASK_ID_ = RES.ID_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;WHERE ( RES.ASSIGNEE_ = 'andy'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; or (RES.ASSIGNEE_ is null&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; and I_OR0.TYPE_ = 'candidate'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and ( I_OR0.USER_ID_ = 'andy'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; or I_OR0.GROUP_ID_ IN ( 'managers' )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;order by RES.ID_ asc;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem here is the inner join and specifying a type of candidate misses tasks #2 and #3 that either don't have a row in ACT_RU_IDENTITYLINK or have a type of participant.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Things are consistent though as swapping the order, e.g. or().taskCandidateUser("andy").taskAssignee("andy").endOr() has the same SQL and result.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Unless I'm using or() wrong, these seem to be bugs so I'll open issues.&amp;nbsp; But should I come up with a fix, what the process for submitting it for consideration?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2016 18:06:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230562#M183692</guid>
      <dc:creator>schmke</dc:creator>
      <dc:date>2016-03-16T18:06:24Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230563#M183693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Researching issues, there is already 2081 (&lt;/SPAN&gt;&lt;A href="https://activiti.atlassian.net/browse/ACT-2081" rel="nofollow noopener noreferrer"&gt;https://activiti.atlassian.net/browse/ACT-2081&lt;/A&gt;&lt;SPAN&gt;) for the taskCandidateOrAssigned issue and I've added a comment to it.&amp;nbsp; This is a major issue open for awhile so hopefully it can be fixed soon?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And I also opened 4134 for the issue with the incorrect results using the or() (&lt;/SPAN&gt;&lt;A href="https://activiti.atlassian.net/browse/ACT-4134" rel="nofollow noopener noreferrer"&gt;https://activiti.atlassian.net/browse/ACT-4134&lt;/A&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Mar 2016 18:28:06 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230563#M183693</guid>
      <dc:creator>schmke</dc:creator>
      <dc:date>2016-03-16T18:28:06Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230564#M183694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I may just have to do a native query on a view that pulls the data together according to our requirements listed in OP above.&amp;nbsp;&amp;nbsp; That said, I'd need to figure out how to create a view at start-up in the H2 DB, so our unit tests all work. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://connect.hyland.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Mar 2016 15:34:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230564#M183694</guid>
      <dc:creator>jwestra</dc:creator>
      <dc:date>2016-03-17T15:34:53Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230565#M183695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's the ANSI standards compliant view and query we are using to be able to fetch "Available" tasks in a single query.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The assumptions are that you go find the groups for the user first and put them into the query.&amp;nbsp; An example query is shown below as well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DROP VIEW v_available_tasks;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CREATE VIEW v_available_tasks AS &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; name_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; description_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; category_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; due_date_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc_inst_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc_def_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; execution_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; task_def_key_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; owner_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assignee_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegation_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; priority_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; parent_task_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; suspension_state_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; form_key_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; user_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; group_id_ as group_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; coalesce(type_,'CANDIDATE') as type_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tenant_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create_time_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rev_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;FROM (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; SELECT act_ru_task.id_ as id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.name_ as name_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.description_ as description_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.category_ as category_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.due_date_ as due_date_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.proc_inst_id_ as proc_inst_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.proc_def_id_ as proc_def_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.execution_id_ as execution_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.task_def_key_ as task_def_key_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.owner_ as owner_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.assignee_ as assignee_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.delegation_ as delegation_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.priority_ as priority_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.parent_task_id_ as parent_task_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.suspension_state_ as suspension_state_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.form_key_ as form_key_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_identitylink.user_id_ as user_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_identitylink.group_id_ as group_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_identitylink.type_ as type_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.tenant_id_ as tenant_id_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.create_time_ as create_time_,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; act_ru_task.rev_ as rev_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; FROM act_ru_task&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LEFT JOIN act_ru_identitylink ON act_ru_identitylink.task_id_::text = act_ru_task.id_::text&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; WHERE act_ru_task.assignee_ IS NULL) i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then a query like the one below meets all 3 of the OP requirements for an "Available" task in our system.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;select * &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from v_available_tasks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;where (&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;group_id_ in ('Managers', 'Administrators') &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;or (group_id_ is null and user_id_ is null)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;or (user_id_ = 'jason'))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It selects the same tasks multiple times (as it is a denormalized view after all!).&amp;nbsp; I like that, because then I can collect the IdentityLinks too and the logic to weed out the dups in the end is easy.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Finally, if running H2 embedded, I have a Spring bean run JdbcTemplate.execute() on this view script to create it on-the-fly in the in-memory DB.&amp;nbsp; This really seems to work well, if you if you are OK with not using Activiti TaskQuery APIs and going directly to a view.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Mar 2016 05:15:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230565#M183695</guid>
      <dc:creator>jwestra</dc:creator>
      <dc:date>2016-03-23T05:15:12Z</dc:date>
    </item>
    <item>
      <title>Re: Fetch tasks that are available to be claimed by a specific user</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230566#M183696</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for sharing this. I'm sure it'll help many people!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Mar 2016 12:56:28 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/fetch-tasks-that-are-available-to-be-claimed-by-a-specific-user/m-p/230566#M183696</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2016-03-25T12:56:28Z</dc:date>
    </item>
  </channel>
</rss>

