Business Search in OCI Process Automation

A new search experience has been introduced in OCI Process Automation that allows users to search for and find transactions based on business data! This feature provides a search experience that allows functional users to find process tasks and instances using queries that are meaningful to them. 

For example, using Business Search, you can now search for invoices by supplier, find patients by name or Medicare ID, locate requisitions where the amount is greater than a certain value, or even find vehicles leased between certain dates.

In short, Business Search provides a contextual experience for functional users that helps them find transactions and organize their work. It achieves this by allowing users to query data across business fields through a highly flexible and intuitive search experience.

To leverage this feature, you need to define searchable fields and familiarize yourself with the new search functionality. This blog provides you with the knowledge you need to get started and adopt this search experience in your environment.

Define searchable fields:

To enable Business Search, process designers need to define searchable fields in their application. This is a quick process that takes only a few minutes and unlocks a large amount of flexibility for business users. We encourage you to perform this step prior to activating your application. To define searchable fields, you need to navigate to the Define Business Search option from your application menu in the Process Designer and select the fields you want users to search by. You need to ensure here that you give them meaningful names, decide whether you want to support partial matching (default), and decide whether you want to allow users to search on the selected fields in the task and/or tracking workspace page. A step-by-step guide of this process is documented here.

Selected Business Search Fields in Design-time

Business Search Config for single field
Above: Defining searchable fields in the Process Designer

Familiarize yourself with the search functionality:

To use Business Search, go to the Workspace and navigate to the Task or Tracking page. The Task page allows you to find tasks that you or your team are currently working on or have worked on in the past. The Tracking page on the other hand is used to find process instances and related information about their execution and audit.

Let’s now look at the different ways you can interact with Business Search to find data.

Free Text Search:

Free text search is often the first type of search users try. It serves users who are looking for some data, but are not sure which field to query by. For example, in a hospital ward, a relative comes looking for a patient named Arthur. The front desk clerk tries to find the patient by searching for Arthur:

Free Text Search

This is a good start, but what if there are multiple patients with that name? The clerk might then refine their search by typing Arthur Dent. This can indeed refine the search enough and yield the desired results, but what if the search returns results where the patient’s name is Arthur Smith and there is a comment against their record about a Dent suffered as a result of a head injury. This can happen because in this case, search looks for each word individually:

Free Text Search

To ensure that the words are searched together as a phrase and in the order we specified, we can surround them with double quotes. In this case, a search of “Arthur Dent” would now produce the desired result:  

Free Text SearchWhat if we now want to search for a specific encounter based on the patient’s name and a particular doctor who administered their care on that occasion.  Searching across multiple fields is possible with the help of operators. An operator is either an AND / OR used between different search criteria. If we apply this to the above scenario, we can now search for Arthur Dent AND Dr. Zaphod Beeblebrox to return the desired outcome:

Free Text Search using OperatorsTo take this scenario one step further, imagine that we are now not sure of the Doctor’s full name, but we do know that they saw a Dr. Beeblebrox. To address this problem, we can use wildcards and construct a search such as “Arthur Dent” + *Beeblebrox:

Free Text Search with wildcard

And because Beeblebrox is impossible to spell correctly, we can rely on Fuzzy Search capabilities to give us some leeway in making spelling mistakes. This way, even if we are in the same ballpark, we get a hit. To use Fuzzy Search, you can append your field with the tilde (~) symbol and specify a degree of allowed edits:

Free Text Fuzzy Search

Everything looks good so far, but what if the search actually returned a record based on a task comment rather than the patient names and that leads to an incorrect result? To support use cases where we want to be more explicit, we allow you to specify the target field names. This type of search lets you specify a key-value pair where the key is the field you are looking for and the value is the specific text you want to find in that field. For instance, this search returns all records where the patient’s name is Arthur Dent and where they have a peanut allergy: patientName:”Arthur Dent” AND allergies:(Peanuts).Free text Search with Operators

Many of you at this point may be wondering how will my business users know which fields/keys they can search by? To address this problem, we have introduced an auto-suggestion feature that provides a list of suggestions in the search box as you start typing. For example, if I want to search by the health insurance provider, when I start typing heal…, it gives me available search fields:

Free Tea Search with Auto-SuggestionOnce you select your key, the prompt asks you for a corresponding value:

Free Text Search with Auto Suggestion

This brings us to another important piece of functionality. What if you now want to use a key-value search, but want to use a different relational operator? We give you plenty of flexibility here. For fields with a ‘String’ data type, we support equals, not equals, in, not in, contains, starts, and ends with operators.  Likewise, we support many operators that are specific for date and numeric fields, effectively giving you a large amount of flexibility in constructing queries. You can choose to type the syntax for these relational operators yourself directly in the free text search. However, we have a better option here … Advanced Search.

Advanced Search

Advanced search is available at any time by clicking on the More filters button under the free text search box. Doing so invokes a right-hand draw that allows you to create search conditions without worrying about any of the syntax. Here you can select from the available fields and choose the most appropriate operator to construct your query. Note also that you can build a query with one or more filter conditions!

Advanced Search

Once you are happy with your selection, click the filter to return back to the search results page and we can apply your filters.

Advanced Search Applied

You can now clear your filter or click More filters again to refine your search even further.

In the above examples, we have given you a taste of the available search functionality, if you want to find out more about the capabilities of search, see our documentation.

 

Results

Once search has returned a result, you may want to understand why search believed that this record was relevant. To address this need, we have introduced a synopsis section that can be accessed by clicking the carrot next to each search result. The synopsis shows you which data fields contain your search text and where that text lives in the data (the search text is highlighted so you can easily find it).

Result Synopsis

This brings us to another important point: search result relevance. Relevance is a way of sorting the result set by specifying a ranking or preferred precedence based on search text fragments. For example, if you want to find patients with a peanut allergy or cases where the patient’s symptoms included stress, you can enter a search such as:

symptoms:(stress) OR allergies:(peanuts)

However, what if you wanted to put more emphasis on the peanut allergy to ensure that your search results are ordered in such a way that all records with a peanut allergy are shown first. To achieve this, we can use a concept called boosting. You can assign a boost factor using the caret ^ symbol followed by a value between 1 and 10 to control the importance of the search term. So, now I can rephrase my query and perform the following search to achieve the desired result:

Boosting Search Terms

Security

From a security point of view, it is important to understand that search follows the existing permission model in OPA. In other words, if you have access to see the tasks for a particular process or its process instances, search returns results for matches in that process. If you don’t, it does not return any results for you.

Conclusion

In this blog, we have introduced Business Search and the value it can bring to your organization. We showed how to enable it and discussed how you can get started with it. We encourage you to try it, share your feedback with us, and consider enabling it in your current and future process automation projects.