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.




System bzw. Basisspalte auf Root Ebene vergeigt - wie StaticName in allen Listen ändern

Unbeantwortet Dieser Beitrag hat 5 Antworten

Ohne Rang
4 Beiträge
Andreas Mohr erstellt 19 Apr. 2011 16:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

In unserem Sharpoint 2007 System wurd offensichtlich die System / Basistpalte Titel vergeigt. Der Wert für  "StaticName" für die Title Felder ist ab Root Ebene mit einem zusätzlichen Leerzeichen versehen (Ascii 255).

Das Problem: wir wollen auf Sharepoint 2010 migrieren. Vorher muss der Wert geradegezogen werden, da wir das Webpart für Inhaltsabfragen . intensiv einsetzen möchten. Ab 2010 können für dieses Webpart weitere Spalten angeben werden, bisher gab es nur eine dürftige Reihe von vordefinierten Feldzusammenstellungen. Leider akzeptiert das Webpart für Inhaltsabfragen in SP 2010 das Leerzeichen am Ende der Spaltenbezeichnung nicht - der Wert wird grundsätzlich um Leerzeichen bereinigt, die vor oder hinter dem Spaltennamen eingegeben werden. Somit kann unser Titel Feld im Webpart nicht verwendet werden. Was natürlich ein echtes Killer Kriterium ist...

Ich sehe es sooderso als absolut nötig an, diesen Umstand geradezuziehen und erhoffe mir, dass es eine Methode gibt den Wert für die Spalte "StaticName" in sämtlichen Listen zu ersetzen. 

Und ich meine nicht mit dem Sharepoint Manager den Wert in allen Listen manuell zu ändern. Wir haben richtig viele Listen und in allen ist der falsche StaticName hinterlegt...

Wie kann ich das Bewerkstelligen?

Danke im Voraus für jeden nützlichen Hinweis
...

 Hat keiner einer Idee?

Alle Antworten

Ohne Rang
4 Beiträge
Andreas Mohr Als Antwort am 20 Apr. 2011 10:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

...würde vielleicht schon helfen zu wissen, ob die Konfiguration der Spalten in XML Konfigurationsdateien gespeichert werden oder in der Datenbank... dann könnte ich eventuell mit einem Replace an die Sache rangehen...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Apr. 2011 10:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das steht alles in der Datenbank, aber komme bitte nicht auf die Idee, dort direkt Änderungen zu machen!

Für solche Änderungen benutzt man das SharePoint-Objektmodell. Man könnte das mit einem kleinen .NET-Konsolenprogramm oder auch mit einem PowerShell-Script machen. Bei Änderungen am Staticname von Feldern wäre ich allerdings immer extrem vorsichtig - das kann unerwartete Probleme nach sich ziehen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
4 Beiträge
Andreas Mohr Als Antwort am 20 Apr. 2011 12:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen Dank für deine Antwort

Bei Änderungen am Staticname von Feldern wäre ich allerdings immer extrem vorsichtig - das kann unerwartete Probleme nach sich ziehen.

Jawohl, wie man an unserem Sharpoint System deutlich sieht hat das deutlich negative Auswirkungen. Wir haben ein Testsystem aufgesetzt und könnten dort die Änderung testen. Hast du mir vielleicht einen Hinweis, ob das in der Konfigurations- oder der Content  Datenbank hinterlegt wird, wie die Tabelle heißt... 

...oder - besser noch - wo ich ein How-To finde wie ich den StaticName Wert für eine Konkrete Basis oder System Spalten per PowerShel-Script ändern kann?  

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Apr. 2011 12:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andreas Mohr"]Hast du mir vielleicht einen Hinweis, ob das in der Konfigurations- oder der Content  Datenbank hinterlegt wird, wie die Tabelle heißt...[/quote]

In den Content-DBs. Den Tabellennamen weiß ich nicht. Und nochmal: bitte dort nichts ändern - anschauen ist erlaubt, anfassen nicht!!!

Der Code dazu sieht sinngemäß so aus (C#, PowerShell ist (noch) nicht so mein Ding):
SPSite site = new SPSite(http://server/site);
SPWeb web = site.OpenWeb();
SPList list = web.Lists["Liste"];
SPField field = list.Fields["Title"];
field.Staticname = "NeuerName";
field.Update();

Wenn man das für alle machen möchte, dann muß man eben alle Sites, alle Webs und alle Listen in Schleifen durchgehen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
4 Beiträge
Andreas Mohr Als Antwort am 20 Apr. 2011 12:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Super, damit kann ich zumindest mal loslegen und nun weiss ich auch in welche Richtung das geht. Ich habe jetzt auch meinen Kollegen angespitzt, der im Gegensatzt zu mir auch schon mal einen SP Developer Kurs belegt hat. Der soll mit mir das mit den Schleifen mal durchgehen. PowerShell Skripte würde ich jetzt auch mal zurückstellen, in VS kann man den produzierten Code  zumindest auch ordentlich verwalten.

Ich melde mich mit dem fertigen Code.