Filters
Documentation about the behavior of filters used in the Harmoney application.
General rules:
- In general and unless otherwise specified, fields with a string, number, enum or date value will use an
=operator in the actual query. Meaning the actual query will look like:WHERE ... = filtervalue - Some fields - usually free search fields - will use a
LIKEoperator with wildcards enabled. Meaning the actual query will look like:WHERE ... LIKE '%filtervalue%' - Fields that use a collection as value will in general use the
INoperator in the actual query. Meaning the actual query will look like:WHERE ... IN (value1, value2, value3) - In general, archived entities are never included in the filter results. Only in the filters used in the data removal providers do we include archived entities!
Date formats
We use 2 datatypes to represent date values in our filters: Instant and LocalDate. Note that the application always uses UTC time!
Instant
Probably the most common datatype we use for date related filter fields. An Instant supports both “date” and “time” values.
To configure a correct Instant value, you should follow the following format: yyyy-MM-ddTHH:mm:ssZ. So for example, the last day of 2024 at 6:30 in the evening will look like this: 2024-12-31T18:30:00Z. It’s important to always add the “time” part, only providing the date part (e.g. 2024-12-31) is not a valid Instant value! In case you only need a date, you can use the start of day time, e.g.: 2024-12-31T00:00:00Z
As mentioned above, note that the application uses UTC times when working with date time values!
See also: https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html
LocalDate
Filter fields with a LocalDate only support date values without a time unit. To configure a correct local date value, you should follow the following format: YYYY-MM-DD. So for example: 2024-12-31 is a valid local date filter value.
See also: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html