Add column mapping defaults functionality and example JSON file
This commit is contained in:
40
README.md
40
README.md
@@ -28,6 +28,7 @@ Import-Module SharePointServer
|
||||
|
||||
- `Start-SPMigration.ps1`: Hauptskript fuer Export und optionalen Import
|
||||
- `FieldMapping.sample.csv`: altes CSV-Beispiel fuer Feldmapping, weiterhin als Fallback lesbar
|
||||
- `column-mapping-defaults.sample.json`: Beispiel fuer wiederverwendbare Column-Mapping-Defaults
|
||||
|
||||
## Exportierte Struktur
|
||||
|
||||
@@ -164,6 +165,42 @@ Fuer das Mapping ist vor allem relevant:
|
||||
|
||||
Wenn eine Ziel-Liste oder Ziel-Bibliothek nicht existiert, gibt das Skript eine Warnung aus, dass dieser Container manuell angelegt werden soll.
|
||||
|
||||
## Column Mapping Defaults
|
||||
|
||||
Wenn Bibliotheks- und Listen-Mappings je Migration unterschiedlich sind, die Spalten-Mappings aber gleich bleiben, kann die GUI eine separate Column-Defaults-Datei verwenden.
|
||||
|
||||
- Die `MappingTable.json` bleibt migrationsspezifisch und enthaelt weiterhin `LibraryMappings`, `ListMappings` und die konkret angewendeten `MetadataColumnMappings`.
|
||||
- Die Defaults-Datei enthaelt nur wiederverwendbare Spaltenregeln unter `Rules`.
|
||||
- In der GUI kann ein Defaults-Pfad im Feld `ColumnDefaults` gepflegt werden. Nach einem Export werden vorhandene Defaults automatisch auf die frisch geladene `MappingTable.json` angewendet und gespeichert.
|
||||
- Mit `Anwenden` koennen Defaults erneut auf die aktuelle MappingTable gelegt werden. Danach bleiben manuelle Anpassungen pro Migration weiterhin moeglich.
|
||||
- Mit `Speichern` erzeugt die GUI aus den aktuellen Column-Mappings ein Defaults-Template. Gleichartige Spalten werden dabei auf `ContainerSourceTitle = "*"` generalisiert; widerspruechliche Regeln bleiben container-spezifisch.
|
||||
|
||||
Regeln werden von spezifisch nach allgemein angewendet:
|
||||
|
||||
- `ObjectType + ContainerSourceTitle + SourceInternalName`
|
||||
- `ObjectType + * + SourceInternalName`
|
||||
- `* + ContainerSourceTitle + SourceInternalName`
|
||||
- `* + * + SourceInternalName`
|
||||
|
||||
Beispiel:
|
||||
|
||||
```json
|
||||
{
|
||||
"SchemaVersion": 1,
|
||||
"TemplateType": "ColumnMappings",
|
||||
"Rules": [
|
||||
{
|
||||
"ObjectType": "*",
|
||||
"ContainerSourceTitle": "*",
|
||||
"SourceInternalName": "SecurityClearance",
|
||||
"TargetInternalName": "GMNSecurityClearance",
|
||||
"ImportSupported": true
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Parameter
|
||||
|
||||
### Pflichtparameter
|
||||
@@ -196,6 +233,7 @@ Hinweis:
|
||||
- Wenn `Overwrite` nicht gesetzt ist und eine Datei bereits existiert, wird bei aktiver Versionierung eine neue Version geschrieben; ohne Versionierung wird die Datei uebersprungen.
|
||||
- Nicht importierbare Systemfelder wie `Attachments`, `Created`, `Modified`, `Author` oder `Editor` werden automatisch aus der MappingTable herausgehalten bzw. beim Import uebersprungen.
|
||||
- Vor dem Speichern prueft das Skript fehlende Pflichtfelder. Wenn ein einzelnes Listen- oder Datei-Metadatenobjekt trotzdem nicht gespeichert werden kann, wird es mit Kontext-Warnung uebersprungen und der Import laeuft weiter.
|
||||
- Beim Listenimport legt das Skript bei Bedarf ein verstecktes Textfeld `StartSPMigrationSourceUniqueId` in der Zielliste an. Wiederholte Imports aktualisieren damit vorhandene Elemente anhand der exportierten Source-`UniqueId` statt sie erneut anzulegen.
|
||||
|
||||
## Beispiele
|
||||
|
||||
@@ -270,7 +308,7 @@ Anschliessend:
|
||||
|
||||
### Listen
|
||||
|
||||
- Listeneintraege werden neu angelegt.
|
||||
- Listeneintraege werden neu angelegt oder bei erneutem Import ueber `StartSPMigrationSourceUniqueId` wiedergefunden und aktualisiert.
|
||||
- Feldwerte werden ueber `FieldValues`, `FieldTextValues` und `MetadataColumnMappings` gemappt.
|
||||
|
||||
## Bekannte Einschraenkungen
|
||||
|
||||
Reference in New Issue
Block a user