Um Daten von einem SharePoint-Web in ein anderes SharePoint-Web zu transportieren, habe ich ein kleines Tool erstellt, mit dem der Inhalt einer Liste oder Bibliothek in eine XML-Datei exportiert werden kann. Hierbei werden alle Attribute eines Listeneintrags mitgenommen, auch wenn sie auf readonly gesetzt sind.
Das gleiche Tool bietet mir die Möglichkeit, die Daten wieder zu importieren, wobei auch eine Mapping-Tabelle angegeben werden kann, wenn Feldnamen geändert wurden. Die Performance ist zwar nicht berauschend, aber man kann ja nicht alles haben. Mit diesem Tool haben wir unsere SharePoint-Installation von v2.0 nach v3.0 umgestellt.
Eines ist bei einem solchen Import sehr unschön: die Information, wann ein Eintrag erstellt wurde, und durch wen er erstellt wurde wird von SharePoint automatisch gefüllt. Die Felder sind readonly, und auch wenn das readonly-Attribut an den betreffenden Feldern umgestellt wird, schreibt SharePoint gnadenlos seine Informationen in die Felder. Damit kann ich zwar schön sehen wann ich importiert habe, aber als Ersteller ist jetzt auch immer der Administrator eingetragen. Wenn die Entstehung der Daten zurückverfolgt werden soll, dann ist diese Arbeitsweise sehr störend.
Ich werde noch ein wenig darüber nachdenken, aber ich glaube im Moment, dafür gibt es keine vernünftige Lösung (außer direkt in die Datenbank zu schreiben, was ich eigentlich vermeiden will).