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.




Sharepoint 2010 -alle Inhalte einer Spalte in einem Rutsch verändern-

Unbeantwortet Dieser Beitrag hat 0 Antworten

Ohne Rang
1 Beiträge
Wolfgang Hippler erstellt 29 Aug. 2013 16:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ganz entgegen allen Regeln habe ich eine Sharepoint-Anfrage direkt per Email an das Community Mitglied Andreas Fandrich gestellt. Ich hatte nicht daran gedacht, daß nur ich durch dieses Vorgehen von der Lösung profitiere. Deshalb diese ungewöhnliche Anfrage gleich mit der Antwort.

Meine Anfrage:

Ich möchte in allen Datensätzen in einer Spalte Änderungen vornehmen. In der Spalte "FileserverUrl" steht z.B. folgendes:  

file:///\\Serv1\AA-Hier1\0001%20-%20Kunde\Filiale-1\2004-01-22\Daten

wie jeder erkennen kann ein Link in ein Filesystem direkt zu den Daten des in Sharepoint gefundenen Kunden. Nun wurden die Server neu strukturiert  und ich möchte aus allen "Serv1"  "ab-cd-ef" machen.

file:///\\ab-cd-ef\AA-Hier1\0001%20-%20Kunde\Filiale-1\2004-01-22\Daten 

Bei den vorliegenden Datenmengen ist ein händisches Anpassen mittels Datenblattansicht und transferieren nach Excel und/oder anderen Hilfsprogrammen im höchsten Maße Zeit raubend.

Zu u.g. Lösungsvorschlag: Bei einem ersten Test meckerte er zwar noch das "in"  bei Foreach an. Ich denke aber, das ist lösbar. Natürlich bin ich nicht abgeneigt, wenn jemand auf Anhieb einen Tipp hat... 

Der Lösungsvorschlag von Andreas Fandrich: (danke nochmal)

Wenn Du Zugriff auf den Server hast gibt es aber einen schöneren Weg: man könnte dort ein kleines PowerShell-Script laufen lassen und die Änderungen damit erledigen.

Das Script kann ungefähr so aussehen (ungetestet):

Add-PSSnapin Microsoft.SharePoint.PowerShell $web = Get-SPWeb http://deinserver/sites/site1 $list = $web.Lists["NameDerBibliothek"] $items = $list.Items Foreach ($item in $items) {

    $text = $item["Feldname"]

    If ($text -ne $null) {

        $item["Feldname"] = $text.Replace("Serv1", "ab-cd-ef")

        $item.Update()

    }

Das Script sollte weitgehend selbsterklärend sein und natürlich mußt Du die URL und die Namen an Deine Verhältnisse anpassen.

Falls Du nicht die Möglichkeit hast, Code direkt auf dem Server auszuführen, kann man das so ähnlich auch mit dem Client Object Model realisieren und das dann auf einem beliebigen Client ausführen. Das überlasse ich dann aber Dir zur Übung...