01-23-2020 07:12 AM
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?
01-23-2020 09:31 AM
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.
01-23-2020 08:43 AM
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!
01-23-2020 02:00 PM
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.
04-30-2020 10:41 AM
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...
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 🙂
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.