Projekte
Die Project-Entität ist das zentrale Objekt in InLoox. Über die OData-API können Sie Projekte erstellen, aktualisieren, löschen und umfangreiche Aktionen wie Mitgliederverwaltung, Kategorisierung oder Planungsversionen durchführen.
Alle Endpunkte verwenden den Basispfad /odata/Project. Für die dynamische Listenansicht einschließlich eigener Felder steht /odata/DynamicProject zur Verfügung.
Datenmodell
Die folgende Tabelle zeigt die wichtigsten Eigenschaften der ApiProject-Entität:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
ProjectId | Guid (UUID) | Eindeutiger Bezeichner des Projekts (Primärschlüssel). |
Name | string | Name des Projekts. |
NumberPrefix | string? | Präfix der Projektnummer. |
NumberIncremential | int32? | Fortlaufende Nummer der Projektnummer. |
NumberSuffix | string? | Suffix der Projektnummer. |
Number | string? | Berechnete vollständige Projektnummer (Präfix + laufende Nummer + Suffix, schreibgeschützt). |
ProjectNumberAndName | string? | Kombinierte Projektnummer und Name (schreibgeschützt). |
ClientId | Guid? | Verknüpfter Kunde (Kunden-ID). |
ClientName | string? | Name des verknüpften Kunden (schreibgeschützt). |
ClientNumber | string? | Kundennummer (schreibgeschützt). |
ClientNumberName | string? | Kombinierte Kundennummer und Name (schreibgeschützt). |
DivisionId | Guid? | Zugehörige Abteilung. |
DivisionName | string? | Name der Abteilung (schreibgeschützt). |
DivisionDescription | string? | Beschreibung der Abteilung (schreibgeschützt). |
ProjectStatusId | Guid? | Aktueller Projektstatus (Fremdschlüssel). |
ProjectStatusName | string? | Name des aktuellen Projektstatus (schreibgeschützt). |
ProjectStatusProgress | int32? | Fortschrittswert des Projektstatus (schreibgeschützt). |
StatusLabel | string? | Anzeigebezeichnung für den Projektstatus (schreibgeschützt). |
ComputedProgress | double? | Berechneter Fortschritt (0–1, schreibgeschützt). |
PercentComplete | int32? | Fertigstellungsgrad in Prozent (schreibgeschützt). |
Complete | int32 | Anzahl erledigter Aufgaben (schreibgeschützt). |
CompleteActual | double | Tatsächlicher Fertigstellungsgrad (schreibgeschützt). |
CompletePlan | int32 | Anzahl geplanter erledigter Aufgaben (schreibgeschützt). |
CompletePlanActual | int32 | Geplante vs. tatsächliche Fertigstellung (schreibgeschützt). |
Priority | int32 | Priorität des Projekts. Werte: 0 = Niedrig, 1 = Normal, 2 = Hoch. Standard ist 1 (Normal). |
LockMode | int32 | Sperrmodus. Werte: 0 = Keiner, 1 = Gesperrt, 2 = Keine Benachrichtigungen. |
IsLocked | boolean | Gibt an, ob das Projekt gesperrt ist. |
StartDate | DateTimeOffset | Startdatum. |
EndDate | DateTimeOffset | Enddatum. |
PlannedStartDate | DateTimeOffset? | Geplantes Startdatum. |
PlannedEndDate | DateTimeOffset? | Geplantes Enddatum. |
IsEndDateFixed | boolean | Gibt an, ob das Enddatum fixiert ist. |
BackwardScheduling | boolean | Rückwärtsterminierung aktiviert. |
IsRecycled | boolean | Gibt an, ob das Projekt im Papierkorb liegt. |
IsArchived | boolean | Gibt an, ob das Projekt archiviert ist. |
IsRequest | boolean | Gibt an, ob es sich um einen Projektantrag handelt. |
IsFavorite | boolean? | Gibt an, ob das Projekt vom aktuellen Benutzer als Favorit markiert ist. |
CreatedByContactId | Guid | Kontakt-ID des Erstellers. |
CreatedByName | string? | Anzeigename des Erstellers (schreibgeschützt). |
CreatedByContactImageId | Guid? | Bild-ID des Ersteller-Kontakts (schreibgeschützt). |
CreatedDateTime | DateTimeOffset? | Erstellungsdatum und -uhrzeit (schreibgeschützt). |
ChangedByContactId | Guid? | Kontakt-ID des letzten Bearbeiters. |
LastChangedByName | string? | Anzeigename des letzten Bearbeiters (schreibgeschützt). |
ChangedByContactImageId | Guid? | Bild-ID des letzten Bearbeiter-Kontakts (schreibgeschützt). |
LastChangedDateTime | DateTimeOffset? | Datum und Uhrzeit der letzten Änderung (schreibgeschützt). |
ClosedByName | string? | Anzeigename des Kontakts, der das Projekt geschlossen hat (schreibgeschützt). |
ClosedDateTime | DateTimeOffset? | Datum und Uhrzeit der Schließung des Projekts (schreibgeschützt). |
ImageId | Guid? | ID des Projektbilds. |
PortfolioId | Guid? | Zugehöriges Portfolio. |
DescriptionText | string? | Projektbeschreibung als Klartext. |
DescriptionHTML | string? | Projektbeschreibung als HTML. |
Categories | string? | Kommagetrennte Kategorien. |
Note | string? | Projektnotiz. |
NotificationsSuppressed | boolean | Benachrichtigungen unterdrückt. |
ClusterName | string? | Name des Clusters, dem das Projekt zugeordnet ist (schreibgeschützt). |
StoreType | int32 | Dokumentenspeichertyp des Projekts. |
DocumentFolder | string? | Pfad zum Projektdokumentenordner. |
FirstManager | string? | Anzeigename der ersten Projektleitung (schreibgeschützt). |
FirstTeamMember | string? | Anzeigename des ersten Teammitglieds (schreibgeschützt). |
FirstCustomer | string? | Anzeigename des ersten Kundenkontakts (schreibgeschützt). |
FirstPartner | string? | Anzeigename des ersten Partnerkontakts (schreibgeschützt). |
FirstAdditionalContact | string? | Anzeigename des ersten weiteren Kontakts (schreibgeschützt). |
ManagerProjectContact | string? | Kommagetrennte Liste der Projektleitungsnamen (schreibgeschützt). |
TeamProjectContact | string? | Kommagetrennte Liste der Teammitgliedsnamen (schreibgeschützt). |
CustomerProjectContact | string? | Kommagetrennte Liste der Kundenkontaktnamen (schreibgeschützt). |
PartnerProjectContact | string? | Kommagetrennte Liste der Partnerkontaktnamen (schreibgeschützt). |
AdditionalProjectContact | string? | Kommagetrennte Liste der weiteren Kontaktnamen (schreibgeschützt). |
ReviewerProjectContact | string? | Kommagetrennte Liste der Prüferkontaktnamen (schreibgeschützt). |
AmountPlannedCosts | double | Gesamtbetrag geplanter Kosten (schreibgeschützt). |
AmountActualCosts | double | Gesamtbetrag tatsächlicher Kosten (schreibgeschützt). |
AmountPlannedProfit | double | Geplanter Gesamtgewinn (schreibgeschützt). |
AmountProfit | double | Tatsächlicher Gesamtgewinn (schreibgeschützt). |
AmountProfitDifference | double | Differenz zwischen geplantem und tatsächlichem Gewinn (schreibgeschützt). |
PlannedCostsOpex | double | Geplante Betriebskosten (OpEx, schreibgeschützt). |
ActualCostsOpex | double | Tatsächliche Betriebskosten (OpEx, schreibgeschützt). |
PlannedCostsResources | double | Geplante Ressourcenkosten (schreibgeschützt). |
PlannedCostsOther | double | Geplante sonstige Kosten (schreibgeschützt). |
CostsOther | double | Tatsächliche sonstige Kosten (schreibgeschützt). |
PlannedRevenues | double | Geplante Erlöse gesamt (schreibgeschützt). |
Revenues | double | Tatsächliche Erlöse gesamt (schreibgeschützt). |
ActivityCostAmount | double | Gesamtbetrag aktivitätsbasierter Kosten (schreibgeschützt). |
PlannedWorkAmount | double | Geplanter Arbeitsaufwand in Stunden gesamt (schreibgeschützt). |
BudgetIndicator | boolean? | Gibt an, ob ein Budgetindikator gesetzt ist (schreibgeschützt). |
AllPositionsBilled | boolean? | Gibt an, ob alle Positionen abgerechnet sind (schreibgeschützt). |
TotalEffort | double? | Gesamtaufwand aller Aufgaben in Stunden (schreibgeschützt). |
TotalEffortComplete | double? | Aufwand erledigter Aufgaben in Stunden (schreibgeschützt). |
TotalEffortRemaining | double? | Verbleibender Aufwand in Stunden (schreibgeschützt). |
TotalEffortPlan | double? | Geplanter Gesamtaufwand in Stunden (schreibgeschützt). |
TotalEffortOverdue | int32 | Anzahl überfälliger Aufwände (schreibgeschützt). |
TotalEffortPlanDue | int32 | Anzahl geplanter fälliger Aufwände (schreibgeschützt). |
TotalEffortTimeEntries | double? | Gesamtaufwand aus Zeiteinträgen in Stunden (schreibgeschützt). |
TimeEntriesDuration | double | Gesamtdauer der Zeiteinträge in Stunden (schreibgeschützt). |
UnassignedTimeEntriesDuration | double | Dauer nicht zugewiesener Zeiteinträge (schreibgeschützt). |
ProjectDuration | double | Gesamtlaufzeit des Projekts in Tagen (schreibgeschützt). |
ProjectDurationRemaining | double | Verbleibende Projektlaufzeit in Tagen (schreibgeschützt). |
PlannedDuration | double | Geplante Projektlaufzeit in Tagen (schreibgeschützt). |
PlannedDurationRemaining | double | Verbleibende geplante Laufzeit in Tagen (schreibgeschützt). |
FirstNotCompletedPlanningDate | DateTimeOffset? | Datum des ersten nicht abgeschlossenen Planungselements (schreibgeschützt). |
TimeWarningPlanningEndExceeded | boolean? | Gibt an, ob das Planungsenddatum überschritten wurde (schreibgeschützt). |
TimeWarningProjectEndExceeded | boolean? | Gibt an, ob das Projektenddatum überschritten wurde (schreibgeschützt). |
RiskScore | int32 | Risikobewertungswert (schreibgeschützt). |
ValueScore | int32 | Wertbewertungswert (schreibgeschützt). |
SizeScore | int32 | Größenbewertungswert (schreibgeschützt). |
CalculatedScore | double | Berechneter Gesamtscore (schreibgeschützt). |
Als schreibgeschützt gekennzeichnete Felder werden serverseitig berechnet und können nicht über POST- oder PATCH-Anfragen gesetzt werden. Verwenden Sie diese zum Filtern, Sortieren und Anzeigen in GET-Anfragen.
Endpunkte
CRUD-Operationen
Alle Projekte abrufen
/odata/ProjectUnterstützt OData-Abfrageparameter ($filter, $select, $orderby, $top, $skip).
Ein einzelnes Projekt anhand seiner ID abrufen
/odata/Project({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId des Projekts. |
Neues Projekt erstellen
/odata/Project| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiProject> | ✅ | JSON-Objekt mit den Projekteigenschaften. |
Lassen Sie ProjectId weg, damit der Server automatisch eine ID generiert.
Projekt aktualisieren
/odata/Project({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId des Projekts. |
Body | Delta<ApiProject> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Projekt löschen
/odata/Project({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId des zu löschenden Projekts. |
Das Löschen eines Projekts entfernt es und alle zugehörigen Daten (Aufgaben, Zeiteinträge, Dokumente usw.) dauerhaft. Diese Aktion kann nicht rückgängig gemacht werden.
Mitglieder & Kontakte
Alle Mitglieder eines Projekts abrufen
/odata/Project({key})/GetProjectContactRelations()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Die Antwort enthält eine Liste von Kontaktbeziehung-Datensätzen mit folgender Struktur:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
Id | guid | Eindeutiger Bezeichner der Kontaktbeziehung. |
MemberId | guid | ID des Projektmitglieds. |
RoleType | int | Projektrolle. Werte: 2 = Projektleitung, 4 = Team, 8 = Partner, 16 = Kunde, 32 = Weitere, 64 = Projektantragsprüfer, 128 = Weitere 1, 256 = Weitere 2, 512 = Weitere 3, 1024 = Weitere 4, 2048 = Weitere 5. |
OrdinalPosition | int | Sortierposition des Mitglieds. |
DisplayName | string | Anzeigename des Kontakts. |
Email | string | E-Mail-Adresse des Kontakts. |
SourceType | int | Art des Kontaktbeziehung-Datensatzes. Werte: 0 = Einzelner Kontakt, 1 = Gruppe von Kontakten. |
IsRecycled | bool | Gibt an, ob der Kontakt im Papierkorb liegt. |
IsIdentity | bool | Gibt an, ob der Kontakt eine Identität (Benutzerkonto) besitzt. |
EmailConfirmed | bool | Gibt an, ob die E-Mail-Adresse bestätigt ist. |
InvitationAccepted | bool | Gibt an, ob die Einladung angenommen wurde. |
Skills | string | Kommagetrennte Liste der Fertigkeiten. |
ImageId | guid? | ID des Kontaktbilds. |
Ein Mitglied zum Projekt hinzufügen
/odata/Project({key})/AddMember| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den folgenden Feldern: contactId (guid, erforderlich) — Der hinzuzufügende Kontakt. role (int, erforderlich) — Wert: 2 = Projektleitung, 4 = Team, 8 = Partner, 16 = Kunde, 32 = Weitere, 64 = Projektantragsprüfer, 128 = Weitere 1, 256 = Weitere 2, 512 = Weitere 3, 1024 = Weitere 4, 2048 = Weitere 5.. type (int?, optional) — Wert: 0 = Einzelner Kontakt, 1 = Gruppe von Kontakten. ordinalPosition (int?, optional) — Sortierposition. |
Das Hinzufügen eines Mitglieds ist eine sicherheitsrelevante Aktion. Dadurch werden Projekt-Rollenberechtigungen für den angegebenen Kontakt erteilt.
Ein Mitglied aus dem Projekt entfernen
/odata/Project({key})/RemoveMember| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den folgenden Feldern: contactId (guid, erforderlich) — Der zu entfernende Kontakt. role (int, erforderlich) — Wert: 2 = Projektleitung, 4 = Team, 8 = Partner, 16 = Kunde, 32 = Weitere, 64 = Projektantragsprüfer, 128 = Weitere 1, 256 = Weitere 2, 512 = Weitere 3, 1024 = Weitere 4, 2048 = Weitere 5. type (int?, optional) — Wert: 0 = Einzelner Kontakt, 1 = Gruppe von Kontakten. |
Das Entfernen eines Mitglieds ist eine sicherheitsrelevante Aktion. Dadurch werden Projekt-Rollenberechtigungen für den angegebenen Kontakt entzogen.
Kategorien
Zugewiesene Kategorien eines Projekts abrufen
/odata/Project({key})/GetAssignedCategories()Eine Kategorie dem Projekt zuweisen
/odata/Project({key})/AssignCategory(categoryId={categoryId})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
categoryId | Guid | ✅ | Die ID der zuzuweisenden Kategorie. |
Eine Kategorie vom Projekt entfernen
/odata/Project({key})/UnAssignCategory(categoryId={categoryId})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
categoryId | Guid | ✅ | Die ID der zu entfernenden Kategorie. |
Alle Kategorien eines Projekts ersetzen
/odata/Project({key})/SetCategories| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den folgenden Feldern: categoryIds (guid[], erforderlich) — Array der Kategorie-IDs, die dem Projekt zugewiesen werden sollen. |
SetCategories ersetzt alle vorhandenen Kategoriezuweisungen. Um eine einzelne Kategorie hinzuzufügen oder zu entfernen, verwenden Sie stattdessen AssignCategory oder UnAssignCategory.
Kommentare
Die ProjectNote-Entität ist das zugrunde liegende Datenmodell für Projektkommentare. Jeder Kommentar wird als ProjectNote gespeichert und mit einem bestimmten Projekt verknüpft.
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
ProjectNoteId | guid | Eindeutige ID der Notiz. |
ProjectId | guid | ID des zugehörigen Projekts. |
Note | string | Notiztext (Klartext). |
NoteHtml | string | Notiztext (HTML-formatiert). |
ShortDescription | string | Kurzbeschreibung der Notiz. |
CreateDateTime | DateTimeOffset | Erstellungszeitpunkt. |
CreatedByContactId | guid | ID des Erstellers. |
Alle Projektkommentare aller Projekte abrufen
/odata/ProjectNoteFiltern Sie nach Projekt:
GET /odata/ProjectNote?$filter=ProjectId eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&$orderby=CreateDateTime desc
Einen Projektkommentar nach ID abrufen
/odata/ProjectNote({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | guid | ✅ | Die ProjectNoteId. |
Einen Kommentar zum Projekt hinzufügen
/odata/Project({key})/AddNote| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den folgenden Feldern: htmlText (string, erforderlich) — HTML-formatierter Kommentarinhalt. notificationContactIds (guid[], erforderlich) — Kontakt-IDs, die benachrichtigt werden sollen. Übergeben Sie ein leeres Array, wenn keine Benachrichtigungen erforderlich sind. |
Einen Kommentar vom Projekt entfernen
/odata/Project({key})/DeleteNote| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den folgenden Feldern: noteRelationId (guid, erforderlich) — Die ID der zu löschenden Kommentarverknüpfung. |
Das Löschen eines Kommentars kann nicht rückgängig gemacht werden.
Projektnummern
Prüfen, ob eine Projektnummer bereits existiert
/odata/Project({key})/CheckIfProjectNumberExists(projectNumber={projectNumber})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
projectNumber | string | ✅ | Die zu prüfende Projektnummer. |
Eine Projektnummer aktualisieren
/odata/Project({key})/UpdateProjectNumber| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den folgenden Feldern: prefix (string, erforderlich) — Das Präfix der Projektnummer. suffix (string, erforderlich) — Das Suffix der Projektnummer. |
Die Laufnummernteil der Projektnummer korrigieren
/odata/Project({key})/CorrectIncrementIfNecessary(projectNumber={projectNumber})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
projectNumber | string | ✅ | Die Projektnummer zum Abgleich. |
Status & Aktionen
Einen Projektantrag genehmigen
/odata/Project({key})/ApproveRequest| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId des Projektantrags. |
Einen Projektantrag ablehnen
/odata/Project({key})/RejectRequest| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId des Projektantrags. |
Favoritenstatus eines Projekts umschalten
/odata/Project({key})/ToggleFavorite(isFavorite={isFavorite})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
isFavorite | boolean | ✅ | true zum Markieren als Favorit, false zum Entfernen. |
Ein Projekt duplizieren
/odata/Project({key})/CopyProject()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId des zu kopierenden Projekts. |
Ein Projektbild generieren
/odata/Project({key})/GenerateImage()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Eine Projektbeschreibung per KI generieren
/odata/Project({key})/GenerateProjectDescription(language={language})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
language | string | — | Sprache der generierten Beschreibung (z. B. "de", "en"). |
Dieser Endpunkt ist nur in InLoox Cloud verfügbar.
Verknüpfungen
Eine Verknüpfung zum Projekt hinzufügen
/odata/Project({key})/AddRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den Verknüpfungsdetails. |
Eine Verknüpfung vom Projekt entfernen
/odata/Project({key})/RemoveRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit der Verknüpfungs-ID. |
Benachrichtigungen
Alle Kontakte abrufen, die Benachrichtigungen für dieses Projekt abonniert haben
/odata/Project({key})/GetNotificationFollowerContacts()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Benachrichtigungsabonnenten hinzufügen
/odata/Project({key})/AddNotificationFollowers| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit den Kontakt-IDs der Abonnenten. |
Einen Benachrichtigungsabonnenten entfernen
/odata/Project({key})/RemoveNotificationFollower| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit der Kontakt-ID. |
DynamicProject
Der Endpunkt /odata/DynamicProject bietet eine schreibgeschützte, abgeflachte Ansicht, die Daten aus Projekt, Portfolio und Berechtigungen zusammenführt. Alle Eigenschaften sind mit einem Präfix versehen (z. B. Project_Name, Portfolio_Name, ProjectPermission_PermissionProjectRead). Eigene Felder folgen dem Muster CF_<Feldname>.
Abgeflachte Projektliste mit Portfolio- und Berechtigungsdaten abrufen
/odata/DynamicProjectDynamicProject unterstützt ausschließlich GET-Anfragen. Zum Erstellen oder Bearbeiten verwenden Sie die regulären /odata/Project-Endpunkte.
OData-Abfragebeispiele
Alle aktiven Projekte abrufen
GET /odata/Project?$filter=IsArchived eq false and IsRecycled eq false
Projekte eines bestimmten Kunden filtern
GET /odata/Project?$filter=ClientId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Projekte nach Priorität sortieren (absteigend)
GET /odata/Project?$orderby=Priority desc&$top=10
Nur bestimmte Felder auswählen
GET /odata/Project?$select=ProjectId,Name,Number,StartDate,EndDate,ComputedProgress
Projektanträge filtern
GET /odata/Project?$filter=IsRequest eq true
Projekt erstellen
POST /odata/Project
Content-Type: application/json
{
"Name": "Neues Projekt",
"StartDate": "2025-01-15T00:00:00Z",
"EndDate": "2025-06-30T00:00:00Z",
"Priority": 2
}
Projekt aktualisieren
PATCH /odata/Project('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
Content-Type: application/json
{
"Name": "Aktualisierter Projektname",
}
Verwenden Sie $top und $skip für die Paginierung großer Ergebnismengen:
GET /odata/Project?$top=50&$skip=100&$orderby=Name