Zum Hauptinhalt springen

Planung

Die Planungsverwaltung in InLoox umfasst drei Entitäten: Planning (Planungselemente wie Vorgänge und Meilensteine), PlanningPublication (projektübergreifende Veröffentlichungen) und PlanningTemplate (Planungsvorlagen). Für die dynamische Listenansicht einschließlich eigener Felder steht /odata/DynamicPlanning zur Verfügung.

Entitätsübersicht​

EntitätBeschreibung
PlanningPlanungselemente (Vorgänge, Meilensteine, Sammelvorgänge)
PlanningPublicationProjektübergreifende Veröffentlichungen von Planungselementen
PlanningTemplateWiederverwendbare Planungsvorlagen

Planning​

Ein Planungselement stellt einen einzelnen Vorgang, Meilenstein oder eine Gruppierung innerhalb eines Projektzeitplans dar. Elemente können verschachtelt werden, um einen Projektstrukturplan (PSP) zu bilden.

info

Planungselemente sind stets einem Projekt zugeordnet. Verwenden Sie ProjectId beim Filtern, um nur Planungselemente eines bestimmten Projekts abzurufen.

Datenmodell​

EigenschaftTypBeschreibung
PlanningIdGuid (UUID)Eindeutiger Bezeichner des Planungselements (Primärschlüssel).
ProjectIdGuidZugehöriges Projekt.
DisplayNamestring?Anzeigename des Planungselements.
ParentPlanningIdGuid?Übergeordnetes Planungselement (null = Stammebene).
PlanningTypeIdGuid?Typ des Planungselements.
PositionNumberint32Positionsnummer in der Reihenfolge.
CustomColorint32?Benutzerdefinierte Farbe (als Integer-Wert).
Progressint32?Fortschritt in Prozent (0–100).
StartDateTimeDateTimeOffsetStartdatum und -uhrzeit.
EndDateTimeDateTimeOffsetEnddatum und -uhrzeit.
DurationTicksint64Dauer in Ticks.
IsMilestonebooleanGibt an, ob es sich um einen Meilenstein handelt.
IsGroupingbooleanGibt an, ob es sich um eine Gruppierung handelt.
IsProjectGroupingbooleanGibt an, ob es sich um eine Projektgruppierung handelt.
IsCollapsedbooleanGibt an, ob das Element in der Ansicht eingeklappt ist.
DescriptionHTMLstring?Beschreibung als HTML.
PSPCodestring?Projektstrukturplan-Code (PSP/WBS).
Locationstring?Ort des Planungselements.
CalendarIdGuidZugewiesener Kalender.
ConstraintTypeint32?Einschränkungstyp für die Terminplanung.
ConstraintDateDateTimeOffset?Datum der Einschränkung.
WorkAmountSumdouble?Summe des Arbeitsaufwands.
PSP-Codes

Der PSPCode (Projektstrukturplan-Code) entspricht dem internationalen WBS-Code (Work Breakdown Structure Code). Er wird automatisch basierend auf der Hierarchie berechnet, kann aber auch manuell gesetzt werden.

Derzeit nicht unterstützt

Abhängigkeitstypen (Andordnungsbeziehungen) sind Verknüpfungen zwischen Planungselementen im Gantt: Ende-Start / Ende-Anfang (EA), Start-Start / Anfang-Anfang (AA), Ende-Ende (EE) und Start-Ende / Anfang-Ende (AE).

Die InLoox OData-API deckt diese Funktionen derzeit nicht ab. Wenn Sie Unterstützung bei erweiterten Szenarien benötigen, wenden Sie sich bitte an den InLoox Support.

Endpunkte​

CRUD-Operationen​

Alle Planungselemente aller Projekte abrufen

GET/odata/Planning

Unterstützt OData-Abfrageparameter.


Ein einzelnes Planungselement abrufen

GET/odata/Planning({key})
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.

Neues Planungselement erstellen

POST/odata/Planning
ParameterTypErforderlichBeschreibung
BodyDelta<ApiPlanning>✅JSON-Objekt mit den Planungseigenschaften.

Verknüpfungen​

