How-to
Short answer: Add a lookup field that points to the same process and filters on the unique value. If the lookup finds an item, block submission.
Why it happens
Unique settings in child tables check only one item. To catch a value already used in another item, the form has to look up earlier items itself.
How to fix it
- Add a lookup field that points to the same process.
- Add filters: the status is Completed, and the unique field equals the unique field on this form.
- Copy the lookup result into a text field. If it isn't blank, a matching item already exists.
- Block submission when that field isn't blank. In the process editor, select the Start step, hover over the Submit action, and add a validation on the text field. See configuring actions.
- To gate one step instead, use
isBlank(Text_field)in that step's When does this step happen? condition.
For status checks such as "AP Approved", have an integration write the status into a text field when the step is approved, then look up that field.
To stop duplicate values across rows of one child table, turn on Mark as unique for the column. See unique fields in child tables.
Important
A process can look up itself only when global lookup access is on for that process. You can block duplicates while data is entered, but you can't remove them after submission.
