<?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 Query custom properties in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243280#M196410</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I want to query all workflow tasks that have a cusom property named 'observer' set to the current user name. I tried with:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;WorkflowTaskQuery query = new WorkflowTaskQuery();&lt;BR /&gt;Map&amp;lt;QName, Object&amp;gt; taskCustomProps = new Hashtable&amp;lt;QName, Object&amp;gt;();&lt;BR /&gt;taskCustomProps.put(de.hmedia.alfresco.workflow.WorkflowModel.PROP_OBSERVER, userName);&lt;BR /&gt;query.setTaskCustomProps(taskCustomProps);&lt;BR /&gt;query.setActive(true);&lt;BR /&gt;List&amp;lt;WorkflowTask&amp;gt; tasks = this.getWorkflowService().queryTasks(query);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;// create a list of transient nodes to represent&lt;BR /&gt;this.assignedTasks = new ArrayList&amp;lt;Node&amp;gt;(tasks.size());&lt;BR /&gt;for (WorkflowTask task : tasks)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Node node = createTask(task);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.assignedTasks.add(node);&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;But does not return any tasks. I replaced the code above with a query that simply returns all active tasks and then I go through the list of active tasks and check if the property is set. This gives the results I need:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;WorkflowTaskQuery query = new WorkflowTaskQuery();&lt;BR /&gt;query.setActive(true);&lt;BR /&gt;List&amp;lt;WorkflowTask&amp;gt; tasks = this.getWorkflowService().queryTasks(query);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;// create a list of transient nodes to represent&lt;BR /&gt;this.assignedTasks = new ArrayList&amp;lt;Node&amp;gt;();&lt;BR /&gt;for (WorkflowTask task : tasks)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;QName, Serializable&amp;gt; taskCustomProps = task.properties;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object o = taskCustomProps.get(de.hmedia.alfresco.workflow.WorkflowModel.PROP_OBSERVER);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (o != null &amp;amp;&amp;amp; o.toString().equals(userName)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Node node = createTask(task);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.assignedTasks.add(node);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Why does the task query from the first code example not give the same results? I've checked the hibernate criteria representation of the query. It seems to be ok. The custom 'oberserver' property is contained in the criteria and is mapped correctly. The bpm tables also contain the variable.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Apr 2010 10:22:53 GMT</pubDate>
    <dc:creator>sebp</dc:creator>
    <dc:date>2010-04-15T10:22:53Z</dc:date>
    <item>
      <title>Query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243280#M196410</link>
      <description>I want to query all workflow tasks that have a cusom property named 'observer' set to the current user name. I tried with:WorkflowTaskQuery query = new WorkflowTaskQuery();Map&amp;lt;QName, Object&amp;gt; taskCustomProps = new Hashtable&amp;lt;QName, Object&amp;gt;();taskCustomProps.put(de.hmedia.alfresco.workflow.</description>
      <pubDate>Thu, 15 Apr 2010 10:22:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243280#M196410</guid>
      <dc:creator>sebp</dc:creator>
      <dc:date>2010-04-15T10:22:53Z</dc:date>
    </item>
    <item>
      <title>Re: Query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243281#M196411</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;try this code :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;WorkflowTaskQuery query = new WorkflowTaskQuery();&lt;BR /&gt;query.setActive(true);&lt;BR /&gt;List&amp;lt;WorkflowTask&amp;gt; tasks = this.getWorkflowService().queryTasks(query);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;// create a list of transient nodes to represent&lt;BR /&gt;this.assignedTasks = new ArrayList&amp;lt;Node&amp;gt;();&lt;BR /&gt;for (WorkflowTask task : tasks)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;QName, Serializable&amp;gt; taskCustomProps = task.properties;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object o = taskCustomProps.get(de.hmedia.alfresco.workflow.WorkflowModel.PROP_OBSERVER);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (o != null &amp;amp;&amp;amp; o.equals(userName)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Node node = createTask(task);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.assignedTasks.add(node);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;And see if it returns any results, if no results are returned that means the value of PROP_OBSERVER is not a String, which means you shouldn't pass the userName as String, but as the appropriate class in :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;taskCustomProps.put(de.hmedia.alfresco.workflow.WorkflowModel.PROP_OBSERVER, userName);&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Apr 2010 12:14:16 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243281#M196411</guid>
      <dc:creator>hsohaib</dc:creator>
      <dc:date>2010-04-15T12:14:16Z</dc:date>
    </item>
    <item>
      <title>Re: Query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243282#M196412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the answer. I tried and the property is string.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Apr 2010 12:25:41 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243282#M196412</guid>
      <dc:creator>sebp</dc:creator>
      <dc:date>2010-04-15T12:25:41Z</dc:date>
    </item>
    <item>
      <title>Re: Query custom properties</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243283#M196413</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello, anybody solved this problem ?!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2014 13:02:52 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/query-custom-properties/m-p/243283#M196413</guid>
      <dc:creator>amrorabi</dc:creator>
      <dc:date>2014-04-02T13:02:52Z</dc:date>
    </item>
  </channel>
</rss>

