Workflow process indexing and querying is still in beta. Please be aware that the functionality described below is still under review and may change.
The following methods are used to manage and query process instance data held in the SOLR search collection.
The initial search collection is built via an iCM Scheduled Tasks. Indexing must also be enabled in the Workflow worker configuration. Once the collection has been built it is kept up to date by the workflow worker (ie as new process instances start they are added, if they are deleted they are removed, and as variables change they are updated). There's no need to run the scheduled task regularly.
The SOLR search collection is a secondary data store (the primary being the database itself) and as such there can be a short delay between data being updated and that change being present in the search collection.
Process Variables
Indexed vs Stored
Indexed values are searchable but not returned in results. Stored value are returned in results. See Search Indexing for a full explanation.
Process variables are indexed as follows:
- Process variables that hold objects, strings that look like JSON, and null values are not indexed
- Strings under 140 characters are automatically indexed in the
PROCESSVARSCOMBINED field - Any variables created by form fields which are set as searchable in the "summary form" used by the process instance are indexed and stored in their own dynamic fields (these can exceed 140 characters). The summary form a process uses is named in the
_summaryForm process variable. In most cases that will be the form that started the process instance, but a different form can be set on the Workflow - Start Action field
To set a form field as searchable, set the Searchable property as true:

The
Searchable variables stored in their own dynamic fields can be used as the
The responses from
Case Management
Case Management cases are active workflow process instances, so are indexed in a similar way to regular processes.
The following fields are always indexed and stored, even if not set as searchable in the summary form used by the process instance:
{
"assignGroupFull": "",
"assignGroupName": "",
"assignUserFull": "",
"assignUserName": "",
"proxyFullName": "",
"timerPausedDelay": "",
"timerPausedTarget": "",
"updatingSLA": "",
"form_ADDRESSTEXT": "",
"form_CASESTAGENAME": "",
"form_CASETARGETDATE": "",
"form_CASETYPE": "",
"form_CASESUBTYPE": "",
"form_EMAILADDRESS": "",
"form_LOCATION": "",
"form_NAME": "",
"form_NEWTARGETDATE": "",
"form_ONBEHALFOFNAME": "",
"form_PHONENUMBER": "",
"form_POSTCODE": "",
"form_STATUS": ""
}
