So you have a copy of our Duplicate Remover Wizard Expert for Act! and have set out to manage/reduce the duplicate contacts or companies in your Act! data base. You run the program and it finds a good set of duplicates and you set the program to merging the records. All indications are progress is being made. Then, the next thing you see is this:
The screen that then comes up appears to be filled with messages like this.
Working on Fred Flintstone 8/31/2012 8:14:43 AM He has 1 duplicate contacts Exception processing Flintstone, Fred of Act.Framework.MutableEntities.MutableEntity+FieldCollection+EmptyValueFieldException: The TBL_CONTACT CATEGORY field does not allow empy values. at Act.Framework.Contacts.Contact.ContactFieldCollection.SetData(MutableEntityColumn column, Object data) at Act.Framework.MutableEntities.MutableEntityFieldDescriptor.SetValue(Object item, Object val) at DuplicateRemoverWizard.FormMain.wizardPageBase6_OnActivate(Object sender, EventNextArgs e)
This is the most frequent support request we get for our Duplicate Remover family of products. Yes, that looks like an error. But what does it mean and how do you fix it? Just keep reading.
This is actually misspelled internal Act!-speak telling you that you have at least one field in your Act! data base that has been marked in the Tools/Define Fields settings to be a required field - the normal default option to Allow a field to be Blanks has been turned off. The problem is that Duplicate Remover is attempting to merge Act! records but the field in question is blank in all the original records in the Act! data base, and the Do Not Allow Blanks setting is being enforced on the attempt to save the merged record. So Duplicate Remover stops processing that set of records, leaving the original duplicate records intact, and attempts to move on to the next set of duplicates.
OK. The next question is which field? The message tells you which field, however the message is using the internal field name (referred to as the Physical Column name) rather than the name you usually know the field by (referred to as the Act! Field name or the Display Name). You can get a list of the fields in your Act! data base, with both their Physical Column names and their Display names from the ActDiag utility. You need to run the ActDiag utility and generate the Database Structure Field Detail report. The Physical Column name is the 2nd and 3rd words in the error message above (TBL_CONTACT CATEGORY). If you run the report against your Act! data base and search the resulting text file for CATEGORY you will probably find that the actual field name corresponding to CATEGORY is ID/Status.
So we now know that ID/Status is set as a required field, but it does not actually have a value in some records, and some of those records are what we are trying to merge to de-duplicate the data base. So what can be done to fix the problem?
You can fix this by doing one of two actions:
- Put a valid value in the field in question (ID/Status in our example) in every record of the data base and rerun Duplicate Remover Wizard Expert.
- Temporarily remove the Do Not Allow Blanks restriction in Tools/Define Fields for the field (ID/Status in our example), rerun Duplicate Remover Wizard Expert, and then turn the Do Not Allow Blanks option back on after you have done your de-dupeing.
Most people do the 2nd option.