Überblick
Die Funktion „Daten kopieren“ (Deep Clone) erstellt eine vollständige Kopie eines Datensatzes — inklusive aller verknüpften Unterentitäten. Typische Anwendungsfälle sind:
- Vorlagen duplizieren — z. B. ein Projekt-Template mit allen Aufgaben und Meilensteinen kopieren
- Daten in ein anderes Subsystem übertragen — Cross-Subsystem-Kopie mit automatischem ID-Remapping
- Saisonale Wiederholungen — z. B. einen Kurs mit allen Modulen und Blöcken für ein neues Semester anlegen
Der Kopiervorgang läuft als Hintergrund-Job und besteht aus zwei Phasen: Zunächst werden die Quelldaten gelesen und transformiert (neue IDs, Feld-Mappings), anschließend werden die Zieldaten per Batch-Save geschrieben.
Ein bestehendes Projekt soll mit allen Aufgaben, Meilensteinen und Zuweisungen kopiert werden. Der Projektname und das Startdatum sollen beim Kopieren angepasst werden können.
Schritt 1: Deep-Clone-Aktion im Dialog konfigurieren
Die Kopierfunktion wird als UDM-Job-Aktion auf einem Dialog konfiguriert. Der Endanwender löst später per Button-Klick den Kopiervorgang aus.
-
Dialog-Konfiguration öffnen
Öffnen Sie im Admin-Client die Konfiguration des Dialogs, von dem aus kopiert werden soll (z. B. der Projekt-Detail-Dialog).
-
Neue Job-Aktion anlegen
Erstellen Sie eine neue Aktion vom Typ „Daten kopieren“. Diese erscheint später als Button im Dialog.
-
Wurzel-Entity festlegen
Wählen Sie die Haupt-Entity (z. B.
Projekt) als Wurzel der Transformation. Von hier aus werden alle verknüpften Unterentitäten ermittelt.
Schritt 2: Klonbare Felder definieren (Feld-Mappings)
Für jede Entity legen Sie fest, wie die einzelnen Felder beim Kopieren behandelt werden. Die Zuordnung erfolgt über Feld-Mappings in der Transformationstabelle.
Verfügbare Mapping-Typen
| Typ | Beschreibung | Beispiel |
|---|---|---|
| 1:1 (Direct) | Wert wird unverändert aus dem Quelldatensatz übernommen | Projektbeschreibung, Status |
| Neue GUID (NewGuid) | Neue eindeutige ID wird generiert — für Primärschlüssel | ProjektId, AufgabeId |
| ID-Remap (IdRemap) | Fremdschlüssel wird auf die neu generierte ID des referenzierten Datensatzes umgeschrieben | Aufgabe.ProjektId → neue ProjektId |
| Konstante (Constant) | Fester Wert wird geschrieben | Status = „Entwurf“ |
| Kontext (FromContext) | Wert wird aus der Dialog-Eingabe des Anwenders übernommen | Neues Startdatum, neuer Projektname |
Schritt 3: Verhalten für Unterentitäten festlegen
In der Transformationstabelle definieren Sie, welche verknüpften Tabellen mitkopiert werden sollen. Jede Zeile repräsentiert ein Mapping von einer Quell- auf eine Ziel-Entity.
| Option | Beschreibung |
|---|---|
| Quell-Entity | Die Tabelle, aus der die Daten gelesen werden (z. B. Aufgabe) |
| Ziel-Entity | Die Tabelle, in die geschrieben wird — in der Regel identisch mit der Quelle |
| Reihenfolge | Bestimmt die Verarbeitungsreihenfolge — Eltern-Entities müssen vor Kind-Entities stehen |
| Root-Filter | Schränkt die Quelldaten ein (z. B. nur Aufgaben des aktuellen Projekts) |
| Transaktion | Wenn aktiviert, werden alle Daten atomar gespeichert (Alles-oder-nichts) |
| Ziel-Subsystem | Ermöglicht Cross-Subsystem-Kopien — Daten werden in ein anderes Subsystem geschrieben |
In unserem Beispiel: Das Projekt-Template hat drei Unterentitäten, die mitkopiert werden:
| # | Quell-Entity | Ziel-Entity | Felder |
|---|---|---|---|
| 10 | Projekt | Projekt | 5 (inkl. NewGuid für PK, FromContext für Name) |
| 20 | Meilenstein | Meilenstein | 4 (inkl. IdRemap für ProjektId) |
| 30 | Aufgabe | Aufgabe | 6 (inkl. IdRemap für ProjektId und MeilensteinId) |
| 40 | Zuweisung | Zuweisung | 3 (inkl. IdRemap für AufgabeId) |
Schritt 4: PostExecutionDialog für Nachbearbeitung einrichten
Optional kann ein Nach-Klon-Dialog konfiguriert werden, der nach erfolgreichem Kopieren automatisch geöffnet wird. So kann der Anwender den neuen Datensatz direkt bearbeiten.
-
Nach-Klon-Dialog auswählen
Im Kopfbereich der Konfiguration wählen Sie unter „Nach-Klon-Dialog“ den Dialog aus, der nach dem Kopieren geöffnet werden soll.
-
Navigation prüfen
Der Dialog öffnet sich automatisch mit dem neu erstellten Datensatz. Der Anwender kann dort z. B. den Projektnamen finalisieren oder das Startdatum anpassen.
Vorschau (Dry-Run)
Bevor Sie die Konfiguration produktiv einsetzen, können Sie eine Vorschau ausführen. Diese führt den gesamten Lese- und Transformationsprozess durch, ohne Daten zu schreiben.
Die Vorschau zeigt:
- Statistik — Anzahl gelesener, gefilterter und transformierter Datensätze pro Entity
- Quelldaten — die gelesenen Originaldatensätze
- Zieldaten — die transformierten Datensätze mit neuen IDs, remappten Fremdschlüsseln und Kontextwerten
Konfigurationsoptionen im Überblick
| Option | Beschreibung | Standard |
|---|---|---|
| Wurzel-Entity | Die Haupt-Entity, von der die Kopie ausgeht | — |
| Ziel-Subsystem | Für Cross-Subsystem-Kopien; wenn leer, wird in das gleiche Subsystem geschrieben | Gleich wie Quelle |
| Transaktion | Alle Daten werden atomar gespeichert — bei Fehler wird nichts geschrieben | Aktiviert |
| Root-Filter | Filtert die Quelldaten auf den aktuellen Datensatz (z. B. ProjektId) | — |
| Nach-Klon-Dialog | Dialog, der nach erfolgreichem Kopieren mit dem neuen Datensatz geöffnet wird | Keiner |
| Feld-Mappings | Zuordnung der einzelnen Felder: Direct, NewGuid, IdRemap, Constant, FromContext | — |
Häufige Fragen
| Frage | Antwort |
|---|---|
| Kann ich Daten in ein anderes Subsystem kopieren? | Ja. Konfigurieren Sie das Ziel-Subsystem im Kopfbereich der Transformation. Quell- und Ziel-Entity können unterschiedlichen Subsystemen angehören. |
| Was passiert mit Fremdschlüsseln? | Fremdschlüssel werden per ID-Remap automatisch auf die neu generierten IDs umgeschrieben. Die Beziehungsstruktur bleibt erhalten. |
| Kann der Anwender vor dem Kopieren Werte eingeben? | Ja. Verwenden Sie den Mapping-Typ „Kontext“ (FromContext). Die Werte werden aus den Formularfeldern des auslösenden Dialogs übernommen. |
| In welcher Reihenfolge müssen die Mappings stehen? | Eltern-Entities müssen vor Kind-Entities stehen, damit deren neue IDs beim Remap der Fremdschlüssel verfügbar sind. |
| Kann ich die Konfiguration testen, ohne Daten zu schreiben? | Ja. Nutzen Sie den Vorschau-Tab (Dry-Run). Dort sehen Sie die transformierten Daten, bevor etwas geschrieben wird. |
| Was passiert bei einem Fehler während des Kopiervorgangs? | Wenn „Transaktion“ aktiviert ist, wird bei einem Fehler nichts geschrieben (Alles-oder-nichts). Ohne Transaktion werden bereits geschriebene Daten beibehalten. |
Datensatz kopieren im UserClient
Neben der konfigurierbaren Kopier-Transformation (DeepClone) steht Anwendern auch eine direkte Kopierfunktion zur Verfügung. Ein Datensatz kann mit einem Klick dupliziert und sofort als neuer Datensatz bearbeitet werden.
Kopieren aus dem Dialog
- Öffnen Sie einen Datensatz im Dialog.
- Klicken Sie in der Toolbar auf „Kopieren“.
- Es wird eine Kopie aller Feldwerte erstellt. Der Primärschlüssel wird geleert — der Datensatz wird als Neuanlage behandelt.
- Passen Sie die gewünschten Felder an und speichern Sie.
Kopieren aus der Tabellenansicht
- Klicken Sie mit der rechten Maustaste auf eine Zeile im Grid.
- Wählen Sie im Kontextmenü „Kopieren“.
- Der neue Datensatz wird im Dialog geöffnet und kann bearbeitet werden.
Voraussetzungen
| Einstellung | Beschreibung |
|---|---|
| Admin-Konfiguration | Die Funktion muss pro Dialog über die Checkbox „Kopieren erlaubt“ aktiviert werden. |
| Berechtigungen | Der Anwender benötigt sowohl Bearbeitungs- als auch Neuanlage-Berechtigung für den Dialog. |