Eine Verknüpfung zum Planungselement hinzufügen

POST/odata/Planning({key})/AddRelation
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

itemId (guid, erforderlich) — Die ID des zu verknüpfenden Elements.

Eine Verknüpfung vom Planungselement entfernen

POST/odata/Planning({key})/RemoveRelation
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

itemId (guid, erforderlich) — Die ID des zu entfernenden verknüpften Elements.

Dokumente​

Ein Dokument mit dem Planungselement verknüpfen

POST/odata/Planning({key})/AddDocumentToPlanning
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

documentIds (guid[], erforderlich) — Array von Dokument-IDs, die mit dem Mindmap-Knoten verknüpft werden sollen.

Ein Dokument vom Planungselement entfernen

POST/odata/Planning({key})/RemoveDocumentFromPlanning
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

documentId (guid, erforderlich) — Die ID des Dokuments, das vom Mindmap-Knoten entfernt werden soll.

Benachrichtigungen​

Alle Benachrichtigungsabonnenten des Planungselements abrufen

GET/odata/Planning({key})/GetNotificationFollowerContacts()
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.

Benachrichtigungsabonnenten zum Planungselement hinzufügen

POST/odata/Planning({key})/AddNotificationFollowers
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

projectId (guid?, optional) — Die Projekt-ID. Wenn nicht angegeben, wird das Projekt des Planungselements verwendet.
contactIds (Collection<guid>, erforderlich) — Array von Kontakt-IDs, die als Abonnenten hinzugefügt werden sollen.

Einen Benachrichtigungsabonnenten entfernen

POST/odata/Planning({key})/RemoveNotificationFollower
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

contactId (guid, erforderlich) — Die ID des Kontakts, der als Abonnent entfernt werden soll.

DynamicPlanning​

Der Endpunkt /odata/DynamicPlanning bietet eine schreibgeschützte, abgeflachte Ansicht, die Daten aus Planungselementen, Projektmetadaten und Projektberechtigungen zusammenführt. Alle Eigenschaften sind mit einem Präfix versehen (zum Beispiel Planning_DisplayName, Project_Name, ProjectPermission_PermissionPlanningsRead). Eigene Felder tragen das Präfix cf_Planning.

GET/odata/DynamicPlanning

DynamicPlanning unterstützt ausschließlich GET-Anfragen. Zum Erstellen oder Bearbeiten von Planungselementen verwenden Sie die regulären /odata/Planning-Endpunkte. Bitte beachten Sie, dass Schreiboperationen an der Planung via API nur eingeschränkt möglich sind.


Planungsversionen (Snapshots/Baselines)​

Einen Planungs-Schnappschuß erstellen

GET/odata/Project({key})/CreatePlanningSnapshot(name={name})
ParameterTypErforderlichBeschreibung
keyGuid✅Die ProjectId.
namestring✅Name des Snapshots.

Einen Planungs-Schnappschuß umbenennen

POST/odata/Project({key})/RenamePlanningSnapshot
ParameterTypErforderlichBeschreibung
keyGuid✅Die ProjectId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

name (string, erforderlich) — Der neue Name des Snapshots.

Einen Planungs-Schnappschuß löschen

POST/odata/Project({key})/DeletePlanningSnapshot
ParameterTypErforderlichBeschreibung
keyGuid✅Die ProjectId.
warnung

Das Löschen eines Planungssnapshots kann nicht rückgängig gemacht werden.


Projektgruppen​

Projektgruppen (auch Projekt-Cluster) bündeln die Planungen mehrerer Projekte und erlauben das Anzeigen und Bearbeiten in einer gemeinsamen Ansicht. Anders als Planungsveröffentlichungen sind die Projekte in einer Gruppe organisiert und nicht lose miteinander verbunden.

Eine Projektgruppe hinzufügen

POST/odata/Project({key})/AddProjectGroup
ParameterTypErforderlichBeschreibung
keyGuid✅Die ProjectId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

projectClusterRelationId (guid, erforderlich) — Die ID der Projektgruppen-Verknüpfung.
Berechtigung erforderlich

