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 (Parent komx: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.

Breaking Changes

  • Typ-Namen auf lowerCamelCase umgestellt (IDs, Query-Namen, Objekt-ID-Präfixe):
    • komx:Documentkomx:document
    • komx:Folderkomx:folder
    • komx:FileFolderkomx:fileFolder
    • komx:Projectkomx:project
  • Detail Feld casing:
    • komx:Detail:Feld1komx:detail:Feld1
  • Objekt-IDs in Abfragen verwenden nun die neuen Präfixe, z. B. komx:folder-123 statt komx:Folder-123.
  • TIMESTAMP-Schlüsselwort in Beispielen entfernt: Zeitstempel werden als ISO-Strings in Quotes verwendet.

Neue Typen

  • komx:documentBase (Supertype von komx:document)
    • Properties: komx:storageId (integer, required), komx:signatureCount (integer), komx:uuid (string)
    • Versionierung: versionable = true
    • Query-Scope: includedInSupertypeQuery = false
  • komx:inboxFile (Dokument-Typ)
    • Query-Scope: includedInSupertypeQuery = false

Umbenannte Typen (Detail)

  • Dokument: Parent von cmis:documentkomx:documentBase; ID/Query: komx:Documentkomx: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:ArchiveUserIdkomx:archiveUserId
  • komx:CategoryIdskomx:categoryIds
  • komx:CloseUserIdkomx:closeUserId
  • komx:CollaborationResultkomx:collaborationResult
  • komx:DeleteUserIdkomx:deleteUserId
  • komx:ExpiryYearOfRetentionPeriodkomx:expiryYearOfRetentionPeriod
  • komx:ForeignReferenceNumberkomx:foreignReferenceNumber
  • komx:IsFavoritekomx:isFavorite
  • komx:Keywordskomx:keywords
  • komx:KindOfSegregationkomx:kindOfSegregation
  • komx:OrganizationalUnitkomx:organizationalUnit
  • komx:ReferenceNumberkomx:referenceNumber
  • komx:RetentionPeriodkomx:retentionPeriod
  • komx:SerialNumberkomx:serialNumber
  • komx:SignatureCountkomx:signatureCount
  • komx:Statekomx:state
  • komx:StorageIdkomx:storageId
  • Neu: komx:uuid (string)

Query-Änderungen und Beispiele

  • Typnamen in FROM/IN_FOLDER/IN_TREE sind 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 = false bei komx:documentBase und komx: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(...) aus MetadataContainer.
    • Erstellung Inbox-Dokument (UnfiledDocumentImpl): PropertiesDto.keyext:<key> (case-insensitive Lookup), Typkonversionen: Integer (Double→Integer), DateTime (yyyy-MM-dd'T'HH:mm:ss.SSS → UTC GregorianCalendar), Decimal (BigDecimal), String.
    • Ausgabe für REST (KomxService#getPropertiesForCustomType): Präfix-Entfernung via CmisTypes.removeExtPropertiesKey(...).
  • 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).