Toggle menu

Process Instance Search Indexing

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:

Searchable Property

The PROCESSVARSCOMBINED fields holds all of the indexed variables, pipe separated, where each entry is a key value pair, made up of the name of the variable and its value. For example "form_eventlocation:24 darklake view|form_eventexperience:food & drink|form_visit:yes". This field is queried when you use the PROCESSVARSCOMBINED filter.

Searchable variables stored in their own dynamic fields can be used as the key in the KEYWORD operator. These fields are used also used when you use PROCESSVARSCOMBINED with the LIKE operator to provide search term stemming.

The responses from getQueryTasks and getQueryProcesses will only return process variables that have been stored and indexed - ie they don't return PROCESSVARSCOMBINED.

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": ""
}

getQueryProcesses

Query the indexed process collection.

getQueryTasks

Query the indexed task collection.

purgeCollection

Deletes the collection.

refreshCollection

Indexes process instances with optional start and length parameters.

verifyCollection

Ensures that the search collection has the same processes and tasks as the database.

verifyProcesses

Tidies the collection for the supplied business keys or process IDs.

Filters

The filters that can be used when querying tasks and process instances.

Geographical Querying

You can make location based queries to find indexed process instances and tasks that contain geographical data.