Tip#108. How to automate OneNote library creation

Rate this item
(1 Vote)

 

I’ve recently been asked to do the following automation.

We have a portal on our SharePoint site that has data about something – let us say projects.

And once we want to create a new project, we want to have

A new document library with some things set up (like versioning).

A OneNote notebook that the users can work on and sync their data

 

At first it looks pretty obvious, isn’t it?

Now the question comes – what is a OneNote book from the SharePoint prospective?

 

After some investigation I found out that OneNote notebook is just a folder, but there is a trick.

One cannot simply create a OneNote as a folder, what you need to provide is a thing called ProgID.

 

I made a simple sandboxed webpart that does ask for library name, and then just creates the library.

In the library a folder with the same name is created and set up to be OneNote notebook.

The code is this

 

 

var newLibId = web.Lists.Add(name, description, SPListTemplateType.DocumentLibrary);
var newLib = (SPDocumentLibrary)web.Lists.GetList(newLibId, true);
newLib.Update();
 
                
 
//Remember Document library is also a list in SharePoint
SPFolderCollection folders = web.GetFolder(newLib.RootFolder.ServerRelativeUrl).SubFolders;
 
//Create new folder
var newfolder = folders.Add(name);
var folderitem = newfolder.Item;
folderitem.ProgId =
"OneNote.Notebook";
folderitem.Update();
 
And at first it looks ok

 

 

 

 

But when you get inside it

You notice that the link "Open in OneNote" is missing.

 

 

To overcome this we’ve generated a link ourselves

 

onenote:http://sp2010/sites/onenote/test/test

 

Posted from 

http://mbakirov.wordpress.com/2013/07/25/how-to-automate-onenote-library-creation/

 

Leave a comment

Make sure you enter the (*) required information where indicated. HTML code is not allowed.