cancel
Showing results for 
Search instead for 
Did you mean: 

Unity Form - How to validate a keyword exists in Autofill Keyword Set?

Harshal_Shravgi
Star Contributor
Star Contributor

We are on OnBase 17 SP1. We have configured a Unity form containing a primary field of an Autofill Keyword Set. I have binded this field with Autofill and marked the field as mandatory. Now, user can enter any value in this field and submit the form. 

I want to invalidate this field if user entered value does not exists in Autofill. I do not want to perform this validation using Workflow.

I need to display the validation message to user while submitting the form.

Any ideas on how to implement this?

8 REPLIES 8

This is what I've set up for employee forms that I've created...

Employee Number KW has external dataset that queries our ERP system.  I have the "Keyword must exist" option enabled, but I don't think the Unity Form respects that.  I have it for when documents are being uploaded that are not Unity Forms.

Employee Information AFKS is an external AFKS.  It also queries our ERP to populate the secondary keywords.

On the Unity Form, the Employee Number is a Select List.  At the bottom of the properties, is the "Value must exist" option.  I have that checked.  If it is a Text Box, you don't have the "Value must exist" option and you'll need to change it to a select list.  They can still use it like a text box and enter the full value and hit tab to move to the next field, so moving to the mouse is not necessary.

The secondary fields are read-only to keep users from making creative changes.

If the user enters a valid employee number, the secondary fields fill in.  If they change it to an invalid employee number, the keywords don't clear automatically (unfortunately), but since the employee number immediately invalidates, they can't submit the form with wonky data.  They have no choice but to select a valid record.

It has worked really well for us.

Eric_Beavers
Employee
Employee

I know in many Healthcare Solutions this has been an issue related to CSN Keywords (primary keyword in an autofill related to patient indexing). The problem we had to solve was that end user indexers could make up any CSN and inadvertently misindex the documents and by extension cause duplicate entries in a Third Party Integration for Epic (really bad!!).

The workaround we used many times was to configure the keyword to use an External Dataset and then use Unity API or SQL to retrieve the Primary Column of the AFKS Table. This allowed the "Item must exist" setting to be enforced meaning the user could only index if the value had a match in the AFKS.

SCR 141511 was written to add the functionality natively, but was denied by development because this workaround is pretty common

Documentation:

System Admin MRG - section titled Enabled External Keyword Datasets documents how to set up the keyword

Database Reporting Guide - for information on the KEYSET*** table and where autofill keywords values are stored

Database Reference Guide - for the Use Policy (Appendix A -page 88) on what you can and cannot do with the onbase database. Unity API is the recommended Access method to get your list of keywords; however, organizations without api licenses and certified developers have gone the more risky SQL route.

Hope this helps!

 

Thanks Eric, I got your solution.

The problem is that I am creating a Unity form for an existing document type, keyword and AFKS.

In order to do suggested approach I will have to change existing keyword and AFKS. I will try to get permission to implement it.

Thanks for the suggestion.

Michael_Lerch
Star Contributor
Star Contributor

@Harshal Shravgi @Eric Beavers @Kris Conrads @Kathy Rickertsen  
EDIT: This is using OnBase 18. 

This post helped me a lot when trying to validate a work order numbers because users have the potential to fat finger the work order # and it'll really get messed up down the line in other work flows that these documents go through for our unsuspecting billing dept. Here's what I did...

I have an Account #, Last name, and Work order # keywords. The Account # and Last Name keywords already have existing values from earlier in the workflow. 

I created validation Account#, validation Last name, and validation Work order # keywords and an AFKS that will do an external autofill against our SQL Database with validation Work order # as the primary to autofill validation Account# and validation Last name. 

Then I setup my work flow Unity Form to look like this...

74cd2c57724b4d90afb8e92c199ba3d5

Once the user enters a Work Order # in "Work Order # Exists" field (this is attached to the Validation Work Order # keyword) this autofills Account # Validation and Last Name Validation fields.

I then set custom actions called Match = TRUE to basically match up the fields so if the values for account # and Last name are = to their validation counter parts values (TRUE) go head and ACTION set value of the Work Order # field (not to be confused with the validation work order # keyword) from WO# Exists field. I set the Work Order # as read-only and required so the user can't fudge it by manually entering. 

Now what if the user enters an incorrect or non-matching Work Order #? 
I created another custom action called Match = FALSE where if the keywords don't equal < > each other then the action will  clear the value of Work Order # field and the user won't be able to submit the form with a non matching work order # field because Work Order # is required and they can't fake it because it's read only.

I hope this helps someone else and if this is overkill please let me know what you would do differently as I'm not an expert by any means  🙂