SharePoint list ID column missing

Ive seen this come up here and there, and I wanted to try and jot down some clear steps. If youre reading this then you likely have used the standard Issues list in SharePoint. Its used for various purposes, but generally the out of the box provided ID column is used as the Issue ID since it auto-increments by default. While not configurable, it works for basic purposes. Invariably, users need to be notified whenever issues are created or updated, so they subscribe to alerts on the list. When they get their notification email, they notice that the Issue ID is missing, so they arent sure exactly which issue got updated.

We can fix this by adding the ID field to the email alert file. Unfortunately its not very straightforward or friendly to edit. But for this very small change, it works. This only works for SharePoint on-premise, you cant do this with SharePoint Online. So if that's you, heres what you need to do:

  1. Get on the SharePoint server desktop, and go to to the following location: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML. Make a copy of the file alerttemplates.xml and call it whatever you like. For the sake of these steps lets call it alerttemplatesWithID.xml.

    NOTE: NEVER directly edit the original alerttemplates.xml file. This is because the next time a service pack or CU is applied, any changes made to the file will be undone.

  2. Edit this new copied file [its easier with Notepad ++ or similar]. We need to make a very small edit, but we need to do it in very specific places. In this file, there is an alert template type for each type of list or library [document library, task list, contact list, etc.]. We need to modify the type for SPAlertTemplateType.GenericList. At the very top of the file you will see this:



    Under this heading, search for ImmediateNotificationExcludedFields. There are 2 Properties, one used when alerts are sent Immediately, and one when alerts send in a digest [daily, weekly]. This lines list fields that should be excluded from showing on the alert email. So we need to simply delete the ID; field. When completed, it should look like this:

  3. Save this file. Now we need to tell SharePoint to use this file. Still on the server desktop, drop to an elevated command prompt. Run the following command:

    stsadm -o updatealerttemplates -filename "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML\alerttemplatesWithID.xml" -url //yoursitecollectionroot/

  4. Run IISRESET /noforce. Once this is successful, restart the SharePoint 2010 Timer Service.
  5. Everything should be good. If you havent already, setup an alert on your issues list, and create an issue and wait.

For alerts you get when issues are created, you will see the ID column but no value. I assume this is because the new ID value isnt passed to the alert yet. But when you get an alert for edited issues, it should show the ID just fine.

A much easier possibility I tried was just to make a calculated column called like IssueID or Request ID, with a value of =[ID]. This worked once, but as soon as you edited an issue, the value would go to 0. So that didnt work. Regardless, this works.

One slight variation on this is if you see on the changed alert email that the ID value is still blank, in the XML file around line 576 in the initial body tag, add the following:

This should load the value for the ID column.

For more information about C5 Insight or this blog entry, please Contact Us.

Video liên quan

Chủ Đề