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.
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
| Property | Type | Description |
|---|---|---|
ObjectId | Edm.Guid | ID des Objekts, dem das Feld zugeordnet ist (z. B. ProjectId, TaskItemId). |
Name | Edm.String | Interner Spaltenname des benutzerdefinierten Felds. |
Value | Edm.String | Der Wert des benutzerdefinierten Felds. |
Type | Edm.String | Der Datentyp des Felds. |
Endpunkte
/odata/CustomField(Name={keyName},ObjectId={keyObjectId})Einen benutzerdefinierten Feldwert abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
keyName | Edm.String | ✅ | Der interne Spaltenname des Felds. |
keyObjectId | Edm.Guid | ✅ | Die ID des zugehörigen Objekts. |
GET /odata/CustomField(Name='cf_Priority',ObjectId=3fa85f64-5717-4562-b3fc-2c963f66afa6)
/odata/CustomField(Name={keyName},ObjectId={keyObjectId})Einen benutzerdefinierten Feldwert aktualisieren
| Parameter | Type | Required | Description |
|---|---|---|---|
keyName | Edm.String | ✅ | Der interne Spaltenname des Felds. |
keyObjectId | Edm.Guid | ✅ | Die ID des zugehörigen Objekts. |
{
"Value": "Hoch"
}
/CustomField/BatchUpdateMehrere benutzerdefinierte Feldwerte gleichzeitig aktualisieren
Ermöglicht das gleichzeitige Aktualisieren mehrerer benutzerdefinierter Felder in einem einzigen Aufruf.
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
| Property | Type | Description |
|---|---|---|
CustomFieldDefinitionId | Edm.Guid | Eindeutige ID der Felddefinition. |
ColumnName | Edm.String | Interner Spaltenname (eindeutiger Bezeichner). |
DisplayName | Edm.String | Anzeigename des Felds in der Benutzeroberfläche. |
TableName | Edm.String | Tabelle, der das Feld zugeordnet ist (z. B. Project, TaskItem). |
OrdinalPosition | Edm.Int32? | Sortierposition des Felds. |
StringValue | Edm.String | Standardwert (Zeichenkette). |
IntValue | Edm.Int32? | Standardwert (Ganzzahl). |
BoolValue | Edm.Boolean | Standardwert (Wahrheitswert). |
WriteProtectionEnabled | Edm.Boolean | Ob Schreibschutz aktiviert ist. |
DecimalValue | Edm.Double? | Standardwert (Dezimalzahl). |
DateTimeValue | Edm.DateTimeOffset? | Standardwert (Datum/Uhrzeit). |
ColumnType | Edm.Int32 | Datentyp der Spalte (z. B. 0=Text, 1=Ganzzahl, 2=Dezimal, 3=Datum, 4=Boolean). |
DisplayRuleField | Edm.String | Feldname für bedingte Anzeige. |
DisplayRuleExpression | Edm.String | Ausdruck für bedingte Anzeige. |
CurrencySymbol | Edm.String | Währungssymbol (bei Währungsfeldern). |
WarningIfEmpty | Edm.Boolean | Warnung anzeigen, wenn das Feld leer ist. |
AllowAddNewItem | Edm.Boolean | Ob Benutzer neue Werte zur Auswahlliste hinzufügen dürfen. |
DefaultCustomFieldDefinitionListId | Edm.Guid? | ID der Standard-Auswahlliste. |
DefaultCustomFieldDefinitionListValue | Edm.String | Standardwert aus der Auswahlliste. |
Endpunkte
/odata/CustomFieldDefinitionAlle 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
/odata/CustomFieldDefinition({key})Eine Felddefinition nach ID abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die CustomFieldDefinitionId. |
/odata/CustomFieldDefinitionEine neue Felddefinition erstellen
{
"ColumnName": "cf_Risikostufe",
"DisplayName": "Risikostufe",
"TableName": "Project",
"ColumnType": 0,
"OrdinalPosition": 5,
"WarningIfEmpty": false,
"WriteProtectionEnabled": false
}
Der ColumnName muss eindeutig pro Tabelle sein. Verwenden Sie ein Präfix wie cf_, um benutzerdefinierte Felder leicht von Systemfeldern zu unterscheiden.
/odata/CustomFieldDefinition({key})Eine Felddefinition aktualisieren
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die CustomFieldDefinitionId. |
{
"DisplayName": "Risikobewertung",
"WarningIfEmpty": true
}
/odata/CustomFieldDefinition({key})Eine Felddefinition löschen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die CustomFieldDefinitionId. |
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.
/odata/CustomFieldDefinition/$countAnzahl 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
| Property | Type | Description |
|---|---|---|
CustomFieldPermissionId | Edm.Guid | Eindeutige ID der Berechtigung. |
CustomFieldDefinitionId | Edm.Guid | ID der zugehörigen Felddefinition. |
SubjectType | Edm.Int32 | Typ des Berechtigungssubjekts (z. B. Benutzer, Rolle). |
SubjectId | Edm.Guid | ID des Subjekts (Benutzer-ID oder Rollen-ID). |
RoleType | Edm.Int32? | Rollentyp (optional, für rollenbasierte Berechtigungen). |
Endpunkte
/odata/CustomFieldPermissionAlle Feldberechtigungen abrufen
Unterstützt OData-Abfrageoptionen:
GET /odata/CustomFieldPermission?$filter=CustomFieldDefinitionId eq 3fa85f64-5717-4562-b3fc-2c963f66afa6
/odata/CustomFieldPermission({key})Eine Feldberechtigung nach ID abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die CustomFieldPermissionId. |
/odata/CustomFieldPermissionEine neue Feldberechtigung erstellen
{
"CustomFieldDefinitionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"SubjectType": 0,
"SubjectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
/odata/CustomFieldPermission({key})Eine Feldberechtigung aktualisieren
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die CustomFieldPermissionId. |
{
"RoleType": 1
}
/odata/CustomFieldPermission({key})Eine Feldberechtigung löschen
| Parameter | Type | Required | Description |
|---|---|---|---|
key | Edm.Guid | ✅ | Die CustomFieldPermissionId. |
Gibt 204 No Content bei Erfolg zurück.
/odata/CustomFieldPermission/$countAnzahl der Feldberechtigungen abrufen
Gibt eine Ganzzahl zurück.
/odata/CustomFieldPermission/GetBlockedFieldsForEntity(entityType={entityType},entityId={entityId})Gesperrte Felder für eine Entität abrufen
| Parameter | Type | Required | Description |
|---|---|---|---|
entityType | Edm.String | ✅ | Der Entitätstyp (z. B. Project, TaskItem). |
entityId | Edm.Guid | ✅ | Die 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)
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 Endpunkt | Basisentität |
|---|---|
/odata/DynamicProject | Project |
/odata/DynamicTaskItem | TaskItem |
/odata/DynamicBudget | Budget |
/odata/DynamicLineItem | LineItem |
/odata/DynamicTimeEntry | TimeEntry |
/odata/DynamicContact | Contact (siehe Kontakte) |
/odata/DynamicProjectProjekte mit enthaltenen benutzerdefinierten Feldspalten abrufen.
/odata/DynamicTaskItemAufgabenelemente mit enthaltenen benutzerdefinierten Feldspalten abrufen.
/odata/DynamicBudgetBudgets mit enthaltenen benutzerdefinierten Feldspalten abrufen.
/odata/DynamicLineItemPositionen mit enthaltenen benutzerdefinierten Feldspalten abrufen.
/odata/DynamicTimeEntryZeiteinträ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:
| Abfrageoption | Beispiel |
|---|---|
$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
Dynamische Endpunkte sind schreibgeschützte Ansichten. Um benutzerdefinierte Feldwerte zu aktualisieren, verwenden Sie die oben beschriebenen CustomField-PATCH- oder BatchUpdate-Endpunkte.