Der aufrufende Benutzer muss in allen beteiligten Projekten (Quell- und Zielprojekt) über Schreibberechtigungen für die Planung verfügen.


Die Farbe einer Projektgruppe setzen

POST/odata/Project({key})/SetProjectGroupColor
ParameterTypErforderlichBeschreibung
keyGuid✅Die ProjectId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

projectClusterRelationId (guid, erforderlich) — Die ID der Projektgruppen-Verknüpfung.
color (int, erforderlich) — Der Farbwert als Integer.

Eine Projektgruppe löschen

POST/odata/Project({key})/DeleteProjectGroup
ParameterTypErforderlichBeschreibung
keyGuid✅Die ProjectId.
Bodyobject✅JSON-Objekt mit folgenden Feldern:

projectClusterRelationId (guid, erforderlich) — Die ID der Projektgruppen-Verknüpfung.
warnung

Das Löschen einer Projektgruppe kann nicht rückgängig gemacht werden.


PlanningPublication​

Planungsveröffentlichungen ermöglichen die projektübergreifende Verknüpfung von Planungselementen. So können Sie Abhängigkeiten zwischen verschiedenen Projekten abbilden. Anders als Projektgruppen sind die Projekte nicht fest, sondern lose miteinander verbunden.

Berechtigung erforderlich

Der aufrufende Benutzer muss in allen beteiligten Projekten (Quell- und Zielprojekt) über Schreibberechtigungen für die Planung verfügen.

Datenmodell​

EigenschaftTypBeschreibung
PlanningPublicationIdGuid (UUID)Eindeutiger Bezeichner der Veröffentlichung.
SourcePlanningIdGuidQuell-Planungselement.
SourceProjectIdGuidQuell-Projekt.
SourceProjectNamestring?Name des Quell-Projekts (schreibgeschützt).
SourceProjectNumberstring?Nummer des Quell-Projekts (schreibgeschützt).
SourceProjectImageIdGuid?Bild-ID des Quell-Projekts (schreibgeschützt).
DisplayNamestring?Anzeigename der Veröffentlichung.
TargetProjectIdGuidZiel-Projekt.
TargetProjectNumberstring?Nummer des Ziel-Projekts (schreibgeschützt).
TargetProjectNamestring?Name des Ziel-Projekts (schreibgeschützt).
TargetProjectImageIdGuid?Bild-ID des Ziel-Projekts (schreibgeschützt).

Endpunkte​

Alle Planungsveröffentlichungen aller Projekte abrufen

GET/odata/PlanningPublication

Eine einzelne Veröffentlichung abrufen

GET/odata/PlanningPublication({key})
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningPublicationId.

Neue Planungsveröffentlichung erstellen

POST/odata/PlanningPublication
ParameterTypErforderlichBeschreibung
BodyDelta<ApiPlanningPublication>✅JSON-Objekt mit den Veröffentlichungseigenschaften.

Veröffentlichung löschen

DELETE/odata/PlanningPublication({key})
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningPublicationId.
warnung

Das Löschen einer Planungsveröffentlichung ist endgültig und kann nicht rückgängig gemacht werden.

Kein PATCH

Planungsveröffentlichungen können nicht aktualisiert werden. Löschen Sie die bestehende und erstellen Sie eine neue, um Änderungen vorzunehmen.


PlanningTemplate​

Planungsvorlagen ermöglichen die Wiederverwendung von Planungsstrukturen über verschiedene Projekte hinweg. Sie können Vorlagen exportieren, importieren und in Projekte laden.

Datenmodell​

EigenschaftTypBeschreibung
PlanningTemplateIdGuid (UUID)Eindeutiger Bezeichner der Vorlage.
Namestring?Name der Vorlage.

Endpunkte​

CRUD-Operationen​

Alle Planungsvorlagen abrufen

GET/odata/PlanningTemplate

Eine einzelne Vorlage abrufen

GET/odata/PlanningTemplate({key})
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningTemplateId.

Neue Planungsvorlage erstellen

POST/odata/PlanningTemplate
ParameterTypErforderlichBeschreibung
BodyDelta<ApiPlanningTemplate>✅JSON-Objekt mit dem Vorlagennamen.

