Zum Hauptinhalt springen

Benutzerdefinierte Felder

Benutzerdefinierte Felder ermöglichen es Ihnen, die InLoox-Datenmodelle um eigene Attribute zu erweitern. Über die API können Sie Felddefinitionen verwalten, Werte lesen und aktualisieren sowie Zugriffsberechtigungen steuern.

Dynamic-Endpunkte

Um benutzerdefinierte Felder zusammen mit den Standardeigenschaften einer Entität abzurufen, verwenden Sie die Dynamic*-Endpunkte (z. B. DynamicProject, DynamicTaskItem, DynamicContact). Diese geben alle konfigurierten benutzerdefinierten Felder als zusätzliche Spalten zurück.


CustomField

Die CustomField-Entität erlaubt den direkten Zugriff auf einzelne benutzerdefinierte Feldwerte. Jeder Wert wird durch den Feldnamen (Name) und die Objekt-ID (ObjectId) identifiziert.

Eigenschaften

PropertyTypeDescription
ObjectIdEdm.GuidID des Objekts, dem das Feld zugeordnet ist (z. B. ProjectId, TaskItemId).
NameEdm.StringInterner Spaltenname des benutzerdefinierten Felds.
ValueEdm.StringDer Wert des benutzerdefinierten Felds.
TypeEdm.StringDer Datentyp des Felds.

Endpunkte

GET/odata/CustomField(Name={keyName},ObjectId={keyObjectId})

Einen benutzerdefinierten Feldwert abrufen

ParameterTypeRequiredDescription
keyNameEdm.StringDer interne Spaltenname des Felds.
keyObjectIdEdm.GuidDie ID des zugehörigen Objekts.
GET /odata/CustomField(Name='cf_Priority',ObjectId=3fa85f64-5717-4562-b3fc-2c963f66afa6)

PATCH/odata/CustomField(Name={keyName},ObjectId={keyObjectId})

Einen benutzerdefinierten Feldwert aktualisieren

ParameterTypeRequiredDescription
keyNameEdm.StringDer interne Spaltenname des Felds.
keyObjectIdEdm.GuidDie ID des zugehörigen Objekts.
{
"Value": "Hoch"
}

POST/CustomField/BatchUpdate

Mehrere benutzerdefinierte Feldwerte gleichzeitig aktualisieren

Ermöglicht das gleichzeitige Aktualisieren mehrerer benutzerdefinierter Felder in einem einzigen Aufruf.

Stapelaktualisierung

Verwenden Sie BatchUpdate, wenn Sie mehrere benutzerdefinierte Felder für ein Objekt gleichzeitig setzen möchten. Dies ist effizienter als mehrere einzelne PATCH-Aufrufe.


CustomFieldDefinition

Die CustomFieldDefinition-Entität beschreibt die Metadaten eines benutzerdefinierten Felds, einschließlich Datentyp, Anzeigename und Validierungsregeln.

Eigenschaften

PropertyTypeDescription
CustomFieldDefinitionIdEdm.GuidEindeutige ID der Felddefinition.
ColumnNameEdm.StringInterner Spaltenname (eindeutiger Bezeichner).
DisplayNameEdm.StringAnzeigename des Felds in der Benutzeroberfläche.
TableNameEdm.StringTabelle, der das Feld zugeordnet ist (z. B. Project, TaskItem).
OrdinalPositionEdm.Int32?Sortierposition des Felds.
StringValueEdm.StringStandardwert (Zeichenkette).
IntValueEdm.Int32?Standardwert (Ganzzahl).
BoolValueEdm.BooleanStandardwert (Wahrheitswert).
WriteProtectionEnabledEdm.BooleanOb Schreibschutz aktiviert ist.
DecimalValueEdm.Double?Standardwert (Dezimalzahl).
DateTimeValueEdm.DateTimeOffset?Standardwert (Datum/Uhrzeit).
ColumnTypeEdm.Int32Datentyp der Spalte (z. B. 0=Text, 1=Ganzzahl, 2=Dezimal, 3=Datum, 4=Boolean).
DisplayRuleFieldEdm.StringFeldname für bedingte Anzeige.
DisplayRuleExpressionEdm.StringAusdruck für bedingte Anzeige.
CurrencySymbolEdm.StringWährungssymbol (bei Währungsfeldern).
WarningIfEmptyEdm.BooleanWarnung anzeigen, wenn das Feld leer ist.
AllowAddNewItemEdm.BooleanOb Benutzer neue Werte zur Auswahlliste hinzufügen dürfen.
DefaultCustomFieldDefinitionListIdEdm.Guid?ID der Standard-Auswahlliste.
DefaultCustomFieldDefinitionListValueEdm.StringStandardwert aus der Auswahlliste.

