Zum Hauptinhalt springen

Aufgaben

Die Task-Entität (intern ApiTask / TaskItem) repräsentiert Aufgaben innerhalb eines Projekts. Über die OData-API können Sie Aufgaben erstellen, aktualisieren, löschen sowie Stapelverarbeitung, Mitwirkende, Stoppuhr-Funktionen und Kalendersynchronisation nutzen.

OData-Endpunktbasis

Alle Endpunkte verwenden den Basispfad /odata/Task. Für die abgeflachte Listenansicht steht /odata/DynamicTaskItem zur Verfügung.


Datenmodell

PropertyTypeDescription
TaskItemIdGuid (UUID)Eindeutiger Bezeichner der Aufgabe (Primärschlüssel).
Namestring?Name der Aufgabe.
TaskItemStatusIdGuid?Status der Aufgabe (Fremdschlüssel zur Statusdefinition).
ContactIdGuid?Zugewiesener Kontakt (Verantwortlicher).
ProjectIdGuid?Zugehöriges Projekt.
PlanningIdGuid?Verknüpftes Planungselement.
GroupIdGuidAufgabengruppe.
StartDateTimeDateTimeOffset?Startdatum und -uhrzeit.
EndDateTimeDateTimeOffset?Enddatum und -uhrzeit.
IsDonebooleanGibt an, ob die Aufgabe abgeschlossen ist.
DoneDateDateTimeOffset?Datum des Abschlusses.
WorkAmountdoubleArbeitsaufwand (Stunden).
CustomColorint32?Benutzerdefinierte Farbe (als Integer-Wert).
CardPositionNumberint32Position auf dem Kanban-Board.
DescriptionHTMLstring?Beschreibung der Aufgabe als HTML.
IsBillablebooleanGibt an, ob die Aufgabe abrechenbar ist.
Recurrenceint32Wiederholungsmuster (0 = keine Wiederholung).
AssignedByContactIdGuid?Kontakt, der die Aufgabe zugewiesen hat.
CreatedByContactIdGuidKontakt, der die Aufgabe erstellt hat.
ContactDisplayNamestring?Anzeigename des zugewiesenen Kontakts (schreibgeschützt).
ContactImageIdGuid?Bild-ID des zugewiesenen Kontakts (schreibgeschützt).
RiskIdGuid?Verknüpftes Risiko.
RiskNamestring?Name des verknüpften Risikos (schreibgeschützt).
ChecklistItemsCountint32Gesamtanzahl der Checklisten-Elemente.
CheckListItemsDoneCountint32Anzahl der abgeschlossenen Checklisten-Elemente.
CheckListItemsOpenCountint32Anzahl der offenen Checklisten-Elemente.
ContributorsCountint32Anzahl der Mitwirkenden.
ContributorsWorkAmountdoubleArbeitsaufwand aller Mitwirkenden.
WorkAmountOwnerdoubleArbeitsaufwand des Verantwortlichen.

Endpunkte

CRUD-Operationen

GET/odata/Task

Alle Aufgaben abrufen. Unterstützt OData-Abfrageparameter.

POST/odata/Task

Neue Aufgabe erstellen.

ParameterTypeRequiredDescription
BodyDelta<ApiTask>JSON-Objekt mit den Aufgabeneigenschaften.
GET/odata/Task({key})

Eine einzelne Aufgabe anhand ihrer ID abrufen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId der Aufgabe.
PATCH/odata/Task({key})

Aufgabe teilweise aktualisieren.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId der Aufgabe.
BodyDelta<ApiTask>JSON-Objekt mit den zu aktualisierenden Feldern.
DELETE/odata/Task({key})

Aufgabe löschen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId der zu löschenden Aufgabe.
GET/odata/Task/$count

Gesamtanzahl aller Aufgaben abrufen.


Stapelverarbeitung

POST/odata/Task/BatchInsert

Mehrere Aufgaben gleichzeitig erstellen.

ParameterTypeRequiredDescription
BodyobjectJSON-Objekt mit einem Array von Aufgabendaten.
POST/odata/Task/BatchDelete

Mehrere Aufgaben gleichzeitig löschen.

ParameterTypeRequiredDescription
BodyobjectJSON-Objekt mit einem Array von TaskItemIds.
warnung

Die Stapellöschung entfernt alle angegebenen Aufgaben dauerhaft. Diese Aktion kann nicht rückgängig gemacht werden.

Leistung

Die Stapelverarbeitung ist deutlich effizienter als das einzelne Erstellen oder Löschen von Aufgaben. Verwenden Sie BatchInsert und BatchDelete, wenn Sie mit großen Mengen arbeiten.


Aufgabenverwaltung

POST/odata/Task({key})/MoveTaskItem

Eine Aufgabe verschieben (z. B. in eine andere Gruppe oder ein anderes Planungselement).

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit dem Zielort.
POST/odata/Task({key})/UpdateProjectDefinedField

Ein projektdefiniertes Feld der Aufgabe aktualisieren.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit Feldname und Wert.
POST/odata/Task({key})/Copy

Eine Aufgabe duplizieren.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId der zu kopierenden Aufgabe.
BodyobjectJSON-Objekt mit Kopieroptionen.

Notizen