Vorlage aktualisieren

PATCH/odata/PlanningTemplate({key})
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningTemplateId.
BodyDelta<ApiPlanningTemplate>✅JSON-Objekt mit den zu aktualisierenden Feldern.

Vorlage löschen

DELETE/odata/PlanningTemplate({key})
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningTemplateId.
warnung

Das Löschen einer Planungsvorlage ist endgültig und kann nicht rückgängig gemacht werden.


Export & Download​

Planungsvorlage als Datei herunterladen

GET/odata/PlanningTemplate({key})/DownloadPlanningTemplate()
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningTemplateId.

Vorlage im MS-Project-XML-Format herunterladen

GET/odata/PlanningTemplate({key})/DownloadMSProjectXML()
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningTemplateId.
MS-Project-Kompatibilität

Mit DownloadMSProjectXML können Sie Planungsvorlagen im XML-Format für Microsoft Project exportieren. Dies ermöglicht den Datenaustausch zwischen InLoox und MS Project.

Import & Anwendung​

Eine Vorlage in ein Projekt laden

POST/odata/PlanningTemplate({key})/LoadTemplateForProject
ParameterTypErforderlichBeschreibung
keyGuid✅Die PlanningTemplateId.
projectIdGuid✅Die Ziel-Projekt-ID (als Query-Parameter).
settingsstring—Import-Einstellungen als JSON-String (ApiPlanningTemplateImportSettings).
Voraussetzung

Das Laden einer Vorlage setzt voraus, dass die Ordnerstruktur des Zielprojekts initialisiert ist. Kann der Dokumentenspeicher nicht automatisch angelegt werden, schlägt die Anfrage fehl — initialisieren Sie die Ordnerstruktur im Bereich Dokumente des Projekts und wiederholen Sie den Aufruf.

Die Import-Einstellungen (ApiPlanningTemplateImportSettings) umfassen:

EigenschaftTypBeschreibung
CalculationModestring?Berechnungsmodus für die Terminplanung.
StartDateForManualCalculationDateTimeOffset?Startdatum für manuelle Berechnung.
LoadResourceDatabooleanRessourcendaten übernehmen.
LoadCompletionDatabooleanFortschrittsdaten übernehmen.

Die Planung eines Projekts als Vorlage speichern

POST/odata/PlanningTemplate/SaveTemplateForProject
ParameterTypErforderlichBeschreibung
Bodyobject✅JSON-Objekt mit folgenden Feldern:

projectId (guid, erforderlich) — Die ID des Projekts, dessen Planung als Vorlage gespeichert werden soll.
name (string, erforderlich) — Der Name für die neue Vorlage.

OData-Abfragebeispiele​

Alle Planungselemente eines Projekts​

GET /odata/Planning?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'&$orderby=PositionNumber

Nur Meilensteine abrufen​

GET /odata/Planning?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' and IsMilestone eq true

Planungselemente mit Fortschritt unter 50 %​

GET /odata/Planning?$filter=Progress lt 50 and IsGrouping eq false

Projektübergreifende Meilensteine eines Projekts​

GET /odata/PlanningPublication?$filter=SourceProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'

Vorgang erstellen​

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

{
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"DisplayName": "Konzeptphase",
"StartDateTime": "2025-02-01T08:00:00Z",
"EndDateTime": "2025-02-28T17:00:00Z",
"Progress": 0,
"IsMilestone": false,
"IsGrouping": false
}

Meilenstein erstellen​

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

{
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"DisplayName": "Go-Live",
"StartDateTime": "2025-06-30T00:00:00Z",
"EndDateTime": "2025-06-30T00:00:00Z",
"IsMilestone": true
}

Vorlage in ein Projekt laden​

POST /odata/PlanningTemplate('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/LoadTemplateForProject?projectId='yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy'
Content-Type: application/json

{
"CalculationMode": "Manual",
"StartDateForManualCalculation": "2025-03-01T00:00:00Z",
"LoadResourceData": true,
"LoadCompletionData": false
}