Skapa en fullständig kopia av en befintlig instrumentpanel inklusive alla diagram, segment och behörigheter
Den copyDashboard
mutation skapar en fullständig kopia av en befintlig instrumentpanel, inklusive alla diagram, diagramsegment, värden och användarbehörigheter. Denna operation utför en djup kopiering med nya unika identifierare för alla kopierade element.
Grundläggande exempel
Skapa en kopia av en instrumentpanel med en anpassad 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
}
}
}
}
Avancerat exempel
Kopiera en instrumentpanel utan att specificera en titel (lägger automatiskt till "(Kopia)"):
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
}
}
Indata parametrar
CopyDashboardInput
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
dashboardId |
String! | ✅ Ja | ID för instrumentpanelen som ska kopieras |
title |
String | Nej | Anpassad titel för den kopierade instrumentpanelen. Om ingen anges, läggs "(Kopia)" till den ursprungliga titeln |
Svarsfält
Dashboard Response
Mutation returnerar ett komplett Dashboard
objekt med alla kopierade data:
Fält | Typ | Beskrivning |
---|---|---|
id |
String! | Unik identifierare för den nya instrumentpanelen |
uid |
String! | Unik identifierare som används för URL-routing |
title |
String! | Titel på den kopierade instrumentpanelen |
createdBy |
User! | Den användare som utförde kopieringsoperationen |
company |
Company! | Företaget som instrumentpanelen tillhör (samma som originalet) |
project |
Project | Projektassociation (samma som originalet, om någon) |
charts |
[Chart!]! | Alla diagram kopierade från den ursprungliga instrumentpanelen |
dashboardUsers |
[DashboardUser!]! | Användarbehörigheter kopierade från originalet (exklusive kopieringsanvändaren) |
createdAt |
DateTime! | När kopian skapades |
updatedAt |
DateTime! | När kopian senast modifierades |
Beteende för kopiering av instrumentpanel
Djup kopieringsprocess
Den copyDashboard
operationen utför en fullständig djup kopiering inklusive:
-
Instrumentpanelmetadata
- Skapar en ny instrumentpanel med nytt ID och UID
- Kopierar titel (eller lägger till "(Kopia)" om ingen anpassad titel anges)
- Sätter skaparen till den användare som utför kopian
- Upprätthåller företags- och projektassociationer
-
Diagram och struktur
- Kopierar alla diagram med nya ID och UIDs
- Bevarar diagramtyper, titlar och positioner
- Upprätthåller diagramkonfiguration och metadata
-
Diagramsegment och värden
- Kopierar alla diagramsegment med nya ID och UIDs
- Bevarar segmenttitlar, formler och konfigurationer
- Kopierar alla diagramvärden och deras data
-
Formelreferenser
- Uppdaterar formelreferenser för att använda nya UIDs
- Upprätthåller formellogik och beräkningar
- Säkerställer att kopierade formler refererar till kopierade data
-
Användarbehörigheter
- Kopierar alla instrumentpanelens användarbehörigheter från originalet
- Exkluderar kopieringsanvändaren (de blir skaparen)
- Bevarar VIEWER och EDITOR rolltilldelningar
Post-kopieringsoperationer
Efter att kopian skapats, publicerar systemet automatiskt:
- Instrumentpanelens skapandehändelser för realtidsuppdateringar
- Utlöser diagramresultatberäkning för alla kopierade diagram
- Uppdaterar eventuella beroende system eller integrationer
Obligatoriska behörigheter
Kopiering av instrumentpanel kräver specifika behörigheter:
Roll | Kan kopiera instrumentpanel |
---|---|
Dashboard Creator | ✅ Ja |
Dashboard EDITOR | ✅ Ja |
Dashboard VIEWER | ❌ Nej |
Icke-instrumentpanelsanvändare | ❌ Nej |
Behörighetskontroll: Användaren måste ha EDITOR-åtkomst till den ursprungliga instrumentpanelen genom antingen:
- Vara den ursprungliga instrumentpanelens skapare
- Ha en uttrycklig EDITOR rolltilldelning på instrumentpanelen
Felmeddelanden
Instrumentpanel hittades inte
{
"errors": [{
"message": "Dashboard was not found.",
"extensions": {
"code": "DASHBOARD_NOT_FOUND"
}
}]
}
Otillräckliga behörigheter
{
"errors": [{
"message": "You don't have permission to access this dashboard",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Ogiltig indata
{
"errors": [{
"message": "Dashboard ID is required",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
Användningsfall
1. Mallinstrumentpaneler
Skapa mallinstrumentpaneler som kan kopieras för nya projekt eller team:
mutation CreateProjectDashboard {
copyDashboard(input: {
dashboardId: "template_dashboard_id"
title: "Project Alpha - Sales Dashboard"
}) {
id
title
}
}
2. Backup och versionering
Skapa säkerhetskopior innan betydande ändringar görs:
mutation BackupDashboard {
copyDashboard(input: {
dashboardId: "production_dashboard"
title: "Production Dashboard - Backup 2024-01-15"
}) {
id
title
createdAt
}
}
3. Delning mellan team
Kopiera instrumentpaneler mellan team samtidigt som datastukturen bevaras:
mutation ShareDashboardWithTeam {
copyDashboard(input: {
dashboardId: "marketing_dashboard"
title: "Marketing Dashboard - Sales Team Copy"
}) {
id
title
dashboardUsers {
role
user {
email
}
}
}
}
Bästa praxis
Namngivningskonventioner
- Använd beskrivande titlar som anger kopians syfte
- Inkludera teamnamn, datum eller versionsnummer för tydlighet
- Undvik generiska namn som "Kopia" eller "Ny instrumentpanel"
Behörighetsförvaltning
- Granska kopierade instrumentpanelers behörigheter efter skapande
- Lägg till eller ta bort användare vid behov för det specifika användningsfallet
- Överväg om visare behöver bli redigerare på kopian
Dataintegritet
- Verifiera att formler och beräkningar fungerar korrekt efter kopiering
- Kontrollera att datakällor för diagram är lämpliga för den nya kontexten
- Testa eventuella automatiserade rapporter eller integrationer
Prestandaöverväganden
- Kopiering av stora instrumentpaneler med många diagram kan ta flera sekunder
- Diagramberäkning sker asynkront efter kopieringen
- Överväg att kopiera under lågsäsong för mycket stora instrumentpaneler
- Övervaka systemresurser när flera instrumentpaneler kopieras samtidigt
Begränsningar
- Kan inte kopiera instrumentpaneler mellan olika företag
- Formelreferenser är begränsade till data inom samma företag
- Vissa externa integrationer kan behöva omkonfigurering
- Anpassade behörigheter eller roller kan behöva manuell justering
- Historiska data och analyser bevaras inte i kopian
Relaterade resurser
- Översikt över instrumentpaneler - Allmänna koncept för instrumentpaneler
- Byt namn på instrumentpanel - Ändra instrumentpaneltitlar
- Instrumentpanelsanvändare - Hantera instrumentpanelbehörigheter
- Diagram API - Arbeta med individuella diagram