POST/odata/Task({key})/AddNote

Eine Notiz zur Aufgabe hinzufügen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit dem Notizinhalt.
GET/odata/Task/DeleteNote(noteRelationId={noteRelationId})

Eine Notiz von der Aufgabe löschen.

ParameterTypeRequiredDescription
noteRelationIdGuidDie ID der Notizverknüpfung.

Mitwirkende (Contributors)

GET/odata/Task({key})/GetContributors()

Alle Mitwirkenden einer Aufgabe abrufen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
POST/odata/Task({key})/AddContributor

Einen Mitwirkenden hinzufügen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit Kontakt-ID und Aufwand.
POST/odata/Task({key})/UpdateContributor

Einen Mitwirkenden aktualisieren.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit aktualisierten Mitwirkendendaten.
POST/odata/Task({key})/RemoveContributor

Einen Mitwirkenden entfernen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit der Kontakt-ID des zu entfernenden Mitwirkenden.

Stoppuhr

GET/odata/Task({key})/GetStopwatch()

Den aktuellen Stoppuhr-Status einer Aufgabe abrufen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
POST/odata/Task({key})/StartStopwatch

Die Stoppuhr starten.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
POST/odata/Task({key})/PauseStopwatch

Die Stoppuhr pausieren.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
POST/odata/Task({key})/StopStopwatch

Die Stoppuhr stoppen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
Stoppuhr-Workflow

Der typische Workflow ist: StartStopwatchPauseStopwatch (optional) → StopStopwatch. Beim Stoppen wird automatisch ein Zeiteintrag erstellt.


Dokumente

POST/odata/Task({key})/AddDocumentToTaskItem

Ein Dokument mit der Aufgabe verknüpfen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit der Dokument-ID.
POST/odata/Task({key})/RemoveDocumentFromTaskItem

Ein Dokument von der Aufgabe entfernen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit der Dokument-ID.

Verknüpfungen

POST/odata/Task({key})/AddRelation

Eine Verknüpfung zur Aufgabe hinzufügen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit den Verknüpfungsdetails.
POST/odata/Task({key})/RemoveRelation

Eine Verknüpfung von der Aufgabe entfernen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit der Verknüpfungs-ID.

Kalendersynchronisation

GET/odata/Task({key})/GetCalendarSyncStatus()

Den Synchronisationsstatus der Aufgabe mit dem Kalender abrufen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
POST/odata/Task({key})/EnableCalendarSync

Kalendersynchronisation für die Aufgabe aktivieren.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
POST/odata/Task({key})/DisableCalendarSync

Kalendersynchronisation für die Aufgabe deaktivieren.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.

Benachrichtigungen

POST/odata/Task({key})/AddNotificationFollowers

Benachrichtigungsabonnenten zur Aufgabe hinzufügen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit den Kontakt-IDs der Abonnenten.
POST/odata/Task({key})/RemoveNotificationFollower

Einen Benachrichtigungsabonnenten entfernen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.
BodyobjectJSON-Objekt mit der Kontakt-ID.
GET/odata/Task({key})/GetNotificationFollowerContacts()

Alle Benachrichtigungsabonnenten der Aufgabe abrufen.

ParameterTypeRequiredDescription
keyGuidDie TaskItemId.

DynamicTaskItem

Der Endpunkt /odata/DynamicTaskItem bietet eine schreibgeschützte, abgeflachte Ansicht, die Daten aus Aufgabe, Projekt, Planung, Portfolio und Berechtigungen zusammenführt. Alle Eigenschaften sind mit einem Präfix versehen (z. B. TaskItem_Name, Project_Name, Planning_DisplayName).

GET/odata/DynamicTaskItem

Abgeflachte Aufgabenliste mit Projekt-, Planungs- und Berechtigungsdaten abrufen.

GET/odata/DynamicTaskItem/$count

Gesamtanzahl der DynamicTaskItem-Einträge abrufen.

Nur lesender Zugriff

DynamicTaskItem unterstützt ausschließlich GET-Anfragen. Zum Erstellen oder Bearbeiten verwenden Sie die regulären /odata/Task-Endpunkte.


OData-Abfragebeispiele

Offene Aufgaben eines Projekts abrufen

GET /odata/Task?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' and IsDone eq false

Aufgaben eines bestimmten Kontakts

GET /odata/Task?$filter=ContactId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

Überfällige Aufgaben

GET /odata/Task?$filter=EndDateTime lt 2025-01-01T00:00:00Z and IsDone eq false

Aufgabe erstellen

POST /odata/Task
Content-Type: application/json

{
"Name": "API-Integration testen",
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"StartDateTime": "2025-02-01T09:00:00Z",
"EndDateTime": "2025-02-15T17:00:00Z",
"WorkAmount": 16.0
}

Aufgabe als erledigt markieren

PATCH /odata/Task('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
Content-Type: application/json

{
"IsDone": true,
"DoneDate": "2025-01-20T14:30:00Z"
}

Mehrere Aufgaben gleichzeitig erstellen

POST /odata/Task/BatchInsert
Content-Type: application/json

{
"items": [
{ "Name": "Aufgabe 1", "ProjectId": "..." },
{ "Name": "Aufgabe 2", "ProjectId": "..." }
]
}