Class CaseQuery

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

    @Generated(value="ch.ivyteam.db.meta.generator.internal.query.JavaQueryClassGenerator",
               date="Apr 25, 2024, 3:31:05 AM")
    public class CaseQuery
    extends Query<ICase>

    Provides a query builder to query case data.

    To execute the query use ICaseQueryExecutor. See ivy.wf.getCaseQueryExecutor()

    Example how to filter and order data:

    import ch.ivyteam.ivy.workflow.query.CaseQuery;
     
     CaseQuery caseQuery = CaseQuery.businessCases();
     List<ICase> cases = caseQuery.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.CaseQuery;
     
     CaseQuery caseQuery = CaseQuery.businessCases();
     Recordset recordset = caseQuery.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 CaseQuery create()
        Creates a new query

        For performance reasons you should always prefer businessCases() or subCases() if you only need one of those.
        Returns:
        A new instance of CaseQuery
        See Also:
        businessCases(), subCases()
        API:
        This public API is available in IvyScript and Java. It has the visibility EXPERT.
      • businessCases

        public static CaseQuery businessCases()
        Creates a new query that only returns business cases.
        Returns:
        A new instance of CaseQuery
        See Also:
        subCases(), create()
        API:
        This public API is available in IvyScript and Java. It has the visibility EXPERT.
      • subCases

        public static CaseQuery subCases()
        Creates a new query that only returns sub cases (technical cases).
        Returns:
        A new instance of CaseQuery
        See Also:
        businessCases(), create()
        API:
        This public API is available in IvyScript and Java. It has the visibility EXPERT.
      • executor

        public IFluentQueryExecutor<ICase> 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 CaseQuery.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:

        CaseQuery.businessCases().aggregate().sumWorkingTime().avgWorkingTime();
        Corresponds to SQL:
        SELECT SUM(WorkingTime) AS SumWorkingTime, AVG(WorkingTime) AS AvgWorkingTime FROM IWA_Case

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

        public CaseQuery.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:

        CaseQuery.businessCases().groupBy().ownerRoleId().ownerName().aggregate().countRows();
        Corresponds to SQL:
        SELECT OwnerRoleId, OwnerUserId, Count(*) AS Count FROM IWA_Case GROUP BY OwnerRoleId, OwnerUserId

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

        public CaseQuery.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 CaseQuery.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.