Class TaskQuery

  • Direct Known Subclasses:
    TaskQuery.AggregationQuery, TaskQuery.FilterLink, TaskQuery.GroupByQuery, TaskQuery.OrderByQuery

    @Generated(value="ch.ivyteam.db.meta.generator.internal.query.JavaQueryClassGenerator",
               date="Apr 20, 2024, 2:48:40 AM")
    public class TaskQuery
    extends Query<ITask>

    Provides a query builder to query task data.

    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
    API:
    This is a public API.
    • Method Detail

      • 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

        public TaskQuery.IGroupByQueryColumns 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:
        TaskQuery.AggregationQuery.countRows()
        API:
        This public API is available in IvyScript and Java. It has the visibility EXPERT.
      • orderBy

        public TaskQuery.IOrderByQueryColumns 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.