I had a colleague of mine come to me and ask me about a problem he had creating a new list based on a custom list template he created. He found some articles explaining what seemed the be a bug with SharePoint at first, which is preventing you from using custom list templates on Record Center sites. Basically, the custom list template was getting created properly, but the template never appeared in the create new list interface. On top of this, the Feature Id and Product Version fields were never being populated for the custom list templates created. See figure 1.
Figure 1 – List Template catalog missing Product Version and Feature ID values
Another colleague of mine, stumbled upon an article that suggested a possible fix for this issue. The fix consisted in setting the ParserEnabled property to true on the actual web. Guess what? This works! But why is this property turned off by default on record center sites? For several reasons actually.
First let us take a look at what this parserenabled really does. SharePoint has an internal mechanism called the Document Parser that is responsible for keeping the metadata of actual documents in sync with the values associated with it in SharePoint. When you create a physical document on disk, there are some metadata properties associated with it. When you upload that same document to SharePoint, the application triggers a process that automatically synchronizes the fields of the SharePoint list item associated with your document with the ones from the document. When you disable this trigger by setting the ParserEnabled property to false on the site, your breaking any synchronization that exists between SharePoint and the local document. Why would anyone want to disable this feature you ask? Because in some scenarios, like in the case of a Record Center, you want to store a large amount of documents. Imagine what the performance impact would be on the farm if you were transferring ten million documents in SharePoint at once. Disabling the trigger improves performance in cases where you have large amount of documents. This is something to consider when designing your environments. One excellent option would be to create a custom event receiver and associated it only with the few libraries on your site that requires the parser to be enabled.