SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




CSOM | Zu einer SubSiteListe eine SiteCollectionSiteColumn hinzufügen

Unbeantwortet Dieser Beitrag hat 0 Antworten

Ohne Rang
4 Beiträge
SP2013JL erstellt 11 Feb. 2014 16:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

folgener Aufbau der SharePoint-Struktur:

- Ich habe eine SiteCollection

- In dieser SiteCollection gibt es SiteColumns

- In dieser SiteCollection gibt es eine SubSite

  - In der SubSite gibt es eine Liste (CustomList)

 

Problem:
Ich möchte mit CSOM der Liste die in der SubSite lebt eine SiteColumn (von ganz oben) hinzufügen. Dabei kommt jedes mal folgender Error auf: "Message: The object is used in the context different from the one associated with the object.". Ist die SiteColumn auf der selbenen Ebene wie die Liste, funktioniert der folgende Code. Sind die Ebenen zwischen Liste und SiteColumn unterschiedlich gibt es Probleme mit dem ClientContext. Hat jemand eine Idee wie das Problem gelöst warden kann?

Hier der Code:

public static void AddSiteColumnToList(ClientContext clientContext, string listUrl, string fieldInternalName)

{

 List newList = OMLists.GetListByUrl(clientContext,listUrl);
 Field field = OMFields.GetSiteColumnByInternalName(clientContext, fieldInternalName);

 if (field == null) {
  ClientContext cxt = new ClientContext(cfg.AppSettings["SiteCollectionUrl"]);
  field = OMFields.GetSiteColumnByInternalName(cxt, fieldInternalName);
 }

 if (newList!=null && field != null) {
  Console.WriteLine(string.Format("Adding Site Column {0} to {1}", fieldInternalName, listUrl));
  newList.Fields.Add(field); clientContext.ExecuteQuery();
 } else {
  ConsoleWrapper.WriteWarning(string.Format("Unable to find List or field. {0},{1}", listUrl, fieldInternalName));
 }

}