Introduction to Query Models
When utilizing Flowable, all data from any execution — whether it's a BPMN process, a CMMN case, a DMN rule, or any other element — is stored in a relational database. This data is consistently synchronized with the indices of Elasticsearch, unless this feature is explicitly disabled. The synchronization process is designed to optimize the data format for constructing advanced queries and dashboards.
Flowable distinguishes two types of query model:
- Custom queries: which are a simple wrapper around the Elasticsearch syntax.
- Queries made with the Builder approach. v3.15.0+
Custom queries allow to write free-form Elastic search queries (with the option to make them safe, which means that the user won't be able to query any data it doesn't have permission to) which can then be used through REST API's to retrieve data. This is quite a technical something, more details can be found in the developer guide around custom queries.
Query models that are built using the Builder approach also result in Elasticsearch queries, but they are constructed with "Flowable building blocks". Currently, they are primarily used for populating dashboard components.
In the next sections, the concepts and way of creating query models will be explained.