Erstellen Sie eine vollständige Kopie eines bestehenden Dashboards, einschließlich aller Diagramme, Segmente und Berechtigungen
Die copyDashboard
Mutation erstellt eine vollständige Kopie eines bestehenden Dashboards, einschließlich aller Diagramme, Diagrammsegmente, Werte und Benutzerberechtigungen. Diese Operation führt eine tiefe Kopie mit neuen eindeutigen Identifikatoren für alle kopierten Elemente durch.
Grundlegendes Beispiel
Erstellen Sie eine Kopie eines Dashboards mit einem benutzerdefinierten Titel:
mutation CopyDashboard {
copyDashboard(input: {
dashboardId: "dashboard_123"
title: "Q4 Sales Dashboard Copy"
}) {
id
title
createdAt
charts {
id
title
chartType
}
dashboardUsers {
id
role
user {
id
email
}
}
}
}
Fortgeschrittenes Beispiel
Kopieren Sie ein Dashboard, ohne einen Titel anzugeben (automatisch wird "(Kopie)" angehängt):
mutation CopyDashboardAuto {
copyDashboard(input: {
dashboardId: "dashboard_456"
}) {
id
uid
title
createdBy {
id
email
}
company {
id
name
}
charts {
id
title
chartType
position
chartSegments {
id
title
formula
chartValues {
id
value
}
}
}
dashboardUsers {
id
role
user {
id
email
fullName
}
}
createdAt
updatedAt
}
}
Eingabeparameter
CopyDashboardInput
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
dashboardId |
String! | ✅ Ja | ID des zu kopierenden Dashboards |
title |
String | Nein | Benutzerdefinierter Titel für das kopierte Dashboard. Wenn nicht angegeben, wird "(Kopie)" zum ursprünglichen Titel hinzugefügt |
Antwortfelder
Dashboard-Antwort
Die Mutation gibt ein vollständiges Dashboard
Objekt mit allen kopierten Daten zurück:
Feld | Typ | Beschreibung |
---|---|---|
id |
String! | Eindeutiger Identifikator für das neue Dashboard |
uid |
String! | Eindeutiger Identifikator, der für die URL-Routing verwendet wird |
title |
String! | Titel des kopierten Dashboards |
createdBy |
User! | Der Benutzer, der die Kopieroperation durchgeführt hat |
company |
Company! | Das Unternehmen, dem das Dashboard gehört (gleich wie das Original) |
project |
Project | Projektzuordnung (gleich wie das Original, falls vorhanden) |
charts |
[Chart!]! | Alle Diagramme, die vom ursprünglichen Dashboard kopiert wurden |
dashboardUsers |
[DashboardUser!]! | Benutzerberechtigungen, die vom Original kopiert wurden (außer dem kopierenden Benutzer) |
createdAt |
DateTime! | Wann die Kopie erstellt wurde |
updatedAt |
DateTime! | Wann die Kopie zuletzt geändert wurde |
Verhalten beim Kopieren von Dashboards
Tiefer Kopierprozess
Die copyDashboard
Operation führt eine vollständige tiefe Kopie durch, einschließlich:
-
Dashboard-Metadaten
- Erstellt ein neues Dashboard mit neuer ID und UID
- Kopiert den Titel (oder hängt "(Kopie)" an, wenn kein benutzerdefinierter Titel angegeben ist)
- Setzt den Ersteller auf den Benutzer, der die Kopie durchführt
- Beibehaltung der Unternehmens- und Projektzuordnungen
-
Diagramme und Struktur
- Kopiert alle Diagramme mit neuen IDs und UIDs
- Bewahrt Diagrammtypen, Titel und Positionen
- Beibehaltung der Diagrammkonfiguration und Metadaten
-
Diagrammsegmente und Werte
- Kopiert alle Diagrammsegmente mit neuen IDs und UIDs
- Bewahrt Segmenttitel, Formeln und Konfigurationen
- Kopiert alle Diagrammwerte und deren Daten
-
Formelreferenzen
- Aktualisiert Formelreferenzen, um neue UIDs zu verwenden
- Beibehaltung der Formel-Logik und Berechnungen
- Stellt sicher, dass kopierte Formeln auf kopierte Daten verweisen
-
Benutzerberechtigungen
- Kopiert alle Benutzerberechtigungen des Dashboards vom Original
- Schließt den kopierenden Benutzer aus (er wird zum Ersteller)
- Bewahrt die Rollenzuweisungen VIEWER und EDITOR
Nach-Kopie-Operationen
Nach der Erstellung der Kopie veröffentlicht das System automatisch:
- Ereignisse zur Erstellung des Dashboards für Echtzeit-Updates
- Auslösung der Neuberechnung der Diagrammergebnisse für alle kopierten Diagramme
- Aktualisierung aller abhängigen Systeme oder Integrationen
Erforderliche Berechtigungen
Das Kopieren von Dashboards erfordert spezifische Berechtigungen:
Rolle | Kann Dashboard kopieren |
---|---|
Dashboard Creator | ✅ Ja |
Dashboard EDITOR | ✅ Ja |
Dashboard VIEWER | ❌ Nein |
Nicht-Dashboard-Benutzer | ❌ Nein |
Berechtigungsprüfung: Der Benutzer muss EDITOR-Zugriff auf das ursprüngliche Dashboard haben, entweder durch:
- Der ursprüngliche Ersteller des Dashboards zu sein
- Eine explizite EDITOR-Rollen-Zuweisung auf dem Dashboard zu haben
Fehlerantworten
Dashboard nicht gefunden
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
Unzureichende Berechtigungen
{
"errors": [{
"message": "You don't have permission to access this dashboard",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Ungültige Eingabe
{
"errors": [{
"message": "Dashboard ID is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Anwendungsfälle
1. Vorlagen-Dashboards
Erstellen Sie Vorlagen-Dashboards, die für neue Projekte oder Teams kopiert werden können:
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. Backup und Versionierung
Erstellen Sie Backups, bevor Sie wesentliche Änderungen vornehmen:
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. Teamübergreifendes Teilen
Kopieren Sie Dashboards zwischen Teams, während die Datenstruktur beibehalten wird:
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
Best Practices
Benennungsrichtlinien
- Verwenden Sie beschreibende Titel, die den Zweck der Kopie anzeigen
- Fügen Sie Teamnamen, Daten oder Versionsnummern zur Klarheit hinzu
- Vermeiden Sie generische Namen wie "Kopie" oder "Neues Dashboard"
Berechtigungsmanagement
- Überprüfen Sie die Berechtigungen des kopierten Dashboards nach der Erstellung
- Fügen Sie Benutzer nach Bedarf für den spezifischen Anwendungsfall hinzu oder entfernen Sie sie
- Überlegen Sie, ob Zuschauer zu Editoren der Kopie werden müssen
Datenintegrität
- Überprüfen Sie, ob Formeln und Berechnungen nach dem Kopieren korrekt funktionieren
- Stellen Sie sicher, dass die Datenquellen der Diagramme für den neuen Kontext geeignet sind
- Testen Sie alle automatisierten Berichte oder Integrationen
Leistungsüberlegungen
- Das Kopieren großer Dashboards mit vielen Diagrammen kann mehrere Sekunden dauern
- Die Neuberechnung der Diagramme erfolgt asynchron nach der Kopie
- Ziehen Sie in Betracht, während der Nebenzeiten für sehr große Dashboards zu kopieren
- Überwachen Sie die Systemressourcen, wenn mehrere Dashboards gleichzeitig kopiert werden
Einschränkungen
- Dashboards können nicht über verschiedene Unternehmen hinweg kopiert werden
- Formelreferenzen sind auf Daten innerhalb desselben Unternehmens beschränkt
- Einige externe Integrationen müssen möglicherweise neu konfiguriert werden
- Benutzerdefinierte Berechtigungen oder Rollen müssen möglicherweise manuell angepasst werden
- Historische Daten und Analysen werden in der Kopie nicht beibehalten
Verwandte Ressourcen
- Dashboard-Übersicht - Allgemeine Dashboard-Konzepte
- Dashboard umbenennen - Ändern Sie Dashboard-Titel
- Dashboard-Benutzer - Verwalten Sie Dashboard-Berechtigungen
- Charts API - Arbeiten Sie mit einzelnen Diagrammen