I recently got an email from an end-user that duplicate emails are getting posted in a discussion board with incoming email enabled. So I went to go check it out–nothing from my end. It turns out they are using a third-party tool that emails information specific to SQL database entries;..no biggie. So if you don’t know already discussion boards and lists do not have the ability to overwrite duplicates–document (and other content) libraries do. So I did some research on how one would restrict the dicussion board entries of duplicate items. Most of the articles I found had programming involved in it, but I needed a simple and quick fix. Eventually I found this list of SharePoint 2007 custom features that had an interesting custom feature–Unique Column Policy.
It is a information policy that you apply on your list that will disallow duplicate entries based on a column that you specify. It’s pretty neat! Here’s how to set it up:
1. Go download the SharePoint 2007 features page, goto the download section and download the “UniqueColumnPolicy.wsp”
2. Copy it to your SharePoint server’s C drive (temporarily).
3. Open Command Prompt and navigate to the 12 hive BIN (C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN)
4. Run the following: stsadm –o addsolution –filename C:/UniqueColumnPolicy.wsp
5. Go to your Central Administration -> Operations -> Solution Management -> UniqueColumnPolicy.wsp and choose Deploy Solution.
6. When you deployed successfully, go to the desired Discussion Board’s settings
7. Click “Information Management Policy Settings”
8. Click Discussion
9. Click Define a policy.. Click OK
10. Check the Unique Column Policy checkbox and select the column you want to be specifically unique. For this example I used Subject.
– Any posts thereafter that have the same unique column data of any of the existing posts will be discarded, even from the incoming email. As a test, I emailed the discussion board with the same email subject as one of the existing posts (after selecting ‘Subject’ as my Unique Column in the previous step) and the event viewer spit out this…
All is well.