Dokumente
Die Dokumentenverwaltung in InLoox umfasst drei Entitäten: Document, DocumentFolder und DocumentFolderStructure. Über die OData-API können Sie Dokumente hochladen, verknüpfen, Ordnerstrukturen verwalten und automatische Ordnerregeln definieren.
Entitätsübersicht
| Entität | Beschreibung |
|---|---|
| Document | Einzelnes Dokument (Datei, Hyperlink oder Dateiverweis) |
| DocumentFolder | Ordner innerhalb der Projektdokumentenstruktur |
| DocumentFolderStructure | Automatische Ordnerstrukturregeln |
Dokumente sind stets einem Projekt zugeordnet. Verwenden Sie ProjectId beim Filtern, um nur Dokumente eines bestimmten Projekts abzurufen.
Document
Ein Dokument stellt eine Datei, einen Hyperlink oder einen Dateiverweis dar, der in einem Projekt gespeichert ist. Dokumente unterstützen Metadaten, Notizen, Favoriten und Beziehungen zu anderen Entitäten.
InLoox unterstützt verschiedene Speichertypen (StoreType): InLoox Cloud-Speicher, SharePoint online sowie (exklusiv in InLoox Self-Hosted) lokale Dateisysteme. Der Wert von StoreType bestimmt, wie das Dokument physisch gespeichert wird.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
DocumentId | Guid (UUID) | Eindeutiger Bezeichner des Dokuments (Primärschlüssel). |
FileName | string? | Dateiname. |
ProjectId | Guid? | Zugehöriges Projekt. |
DocumentFolderId | Guid | Zugehöriger Ordner. |
DescriptionHTML | string? | Beschreibung als HTML. |
OutlookPreviewText | string? | Vorschautext aus Outlook. |
IsInternetLink | boolean | Gibt an, ob das Dokument ein Hyperlink ist. |
IsFileLink | boolean | Gibt an, ob das Dokument ein Dateiverweis ist. |
IsStandardFile | boolean | Gibt an, ob es sich um eine Standarddatei handelt. |
StoreType | int32 | Speichertyp. Werte: 0 = Nicht definiert, 1 = Dateiserver, 2 = Share Point online, 3 = InLoox Dokumentenspeicher. |
PhysicalId | string? | Physische ID im Speichersystem. |
IsOrphaned | boolean | Gibt an, ob das Dokument verwaist ist. |
SourceFolder | string? | Quellordner. |
DocumentFolderPath | string? | Vollständiger Ordnerpfad. |
CreatedByContactId | Guid? | Ersteller des Dokuments. |
FileType | string? | Dateityp (Erweiterung). |
State | string? | Dokumentstatus. |
UpdatedAt | DateTimeOffset? | Zeitpunkt der letzten Aktualisierung. |
CreatedAt | DateTimeOffset? | Erstellungszeitpunkt. |
Endpunkte
CRUD-Operationen
Alle Dokumente aller Projekte abrufen
/odata/DocumentUnterstützt OData-Abfrageparameter.
Ein einzelnes Dokument abrufen
/odata/Document({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentId. |
Neues Dokument erstellen
/odata/Document| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiDocument> | ✅ | JSON-Objekt mit den Dokumenteigenschaften. |
Dokument aktualisieren
/odata/Document({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentId. |
Body | Delta<ApiDocument> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Dokument löschen
/odata/Document({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentId. |
Das Löschen eines Dokuments kann nicht rückgängig gemacht werden.
Kommentare
Einen Kommentar zum Dokument hinzufügen
/odata/Document({key})/AddNote| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentId. |
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: htmlText (string, erforderlich) — HTML-formatierter Kommentarinhalt. notificationContactIds (Guid[], erforderlich) — Kontakt-IDs, die benachrichtigt werden sollen (kann leer sein []). |
Einen Kommentar vom Dokument löschen
/odata/Document/DeleteNote(noteRelationId={noteRelationId})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
noteRelationId | Guid | ✅ | Die ID der Kommentarverknüpfung. |
Das Löschen eines Kommentars kann nicht rückgängig gemacht werden.
Verknüpfungen & Objekte
Alle Dokumente für ein bestimmtes Objekt abrufen
/odata/Document({key})/GetDocumentsForObject()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die Objekt-ID. |
Verknüpfte Elemente eines Dokuments abrufen
/odata/Document({key})/GetRelatedItems()| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentId. |
Favoriten
Favoritenstatus eines Dokuments umschalten
/odata/Document({key})/ToggleFavorite(isFavorite={isFavorite})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentId. |
isFavorite | boolean | ✅ | true zum Markieren als Favorit, false zum Entfernen. |
Links & Hyperlinks
Eine Datei-Vernüpfung erstellen
/odata/Document/AddFileLink| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: projectId (Guid, erforderlich) — Das Projekt, dem der Dateiverweis hinzugefügt wird. linkAddress (string, erforderlich) — Die URL/Adresse der verknüpften Datei. parentFolderId (Guid?, optional) — Übergeordneter Ordner; wenn nicht angegeben, wird der Verweis im Stammordner erstellt. |
Einen Hyperlink (URL) erstellen
/odata/Document/AddHyperlink| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: projectId (Guid, erforderlich) — Das Projekt, dem der Hyperlink hinzugefügt wird. linkAddress (string, erforderlich) — Die URL des Hyperlinks. parentFolderId (Guid?, optional) — Übergeordneter Ordner; wenn nicht angegeben, wird der Hyperlink im Stammordner erstellt. |
Eine bestehende Datei-Vernüpfung oder einen Hyperlink (URL) ändern
/odata/Document/ChangeFileLink| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | object | ✅ | JSON-Objekt mit folgenden Feldern: documentId (Guid, erforderlich) — Das bestehende Dokument, dessen Dateiverweis aktualisiert werden soll. linkAddress (string, erforderlich) — Die neue URL/der neue Pfad für den Dateiverweis. |
Sonderfunktionen
Maximale Datei-Upload-Größe abrufen
/odata/Document/GetFileUploadSizeLimit()Getrackte Dokumente eines Projekts abrufen
/odata/Document/GetTrackedDocumentsForProject(projectId={projectId})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
projectId | Guid | ✅ | Die Projekt-ID. |
Prüfen, ob ein Dokument mit einer bestimmten Internet-Nachrichten-ID im Projekt existiert
/odata/Document/HasDocumentWithInternetMessageIdInProject(internetMessageId={internetMessageId},projectId={projectId})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
internetMessageId | string | ✅ | Die Internet-Nachrichten-ID (aus E-Mail-Header). |
projectId | Guid | ✅ | Die Projekt-ID. |
Mit HasDocumentWithInternetMessageIdInProject können Sie prüfen, ob eine E-Mail bereits im Projekt gespeichert wurde. Verwenden Sie GetTrackedDocumentsForProject, um alle getrackten E-Mail-Dokumente eines Projekts aufzulisten.
DocumentFolder
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
DocumentFolderId | Guid (UUID) | Eindeutiger Bezeichner des Ordners. |
ParentDocumentFolderId | Guid? | Übergeordneter Ordner (null = Stammordner). |
FolderName | string? | Ordnername. |
RelativePath | string? | Relativer Pfad des Ordners. |
ProjectId | Guid? | Zugehöriges Projekt. |
IsOrphaned | boolean | Gibt an, ob der Ordner verwaist ist. |
CreatedDate | DateTimeOffset | Erstellungsdatum. |
Endpunkte
Alle Dokumentenordner abrufen
/odata/DocumentFolderEinen einzelnen Ordner abrufen
/odata/DocumentFolder({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentFolderId. |
Neuen Ordner erstellen
/odata/DocumentFolder| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiDocumentFolder> | ✅ | JSON-Objekt mit den Ordnereigenschaften. |
Ordner aktualisieren
/odata/DocumentFolder({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentFolderId. |
Body | Delta<ApiDocumentFolder> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Ordner löschen
/odata/DocumentFolder({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentFolderId. |
Das Löschen eines Ordners entfernt auch alle darin enthaltenen Dokumente. Diese Aktion kann nicht rückgängig gemacht werden.
DocumentFolderStructure
Die DocumentFolderStructure-Entität definiert automatische Ordnerstrukturregeln, die beim Erstellen neuer Projekte angewendet werden.
Datenmodell
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
DocumentStructureId | Guid (UUID) | Eindeutiger Bezeichner der Strukturregel. |
FolderPath | string? | Ordnerpfad, der automatisch erstellt wird. |
RuleField | string? | Feld, auf dem die Regel basiert. |
RuleExpression | string? | Regelausdruck für die automatische Erstellung. |
Ordnerstrukturregeln automatisieren die Verzeichniserstellung. Wenn ein Projekt dem definierten RuleField und RuleExpression entspricht, wird die zugehörige Ordnerhierarchie automatisch erstellt. Diese Regeln können unter Kontoeinstellungen > Dokumente konfiguriert werden.
Endpunkte
Alle Ordnerstrukturregeln abrufen
/odata/DocumentFolderStructureEine einzelne Ordnerstrukturregel nach ID abrufen
/odata/DocumentFolderStructure({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentStructureId. |
Neue Ordnerstrukturregel erstellen
/odata/DocumentFolderStructure| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Body | Delta<ApiDocumentFolderStructure> | ✅ | JSON-Objekt mit den Regeleigenschaften. |
Ordnerstrukturregel aktualisieren
/odata/DocumentFolderStructure({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentStructureId. |
Body | Delta<ApiDocumentFolderStructure> | ✅ | JSON-Objekt mit den zu aktualisierenden Feldern. |
Ordnerstrukturregel löschen
/odata/DocumentFolderStructure({key})| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key | Guid | ✅ | Die DocumentStructureId. |
Das Löschen einer Ordnerstrukturregel kann nicht rückgängig gemacht werden.
OData-Abfragebeispiele
Alle Dokumente eines Projekts
GET /odata/Document?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
Nur Hyperlinks abrufen
GET /odata/Document?$filter=IsInternetLink eq true
Dokumente nach Dateityp filtern
GET /odata/Document?$filter=FileType eq '.pdf'
Ordnerstruktur eines Projekts
GET /odata/DocumentFolder?$filter=ProjectId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'&$orderby=RelativePath
Hyperlink erstellen
POST /odata/Document/AddHyperlink
Content-Type: application/json
{
"Url": "https://example.com/spezifikation",
"DisplayName": "Technische Spezifikation",
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"DocumentFolderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Neuen Ordner erstellen
POST /odata/DocumentFolder
Content-Type: application/json
{
"FolderName": "Verträge",
"ProjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ParentDocumentFolderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}