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

Leave a Response

Diese Seite ist durch reCAPTCHA und Google geschütztDatenschutz-Bestimmungen UndNutzungsbedingungen anwenden.