How to prevent duplicate Nintex forms from being created

  • 29 October 2019
  • 10 replies
  • 206 views

Badge +1

Is there a way to prevent a user from creating another new form which already exists in the sharepoint list?  For example, there is already an item in the list with ID # A and name of Joe John.  

 

A new person, goes to the list to create a new item.  Nintex form appears and they enter ID # A and the name of Joe John.   Can it flag them, while still in "new mode" to say that there is already a form with the same ID # and name to stop them from creating another one? There should not be 2 forms with the same ID # and name in the list.  

 

I want to prevent the new user from creating a duplicate entry in my nintex form.  Thoughts? :smileywink:


10 replies

Userlevel 6
Badge +22
Hi,
Configure your SharePoint column to "Enforce unique values" and then add your control to the form that is connected to this column.
When a form is submitted with duplicate values the form will error:

•The list item could not be added or updated because duplicate values were found in the following field in the list: [FieldName]
Badge +1
If i put unique values on both the ID # and the name fields, wouldn't one or the other cause the error vs both ? I want more than 1 form per user as they would have diff ID #'s but its the combination of the 2 fields together that would cause the duplicate.
Userlevel 6
Badge +22
Wouldnt just putting the unique on the ID be enough or will other users also be using that ID?

The alternative may be to have a calculated value control that does a look up for the ID based on the user. If the control does not return blank then the ID is invalid.
Badge +1

Hi - unfortunately no, you can have the same unique ID and a different person than the previous entry; it's when its the same unique ID and name combo. 




How would you your suggestion on the calculated value control while creating a new nintex form as they won't have time to search first then enter; they want the flag/error to appear as they are creating a new form. 

Userlevel 6
Badge +22

Hi,


 


The calculated value control would look like:


contains(lookup("List","UniqueID",toLower(UniqueIDControl),"Name",true),Name)

If it comes up true then there is a duplicate.


You could add this rule on the save button to disable it.


 


It looks up the ID on the list and returns all the names.  If the name is contained in the array it will return true.  Tried to use inArray runtime function but it did not like the element being compared to a named control for some reason but contains works.


 


You could put this in an IF runtime function to display a message if you wanted. etc etc.

Badge +1

okay - so i tried this and it did not work... trying to use the fields that are in question:


 


Notification ID - is the # (contains alpha and numeric info)


Individual Accountable for Error - is the user's name


 


=contains(lookup("List","NotificationID",toLower(NotificationID),"Name",true),IndividualAccountableforError)


 


The areas that are underscored are from the named controls.  

Userlevel 6
Badge +22

Drop the = from the start of your formula. 

Badge +1

Sorry - didn't mean to have it there but even without the = sign, it's not working. 

Userlevel 6
Badge +22
I tested this using numbers for the ID and was having issues as they came up as a number instead of a string. The toLower() runtime function forces this to be a string. Take the function out and see if it works .
The alternative is to look up the Name and return the ID's and do a contains agains them.

Is there a way where the duplicate is notified as soon as the user types in the value rather than waiting to complete the entire form and then to sumbit only to find it cannot be submitted

Reply