Endpunkte

GET/odata/CustomFieldDefinition

Alle Felddefinitionen abrufen

Unterstützt OData-Abfrageoptionen. Filtern Sie nach Tabelle, um Definitionen für eine bestimmte Entität zu erhalten:

GET /odata/CustomFieldDefinition?$filter=TableName eq 'Project'&$orderby=OrdinalPosition

GET/odata/CustomFieldDefinition({key})

Eine Felddefinition nach ID abrufen

ParameterTypeRequiredDescription
keyEdm.GuidDie CustomFieldDefinitionId.

POST/odata/CustomFieldDefinition

Eine neue Felddefinition erstellen

{
"ColumnName": "cf_Risikostufe",
"DisplayName": "Risikostufe",
"TableName": "Project",
"ColumnType": 0,
"OrdinalPosition": 5,
"WarningIfEmpty": false,
"WriteProtectionEnabled": false
}
info

Der ColumnName muss eindeutig pro Tabelle sein. Verwenden Sie ein Präfix wie cf_, um benutzerdefinierte Felder leicht von Systemfeldern zu unterscheiden.


PATCH/odata/CustomFieldDefinition({key})

Eine Felddefinition aktualisieren

ParameterTypeRequiredDescription
keyEdm.GuidDie CustomFieldDefinitionId.
{
"DisplayName": "Risikobewertung",
"WarningIfEmpty": true
}

DELETE/odata/CustomFieldDefinition({key})

Eine Felddefinition löschen

ParameterTypeRequiredDescription
keyEdm.GuidDie CustomFieldDefinitionId.
warnung

Das Löschen einer Felddefinition entfernt auch alle zugehörigen Werte bei allen Objekten. Diese Aktion kann nicht rückgängig gemacht werden.

Gibt 204 No Content bei Erfolg zurück.


GET/odata/CustomFieldDefinition/$count

Anzahl der Felddefinitionen abrufen

Gibt eine Ganzzahl zurück.


CustomFieldPermission

Die CustomFieldPermission-Entität steuert den Zugriff auf benutzerdefinierte Felder. Sie können festlegen, welche Benutzer oder Rollen welche Felder sehen und bearbeiten dürfen.

Eigenschaften

PropertyTypeDescription
CustomFieldPermissionIdEdm.GuidEindeutige ID der Berechtigung.
CustomFieldDefinitionIdEdm.GuidID der zugehörigen Felddefinition.
SubjectTypeEdm.Int32Typ des Berechtigungssubjekts (z. B. Benutzer, Rolle).
SubjectIdEdm.GuidID des Subjekts (Benutzer-ID oder Rollen-ID).
RoleTypeEdm.Int32?Rollentyp (optional, für rollenbasierte Berechtigungen).

Endpunkte

GET/odata/CustomFieldPermission

Alle Feldberechtigungen abrufen

Unterstützt OData-Abfrageoptionen:

GET /odata/CustomFieldPermission?$filter=CustomFieldDefinitionId eq 3fa85f64-5717-4562-b3fc-2c963f66afa6

GET/odata/CustomFieldPermission({key})

Eine Feldberechtigung nach ID abrufen

ParameterTypeRequiredDescription
keyEdm.GuidDie CustomFieldPermissionId.

POST/odata/CustomFieldPermission

Eine neue Feldberechtigung erstellen

