A simple danger alert - check it out!
Overview
| AtomPub Binding | |
| KomXwork Backend | https://partner.digitalfabrix.de/komxwork_balvi |
|
Connected |
|
|
Required: 24.2.872.0 |
|
|
Current: |
|
| KomX Identity Endpoint | https://partner.digitalfabrix.de/komxwork_balvi/identity |
3.0.1 (2025-08-05)
Feature: Unfiled/Inbox-Dokumente
- Was ist neu: Unfiled-Dokumente (Postkorb) aus komXwork stehen als CMIS-Dokumente zur Verfügung.
- Basistyp:
komx:inboxFile(Parentkomx:documentBase,cmis:document, nicht versionierbar, Content erlaubt). - Dynamische Spezial-Typen: Für jeden konfigurierten Schlüssel entsteht ein CMIS-Typ
komx:inboxFile<KEY>mit den dazugehörigen Metadatenfeldern. - Properties:
- Automatisch:
komx:inboxId(Integer) wird serverseitig anhand des Typs gesetzt (konfigurierter Inbox-Key), kann optional überschrieben werden. - Inbox-Metadaten: dynamische Felder mit Präfix
ext:<key>(z. B.ext:ProbenDatum), Herkunft: KomXwork JSON-Startparameter.
- Automatisch:
Breaking Changes
- Typ-Namen auf lowerCamelCase umgestellt (IDs, Query-Namen, Objekt-ID-Präfixe):
komx:Document→komx:documentkomx:Folder→komx:folderkomx:FileFolder→komx:fileFolderkomx:Project→komx:project
- Detail Feld casing:
komx:Detail:Feld1→komx:detail:Feld1
- Objekt-IDs in Abfragen verwenden nun die neuen Präfixe, z. B.
komx:folder-123stattkomx:Folder-123. - TIMESTAMP-Schlüsselwort in Beispielen entfernt: Zeitstempel werden als ISO-Strings in Quotes verwendet.
Neue Typen
komx:documentBase(Supertype vonkomx:document)- Properties:
komx:storageId(integer, required),komx:signatureCount(integer),komx:uuid(string) - Versionierung:
versionable = true - Query-Scope:
includedInSupertypeQuery = false
- Properties:
komx:inboxFile(Dokument-Typ)- Query-Scope:
includedInSupertypeQuery = false
- Query-Scope:
Umbenannte Typen (Detail)
- Dokument: Parent von
cmis:document→komx:documentBase; ID/Query:komx:Document→komx:document - Folder/FileFolder/Project: ID/Query von PascalCase → lowerCamelCase (siehe Breaking Changes)
Anzeigenamen/Beschreibungen
komx:document: DisplayName/Beschreibung = "Dokument"komx:fileFolder: DisplayName/Beschreibung = "Akte"komx:folder: DisplayName/Beschreibung = "Bereich"komx:project: DisplayName/Beschreibung = "Vorgang"
Property-Änderungen (Mapping)
komx:ArchiveUserId→komx:archiveUserIdkomx:CategoryIds→komx:categoryIdskomx:CloseUserId→komx:closeUserIdkomx:CollaborationResult→komx:collaborationResultkomx:DeleteUserId→komx:deleteUserIdkomx:ExpiryYearOfRetentionPeriod→komx:expiryYearOfRetentionPeriodkomx:ForeignReferenceNumber→komx:foreignReferenceNumberkomx:IsFavorite→komx:isFavoritekomx:Keywords→komx:keywordskomx:KindOfSegregation→komx:kindOfSegregationkomx:OrganizationalUnit→komx:organizationalUnitkomx:ReferenceNumber→komx:referenceNumberkomx:RetentionPeriod→komx:retentionPeriodkomx:SerialNumber→komx:serialNumberkomx:SignatureCount→komx:signatureCountkomx:State→komx:statekomx:StorageId→komx:storageId- Neu:
komx:uuid(string)
Query-Änderungen und Beispiele
- Typnamen in
FROM/IN_FOLDER/IN_TREEsind nun lowerCamelCase. - Objekt-IDs (z. B. für
IN_FOLDER) entsprechen den neuen Präfixen. - Zeitvergleiche ohne
TIMESTAMP, ISO-8601 in Quotes. - Einfluss auf Supertypen-Queries:
includedInSupertypeQuery = falsebeikomx:documentBaseundkomx:inboxFile.
Beispiele:
SELECT * FROM komx:folder WHERE cmis:name = '1111' AND cmis:objectId = 'komx:folder-1635'
SELECT cmis:name, cmis:lastModificationDate FROM komx:document
WHERE cmis:lastModificationDate >= '2022-01-18T13:31:44'
ORDER BY cmis:lastModificationDate ASC
SELECT * FROM komx:document WHERE IN_FOLDER('komx:project-2347') AND cmis:name='abc.txt'
Dynamische Felder – Implementierungsdetails (Code)
ext:<key>(Inbox/Startparameter)- Laufzeit-Definition der Properties in
TypeManagerImpl.addPropertiesToTypeDefinition(...)ausMetadataContainer. - Erstellung Inbox-Dokument (
UnfiledDocumentImpl):PropertiesDto.key→ext:<key>(case-insensitive Lookup), Typkonversionen: Integer (Double→Integer), DateTime (yyyy-MM-dd'T'HH:mm:ss.SSS→ UTCGregorianCalendar), Decimal (BigDecimal), String. - Ausgabe für REST (
KomxService#getPropertiesForCustomType): Präfix-Entfernung viaCmisTypes.removeExtPropertiesKey(...).
- Laufzeit-Definition der Properties in
komx:detail:<key>(DB-Detailfelder)- Weiterhin im Einsatz für die übrigen CMIS-Typen; wird in der Suche/Filtern ausgewertet (
KomxService#fillDetails). - Typ-spezifische Behandlung in der Query-Aufbereitung (String quotiert, Date/Decimal auch als Range möglich).
- Weiterhin im Einsatz für die übrigen CMIS-Typen; wird in der Suche/Filtern ausgewertet (