close

Wer schon mal versucht hat, die seit SharePoint 2013 neue Assembly Microsoft.SharePoint.Client.Taxonomy zu verwenden um mittels CSOM auf das Managed Meta Data Service zuzugreifen, hat vielleicht schon mal folgende Fehlermeldung gesehen.

Cannot invoke method or retrieve property from null object.
Object returned by the following call stack is null.
“GetDefaultSiteCollectionTermStore
Microsoft.SharePoint.Taxonomy.TaxonomySession.GetTaxonomySession”

Das Code-Fragment, das diese Fehlermeldung verursacht sieht beispielsweise so aus.

Anmerkung: Dieses Beispiel legt einen Termset “Intrigen der Macht, mit den Titeln von drei Büchern an, in der Gruppe “Books”.

using (var context = new ClientContext(“http://servername”))
{
int lcid = 1031;

context.Credentials = System.Net.CredentialCache.DefaultCredentials;

var session = TaxonomySession.GetTaxonomySession(context);
session.UpdateCache();

var store = session.GetDefaultSiteCollectionTermStore();
store.UpdateCache();

var groups = store.Groups;
var group = store.CreateGroup(“Books”, Guid.NewGuid());

var locations = group.CreateTermSet(“Intrigen der Macht”, Guid.NewGuid(), lcid);
locations.CreateTerm(“Der Palast des Blutkaisers”, lcid, Guid.NewGuid());
locations.CreateTerm(“Die Netze des Schicksals”, lcid, Guid.NewGuid());
locations.CreateTerm(“Die Prophezeiung des Kartun”, lcid, Guid.NewGuid());

context.ExecuteQuery();
Console.WriteLine(“Books created!”);
}

Grundsätzlich ist das Beispiel fehlerfrei. Die Fehlermeldung selbst tritt aufgrund des Client Side Object Models (CSOM) erst bei context.ExecutQuery() auf. Die Exception zeigt aber an, dass die Methode GetTaxonomySession(…) sich irgendwie nicht so verhält, wie man erwarten würde.

Der Grund dafür ist bei den Properties des Managed Meta Data Services zu suchen. Wechselt man also in der Central Administration zum “Application Management” und von dort zu “Manage service applications”, muss man den Eintrag für die “Managed Metadata Service Connection” auswählen und anschließend im Ribbon auf “Properties” klicken.

Hinweis: Falls das mit dem Browser direkt am Server gemacht wird, bitte nicht vergessen diesen “als Administrator” ausführen.

SharePoint 2013 Bloglog, MMS Connection (HATAHET)

Nach dem Klick auf “Properties” erscheint folgender Dialog.

SharePoint 2013 Bloglog, MMD Connection Properties (HATAHET)

Es muss sichergestellt sein, dass die Einstellung “This service application is the default storage location for column specific term sets.” aktiv ist. Dann klappt auch der Zugriff per CSOM (und natürlich gilt dies auch für JSOM).

Published: 05.12.2014 07:52

Source: New feed

Tags : DevelopmentTermstore
Michael König

The author Michael König

Michael König ist leidenschaftlicher Informatiker. Er ist als Leiter einer Development-Abteilung sowie als Lead Developer und Application Architect tätig. Michael bringt 20 Jahre Berufserfahrung im Bereich der Software-Entwicklung und im IT-Consulting mit. Seit mehr als 10 Jahren beschäftigt er sich intensiv mit den Microsoft SharePoint-Technologien und ist in diesem Segment vorrangig auf die Software-Entwicklung, Erweiterung und Individualisierung von SharePoint spezialisiert. Heute beschäftigt sich Michael mit den neuen Möglichkeiten von SharePoint Online und On-Premises, Office 365 und Microsoft Azure. Die Themen Bots, Cognitive Services und Machine Learning auf Basis von Microsoft-Technologien gehören hier ebenfalls dazu.

Leave a Response