{
"CustomFieldDefinitionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"SubjectType": 0,
"SubjectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

PATCH/odata/CustomFieldPermission({key})

Eine Feldberechtigung aktualisieren

ParameterTypeRequiredDescription
keyEdm.GuidDie CustomFieldPermissionId.
{
"RoleType": 1
}

DELETE/odata/CustomFieldPermission({key})

Eine Feldberechtigung löschen

ParameterTypeRequiredDescription
keyEdm.GuidDie CustomFieldPermissionId.

Gibt 204 No Content bei Erfolg zurück.


GET/odata/CustomFieldPermission/$count

Anzahl der Feldberechtigungen abrufen

Gibt eine Ganzzahl zurück.


GET/odata/CustomFieldPermission/GetBlockedFieldsForEntity(entityType={entityType},entityId={entityId})

Gesperrte Felder für eine Entität abrufen

ParameterTypeRequiredDescription
entityTypeEdm.StringDer Entitätstyp (z. B. Project, TaskItem).
entityIdEdm.GuidDie ID der spezifischen Entität.

Gibt eine Liste der benutzerdefinierten Felder zurück, auf die der aktuelle Benutzer keinen Zugriff hat.

GET /odata/CustomFieldPermission/GetBlockedFieldsForEntity(entityType='Project',entityId=3fa85f64-5717-4562-b3fc-2c963f66afa6)
Zugriffskontrolle

Wenn ein benutzerdefiniertes Feld als gesperrt zurückgegeben wird, kann der aktuelle Benutzer dieses Feld weder lesen noch bearbeiten. Verwenden Sie diese Funktion, um Ihre Benutzeroberfläche entsprechend anzupassen.


Dynamische Endpunkte

Dynamische Endpunkte stellen benutzerdefinierte Feldwerte gemeinsam mit den Standardeigenschaften der Entität in einem einzelnen flachen Ergebnissatz bereit. Anstatt CustomField separat abzufragen und über ObjectId zu verknüpfen, können Sie benutzerdefinierte Felddaten direkt auf der Entität lesen und filtern.

Verfügbare dynamische Entitätsmengen

Dynamischer EndpunktBasisentität
/odata/DynamicProjectProject
/odata/DynamicTaskItemTaskItem
/odata/DynamicBudgetBudget
/odata/DynamicLineItemLineItem
/odata/DynamicTimeEntryTimeEntry
/odata/DynamicContactContact (siehe Kontakte)
GET/odata/DynamicProject

Projekte mit enthaltenen benutzerdefinierten Feldspalten abrufen.

GET/odata/DynamicTaskItem

Aufgabenelemente mit enthaltenen benutzerdefinierten Feldspalten abrufen.

GET/odata/DynamicBudget

Budgets mit enthaltenen benutzerdefinierten Feldspalten abrufen.

GET/odata/DynamicLineItem

Positionen mit enthaltenen benutzerdefinierten Feldspalten abrufen.

GET/odata/DynamicTimeEntry

Zeiteinträge mit enthaltenen benutzerdefinierten Feldspalten abrufen.

Benennung der benutzerdefinierten Feldspalten

Benutzerdefinierte Feldspalten erscheinen mit dem Präfix CustomField_, gefolgt vom ColumnName der entsprechenden CustomFieldDefinition. Ein Feld mit ColumnName = Priority erscheint beispielsweise als CustomField_Priority in der dynamischen Antwort.

Diese Spalten mit Präfix können in allen Standard-OData-Abfrageoptionen verwendet werden:

AbfrageoptionBeispiel
$select$select=Name,CustomField_Priority
$filter$filter=CustomField_Priority eq 'High'
$orderby$orderby=CustomField_Priority asc

Beispiel: Projekte nach benutzerdefiniertem Feld filtern

GET /odata/DynamicProject?$filter=CustomField_Priority eq 'High'
GET /odata/DynamicProject?$select=ProjectId,Name,CustomField_Priority,CustomField_Region&$filter=CustomField_Region eq 'EMEA'&$orderby=CustomField_Priority asc
tipp

Dynamische Endpunkte sind schreibgeschützte Ansichten. Um benutzerdefinierte Feldwerte zu aktualisieren, verwenden Sie die oben beschriebenen CustomField-PATCH- oder BatchUpdate-Endpunkte.