Quick & Easy: Create a Folder and Assign a Content Type (Or, Have Your KPIs and Eat Them Too)

In order to work around a KPI problem I wrote about here, I did some testing and discovered that KPI’s work against folders with meta data in the same way that they work against documents or list items.   I proved it out by creating a new content type based on the folder content type and then added a few fields.  I created some indicators and proved to myself that KPIs work as expected.  This was welcome news.  It’s not perfect, because the drill-down you get from the KPI against the folders is not exactly what you want.  This isn’t too much a drawback in my case because 1) the end users don’t know any better and 2) the drill-down goes to a folder.  They click the folder name and they are at the item.  It’s two clicks instead of one, which isn’t the end of the world.

This flowed nicely with the work I was doing.  I am creating a folder for every document that gets uploaded.  This is done via an event receiver.  As a result, it’s a piece of cake to keep the parent folder’s meta data in sync with the KPI-driven meta data from the file itself since the plumbing is already in place.  This allows me to have my KPI’s and eat them too 🙂

I modified the event receiver to add the folder and then set this new folder’s content type to my custom KPI-friendly content type.  This bit of code did the trick:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Documents").SubFolders;
  SPFolder addedFolder = srcFolders.Add(properties.ListItem.ID.ToString());
  SPContentTypeId kpiCT = new SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Content Type ID"] = kpiCT;
  addedFolder.Item.Update();

To locate the actual Content Type ID, I accessed that content type via site settings and copy/pasted it from the URL as shown:

image

</end>

Subscribe to my blog!

Technorati Tags: ,

One thought on “Quick & Easy: Create a Folder and Assign a Content Type (Or, Have Your KPIs and Eat Them Too)

  1. Ron wrote:
    This doesn’t work.  I have tried it multiple times.  Trying to use KPIs against a task list folder.
    Unless you have to use the code to get it to work – which I don’t have the ability to change.
     
    If you don’t need the code maybe you could expand on your explanation of creating the new folder content type.  I’m using SharePoint 2007.
     
    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *