Förlorad metadata i SharePoint

Vid användande av Office 2003 på dokument som lagts till i SharePoint programatiskt via objektmodellen försvann metadata vid incheckning.
Problemet uppstår inte i Office 2007 inte heller om dokumenten läggs till direkt via SharePoint.

Det verkar som att Office 2007 klarar av dokument som endast har ContentTypeId informationen satt medan Office 2003 även kräver ContentType (dvs namnet). När dokument läggs till via SharePoint sätts både Id och namn, dock hade jag ansett att Id räcker väl vilket nu gav upphov till detta märkliga fel.

Skapa dokument i SharePoint 2007

Att lägga till dokument till SharePoint är en smal sak. Lite mer arbete kan krävas om man vill knyta t ex metadata, contenttypes och rättigheter.

Vi börjar med att hämta vår sitecollection för att sedan hämta ett handtag till den site i vilken vi har vår lista, i detta fall ett dokumentbibliotek.

SPSite site = new
SPSite(“http://mymoss”);
SPWeb web = site.AllWebs[“DemoWeb”];

Och i denna site har vi nu ett dokumentbibliotek som heter Viktiga dokument. Vi väljer här att placera dokumentet i listans root.

SPList list = web.Lists[“Viktiga dokument”];
SPFolder folder = list.RootFolder;

Nu initierar vi en ny instans av FileStream klassen med filen vi vill lägga till i vårt dokumentbibliotek.

FileStream fs = new
FileStream(“CustomDok.docx”, FileMode.Open);

Slutligen lägger vi till vårat dokument och frigör våra resurser.

SPFile file = folder.Files.Add(“Mitt nya dokument”, fs, true);
fs.Close();
site.Close();