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ät | Beschreibung |
|---|---|
| Planning | Planungselemente (Vorgänge, Meilensteine, Sammelvorgänge) |
| PlanningPublication | Projektübergreifende Veröffentlichungen von Planungselementen |
| PlanningTemplate | Wiederverwendbare 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.
Planungselemente sind stets einem Projekt zugeordnet. Verwenden Sie ProjectId beim Filtern, um nur Planungselemente eines bestimmten Projekts abzurufen.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
PlanningId | Guid (UUID) | Eindeutiger Bezeichner des Planungselements (Primärschlüssel). |
ProjectId | Guid | Zugehöriges Projekt. |
DisplayName | string? | Anzeigename des Planungselements. |
ParentPlanningId | Guid? | Übergeordnetes Planungselement (null = Stammebene). |
PlanningTypeId | Guid? | Typ des Planungselements. |
PositionNumber | int32 | Positionsnummer in der Reihenfolge. |
CustomColor | int32? | Benutzerdefinierte Farbe (als Integer-Wert). |
Progress | int32? | Fortschritt in Prozent (0–100). |
StartDateTime | DateTimeOffset | Startdatum und -uhrzeit. |
EndDateTime | DateTimeOffset | Enddatum und -uhrzeit. |
DurationTicks | int64 | Dauer in Ticks. |
IsMilestone | boolean | Gibt an, ob es sich um einen Meilenstein handelt. |
IsGrouping | boolean | Gibt an, ob es sich um eine Gruppierung handelt. |
IsProjectGrouping | boolean | Gibt an, ob es sich um eine Projektgruppierung handelt. |
IsCollapsed | boolean | Gibt an, ob das Element in der Ansicht eingeklappt ist. |
DescriptionHTML | string? | Beschreibung als HTML. |
PSPCode | string? | Projektstrukturplan-Code (PSP/WBS). |
Location | string? | Ort des Planungselements. |
CalendarId | Guid | Zugewiesener Kalender. |
ConstraintType | int32? | Einschränkungstyp für die Terminplanung. |
ConstraintDate | DateTimeOffset? | Datum der Einschränkung. |
WorkAmountSum | double? | Summe des Arbeitsaufwands. |
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.
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
/odata/PlanningUnterstützt OData-Abfrageparameter.
Ein einzelnes Planungselement abrufen
/odata/Planning({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Neues Planungselement erstellen
/odata/Planning| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiPlanning> | ✅ | JSON-Objekt mit den Planungseigenschaften. |
Verknüpfungen
Eine Verknüpfung zum Planungselement hinzufügen
/odata/Planning({key})/AddRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: itemId (guid, erforderlich) — Die ID des zu verknüpfenden Elements. |
Eine Verknüpfung vom Planungselement entfernen
/odata/Planning({key})/RemoveRelation| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: itemId (guid, erforderlich) — Die ID des zu entfernenden verknüpften Elements. |
Dokumente
Ein Dokument mit dem Planungselement verknüpfen
/odata/Planning({key})/AddDocumentToPlanning| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Body | object | ✅ | 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
/odata/Planning({key})/RemoveDocumentFromPlanning| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Body | object | ✅ | 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
/odata/Planning({key})/GetNotificationFollowerContacts()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Benachrichtigungsabonnenten zum Planungselement hinzufügen
/odata/Planning({key})/AddNotificationFollowers| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Body | object | ✅ | 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
/odata/Planning({key})/RemoveNotificationFollower| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: contactId (guid, erforderlich) — Die ID des Kontakts, der als Abonnent entfernt werden soll. |
Planungsversionen (Snapshots/Baselines)
Einen Planungs-Schnappschuß erstellen
/odata/Project({key})/CreatePlanningSnapshot(name={name})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
name | string | ✅ | Name des Snapshots. |
Einen Planungs-Schnappschuß umbenennen
/odata/Project({key})/RenamePlanningSnapshot| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: name (string, erforderlich) — Der neue Name des Snapshots. |
Einen Planungs-Schnappschuß löschen
/odata/Project({key})/DeletePlanningSnapshot| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
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
/odata/Project({key})/AddProjectGroup| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: projectClusterRelationId (guid, erforderlich) — Die ID der Projektgruppen-Verknüpfung. |
Der aufrufende Benutzer muss in allen beteiligten Projekten (Quell- und Zielprojekt) über Schreibberechtigungen für die Planung verfügen.
Die Farbe einer Projektgruppe setzen
/odata/Project({key})/SetProjectGroupColor| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | 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
/odata/Project({key})/DeleteProjectGroup| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die ProjectId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: projectClusterRelationId (guid, erforderlich) — Die ID der Projektgruppen-Verknüpfung. |
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.
Der aufrufende Benutzer muss in allen beteiligten Projekten (Quell- und Zielprojekt) über Schreibberechtigungen für die Planung verfügen.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
PlanningPublicationId | Guid (UUID) | Eindeutiger Bezeichner der Veröffentlichung. |
SourcePlanningId | Guid | Quell-Planungselement. |
SourceProjectId | Guid | Quell-Projekt. |
SourceProjectName | string? | Name des Quell-Projekts (schreibgeschützt). |
SourceProjectNumber | string? | Nummer des Quell-Projekts (schreibgeschützt). |
SourceProjectImageId | Guid? | Bild-ID des Quell-Projekts (schreibgeschützt). |
DisplayName | string? | Anzeigename der Veröffentlichung. |
TargetProjectId | Guid | Ziel-Projekt. |
TargetProjectNumber | string? | Nummer des Ziel-Projekts (schreibgeschützt). |
TargetProjectName | string? | Name des Ziel-Projekts (schreibgeschützt). |
TargetProjectImageId | Guid? | Bild-ID des Ziel-Projekts (schreibgeschützt). |
Endpunkte
Alle Planungsveröffentlichungen aller Projekte abrufen
/odata/PlanningPublicationEine einzelne Veröffentlichung abrufen
/odata/PlanningPublication({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningPublicationId. |
Neue Planungsveröffentlichung erstellen
/odata/PlanningPublication| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiPlanningPublication> | ✅ | JSON-Objekt mit den Veröffentlichungseigenschaften. |
Veröffentlichung löschen
/odata/PlanningPublication({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningPublicationId. |
Das Löschen einer Planungsveröffentlichung ist endgültig und kann nicht rückgängig gemacht werden.
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
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
PlanningTemplateId | Guid (UUID) | Eindeutiger Bezeichner der Vorlage. |
Name | string? | Name der Vorlage. |
Endpunkte
CRUD-Operationen
Alle Planungsvorlagen abrufen
/odata/PlanningTemplateEine einzelne Vorlage abrufen
/odata/PlanningTemplate({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningTemplateId. |
Neue Planungsvorlage erstellen
/odata/PlanningTemplate| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiPlanningTemplate> | ✅ | JSON-Objekt mit dem Vorlagennamen. |
Vorlage aktualisieren
/odata/PlanningTemplate({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningTemplateId. |
Body | Delta<ApiPlanningTemplate> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Vorlage löschen
/odata/PlanningTemplate({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningTemplateId. |
Das Löschen einer Planungsvorlage ist endgültig und kann nicht rückgängig gemacht werden.
Export & Download
Planungsvorlage als Datei herunterladen
/odata/PlanningTemplate({key})/DownloadPlanningTemplate()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningTemplateId. |
Vorlage im MS-Project-XML-Format herunterladen
/odata/PlanningTemplate({key})/DownloadMSProjectXML()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningTemplateId. |
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
/odata/PlanningTemplate({key})/LoadTemplateForProject| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die PlanningTemplateId. |
projectId | Guid | ✅ | Die Ziel-Projekt-ID (als Query-Parameter). |
settings | string | — | Import-Einstellungen als JSON-String (ApiPlanningTemplateImportSettings). |
Die Import-Einstellungen (ApiPlanningTemplateImportSettings) umfassen:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
CalculationMode | string? | Berechnungsmodus für die Terminplanung. |
StartDateForManualCalculation | DateTimeOffset? | Startdatum für manuelle Berechnung. |
LoadResourceData | boolean | Ressourcendaten übernehmen. |
LoadCompletionData | boolean | Fortschrittsdaten übernehmen. |
Die Planung eines Projekts als Vorlage speichern
/odata/PlanningTemplate/SaveTemplateForProject| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | object | ✅ | 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
}