Utwórz pełną kopię istniejącego projektu z konfigurowalnymi opcjami dotyczącymi tego, co ma być uwzględnione.


Skopiuj projekt

Mutacja kopiowania projektu pozwala na duplikację istniejącego projektu w tej samej firmie lub w innej firmie. Jest to przydatne do tworzenia szablonów projektów, konfigurowania podobnych projektów lub przenoszenia projektów między firmami. Operacja kopiowania działa asynchronicznie, aby efektywnie obsługiwać duże projekty.

Podstawowy przykład

mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "New Project Copy"
      options: {
        todos: true
        todoLists: true
        people: true
      }
    }
  )
}

Zaawansowany przykład

mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "Q2 Marketing Campaign"
      description: "Copy of Q1 campaign with updated timeline"
      imageURL: "https://example.com/campaign-logo.png"
      companyId: "comp_789xyz"
      options: {
        assignees: true
        automations: true
        checklists: true
        customFields: true
        discussions: false
        discussionComments: false
        dueDates: true
        files: true
        forms: true
        people: true
        projectUserRoles: true
        statusUpdates: false
        statusUpdateComments: false
        tags: true
        todoActions: true
        todoComments: false
        todoLists: true
        todos: true
      }
    }
  )
}

Parametry wejściowe

CopyProjectInput

Parametr Typ Wymagany Opis
projectId String! ✅ Tak ID projektu do skopiowania
name String! ✅ Tak Nazwa nowego projektu (maks. 50 znaków)
description String Nie Opis nowego projektu (maks. 500 znaków)
imageURL String Nie URL obrazu dla nowego projektu
companyId String Nie ID firmy, w której powinien zostać utworzony nowy projekt. Jeśli nie podano, używa firmy projektu źródłowego
options CopyProjectOptionsInput! ✅ Tak Konfiguracja dotycząca tego, jakie elementy mają być kopiowane

CopyProjectOptionsInput

Parametr Typ Wymagany Opis
assignees Boolean Nie Kopiuj przypisania zadań (wymaga people: true)
automations Boolean Nie Kopiuj automatyzacje i przepływy pracy projektu
checklists Boolean Nie Kopiuj listy kontrolne zadań
customFields Boolean Nie Kopiuj definicje i wartości pól niestandardowych
discussions Boolean Nie Kopiuj dyskusje projektu
discussionComments Boolean Nie Kopiuj komentarze do dyskusji (wymaga discussions: true)
dueDates Boolean Nie Kopiuj terminy zadań
files Boolean Nie Kopiuj załączniki plików
forms Boolean Nie Kopiuj formularze projektu
people Boolean Nie Kopiuj członków projektu
projectUserRoles Boolean Nie Kopiuj role i uprawnienia użytkowników (wymaga people: true)
statusUpdates Boolean Nie Kopiuj aktualizacje statusu projektu
statusUpdateComments Boolean Nie Kopiuj komentarze do aktualizacji statusu (wymaga statusUpdates: true)
tags Boolean Nie Kopiuj tagi projektu
todoActions Boolean Nie Kopiuj działania/subzadania zadań
todoComments Boolean Nie Kopiuj komentarze do zadań
todoLists Boolean Nie Kopiuj listy/sekcje zadań
todos Boolean Nie Kopiuj zadania
coverConfig Boolean Nie Kopiuj konfigurację okładki zadania

Odpowiedź

Mutacja zwraca wartość Boolean:

  • true - Zadanie kopiowania zostało pomyślnie dodane do kolejki
  • false - Nie udało się rozpocząć zadania kopiowania

Sprawdzanie statusu kopiowania

Ponieważ kopiowanie jest asynchroniczne, użyj zapytania copyProjectStatus, aby sprawdzić postęp:

Pola statusu kopiowania

Pole Typ Opis
queuePosition Int Pozycja w kolejce kopiowania
totalQueues Int Łączna liczba elementów w kolejce
isActive Boolean Czy operacja kopiowania jest obecnie aktywna
oldProject Project Projekt źródłowy, który jest kopiowany
newProjectName String Nazwa nowego projektu, który jest tworzony
isTemplate Boolean Czy to kopiowanie jako szablon
oldCompany Company Firma źródłowa
newCompany Company Firma docelowa
query CheckCopyStatus {
  copyProjectStatus {
    queuePosition
    totalQueues
    isActive
    oldProject {
      id
      name
    }
    newProjectName
    isTemplate
    oldCompany {
      id
      name
    }
    newCompany {
      id
      name
    }
  }
}

Wymagane uprawnienia

Aby skopiować projekt, potrzebujesz odpowiednich uprawnień w obu lokalizacjach źródłowej i docelowej:

Scenariusz Wymagane uprawnienia
Copy within same company OWNER, ADMIN, or MEMBER role in the source project
Copy to different company OWNER, ADMIN, or MEMBER role in the source project
• Must be a member of the target company

Projekt źródłowy musi być aktywny (niearchiwalny), aby mógł zostać skopiowany.

Odpowiedzi błędów

Projekt nie znaleziony

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Występuje, gdy projekt źródłowy nie istnieje lub brakuje dostępu.

Firma nie znaleziona

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

Występuje, gdy firma docelowa nie istnieje lub brakuje dostępu.

Projekt zbyt duży

{
  "errors": [{
    "message": "Project is too large to copy",
    "extensions": {
      "code": "CREATE_PROJECT_LIMIT"
    }
  }]
}

Występuje, gdy projekt ma więcej niż 250 000 zadań.

Kopiowanie już w toku

{
  "errors": [{
    "message": "Oops!"
  }]
}

Występuje, gdy masz już w toku operację kopiowania.

Ważne uwagi

  • Operacja asynchroniczna: Mutacja dodaje zadanie w tle do kolejki i natychmiast zwraca wynik. Użyj copyProjectStatus, aby śledzić postęp.
  • Jedna kopia na raz: Tylko jedna operacja kopiowania na użytkownika może być aktywna w danym czasie.
  • Ograniczenia rozmiaru: Projekty z więcej niż 250 000 zadań nie mogą być kopiowane.
  • Zależności logiczne: Niektóre opcje najlepiej działają razem:
    • assignees działa z people: true (przypisania nie będą kopiowane bez osób)
    • discussionComments działa z discussions: true
    • statusUpdateComments działa z statusUpdates: true
    • projectUserRoles działa z people: true
  • Przetwarzanie nazw: Nazwy projektów są przycinane, a wszelkie adresy URL są automatycznie usuwane.
  • Priorytet kolejki: Klienci korporacyjni otrzymują wyższy priorytet w kolejce kopiowania.
  • Buforowanie statusu: Status kopiowania jest buforowany przez 6 godzin po zakończeniu.

Asystent AI

Odpowiedzi są generowane przy użyciu sztucznej inteligencji i mogą zawierać błędy.

Jak mogę Ci pomóc?

Zapytaj mnie o cokolwiek dotyczącego Blue lub tej dokumentacji.

Wciśnij Enter, aby wysłać • Shift+Enter, aby dodać nową linię • ⌘I, aby otworzyć