Class TaskQuery

java.lang.Object
ch.ivyteam.ivy.persistence.query.Query<ITask>
ch.ivyteam.ivy.workflow.query.TaskQuery
Direct Known Subclasses:
TaskQuery.AggregationQuery, TaskQuery.FilterLink, TaskQuery.GroupByQuery, TaskQuery.OrderByQuery

public class TaskQuery extends Query<ITask>

Provides a query builder to query task data of the current workflow context.

To execute the query use ITaskQueryExecutor. See ivy.wf.getTaskQueryExecutor()

Example how to filter and order data:

import ch.ivyteam.ivy.workflow.query.TaskQuery;

 TaskQuery taskQuery = TaskQuery.create();
 List<ITask> tasks = taskQuery.where().customVarCharField1().isEqual("Hello")
  .and().customVarCharField2().isEqual("World")
  .orderBy().name().ascending();
  .executor().results();
 
Example how to aggregate and group data:
import ch.ivyteam.ivy.workflow.query.TaskQuery;

 TaskQuery taskQuery = TaskQuery.create();
 Recordset recordset = taskQuery.aggregate().sumCustomDecimalField1()
  .groupBy().customVarCharField1()
  .executor().recordset();

 recordset.getField(0, 0); // Sum of the group
 recordset.getField(0, 1); // Name of the group

Note, that a TaskQuery by default returns only tasks of the current workflow context. It is not necessary to explicit filter the tasks with TaskQuery.IFilterableColumns.applicationId() as this is already implicitly done by the TaskQuery itself.

API:
This is a public API.
  • Method Details

    • create

      public static TaskQuery create()
      Creates a new query
      Returns:
      A new instance of TaskQuery
      API:
      This public API is available in IvyScript and Java. It has the visibility EXPERT.
    • executor

      public IFluentQueryExecutor<ITask> executor()

      Provides a fluent API to execute this query and fetch its results.

      Returns:
      fluent API to execute this query.
      API:
      This public API is available in IvyScript and Java. It has the visibility NOVICE.
    • aggregate

      public TaskQuery.IAggregationQuery aggregate()

      Returns an object which contains the aggregation part for this query.
      It provides methods to perform aggregations on the query. For each aggregation a column is added to the result set.

      Example:

      TaskQuery.create().aggregate().sumWorkingTime().avgWorkingTime();
      Corresponds to SQL:
      SELECT SUM(WorkingTime) AS SumWorkingTime, AVG(WorkingTime) AS AvgWorkingTime FROM IWA_Task

      Returns:
      aggregate query
      API:
      This public API is available in IvyScript and Java. It has the visibility EXPERT.
    • groupBy

      Returns an object which contains the group by part for this query.
      It provides methods to group the result by certain fields.

      Example:

      TaskQuery.create().groupBy().activatorUserId().priority().aggregate().countRows();
      Corresponds to SQL:
      SELECT ActivatorUserId, Priority, Count(*) AS Count FROM IWA_Task GROUP BY ActivatorUserId, Priority

      Returns:
      A query group by builder to add group by statements
      See Also:
      API:
      This public API is available in IvyScript and Java. It has the visibility EXPERT.
    • orderBy

      Returns an object which contains the order by part for this query.
      It provides methods to order the result by certain columns.

      Returns:
      An order by query builder to add order by statements
      API:
      This public API is available in IvyScript and Java. It has the visibility EXPERT.
    • where

      public TaskQuery.IFilterQuery where()

      Returns an object which contains the where part for this query.
      It provides methods to filter the result by certain columns.

      Returns:
      An filter query builder to add where statements
      API:
      This public API is available in IvyScript and Java. It has the visibility EXPERT.