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).

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
keyGuidDie 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
keyGuidDie PlanningId.
BodyobjectJSON-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
keyGuidDie PlanningId.
BodyobjectJSON-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
keyGuidDie PlanningId.
BodyobjectJSON-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
keyGuidDie PlanningId.
BodyobjectJSON-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
keyGuidDie PlanningId.

Benachrichtigungsabonnenten zum Planungselement hinzufügen

POST/odata/Planning({key})/AddNotificationFollowers
ParameterTypErforderlichBeschreibung
keyGuidDie PlanningId.
BodyobjectJSON-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
keyGuidDie PlanningId.
BodyobjectJSON-Objekt mit folgenden Feldern:

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

Planungsversionen (Snapshots/Baselines)

Einen Planungs-Schnappschuß erstellen

GET/odata/Project({key})/CreatePlanningSnapshot(name={name})
ParameterTypErforderlichBeschreibung
keyGuidDie ProjectId.
namestringName des Snapshots.

Einen Planungs-Schnappschuß umbenennen

POST/odata/Project({key})/RenamePlanningSnapshot
ParameterTypErforderlichBeschreibung
keyGuidDie ProjectId.
BodyobjectJSON-Objekt mit folgenden Feldern:

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

Einen Planungs-Schnappschuß löschen

POST/odata/Project({key})/DeletePlanningSnapshot
ParameterTypErforderlichBeschreibung
keyGuidDie 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
keyGuidDie ProjectId.
BodyobjectJSON-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
keyGuidDie ProjectId.
BodyobjectJSON-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
keyGuidDie ProjectId.
BodyobjectJSON-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
keyGuidDie 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
keyGuidDie 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
keyGuidDie PlanningTemplateId.

Neue Planungsvorlage erstellen

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

Vorlage aktualisieren

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

Vorlage löschen

DELETE/odata/PlanningTemplate({key})
ParameterTypErforderlichBeschreibung
keyGuidDie 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
keyGuidDie PlanningTemplateId.

Vorlage im MS-Project-XML-Format herunterladen

GET/odata/PlanningTemplate({key})/DownloadMSProjectXML()
ParameterTypErforderlichBeschreibung
keyGuidDie 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
keyGuidDie PlanningTemplateId.
projectIdGuidDie Ziel-Projekt-ID (als Query-Parameter).
settingsstringImport-Einstellungen als JSON-String (ApiPlanningTemplateImportSettings).

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
BodyobjectJSON-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
}