Ecmind_blue_client: Release Notes 1.0.0rc1

Gerne wollen wir euch informieren, dass wir die Version 1.0.0rc1 für eure Tests freigegeben haben. Wir würden uns sehr über Rückmeldungen wie Bug-Reports, Änderungswünsche und natürlich hauch Feature-Requests von euch freuen.

Installation

Um die neue Version zu verwenden, müsst ihr explizit die Pre-Release-Version anfordern:

pip

## pip

# Variante A: exakte Version festnageln (empfohlen, eindeutig)
pip install "ecmind_blue_client==1.0.0rc1"

# Variante B: neuestes Pre-Release dieser Bibliothek zulassen
pip install --pre ecmind_blue_client

Oder falls ihr uv verwendet

## uv

# In ein Projekt aufnehmen (exakte Version)
uv add "ecmind_blue_client==1.0.0rc1"

# Pre-Releases generell erlauben und neuesten RC ziehen
uv add --prerelease=allow ecmind_blue_client

Kompatibilität

Die Version 1.0.0rc1 sollte vollständig mit der aktuellen 0.9.2 kompatibel sein. Wir empfehlen aber, schrittweise vom bisherigen TCPClient bzw. TCPPoolClient auf die neue ECM-Abstraktion zu wechseln.

Die Mindestanforderung an Python ist von 3.11 auf 3.12 angehoben worden.

Dokumentation

Die neue API hat nun auch eine eigene Dokumentation unter https://ecmind-blue-client.docs.ecmind.ch wo ihr Details zur API finden könnt.

Änderungen in der 1.0.0 rc1

Mit der Version 1.0.0 (aktuell Release Candidate 1.0.0rc1) erhält der ecmind_blue_client eine grundlegend erweiterte, moderne API. Die bisherige Low-Level-Schnittstelle bleibt erhalten - neu hinzugekommen ist eine vollständige, typsichere Abstraktionsschicht.

Zentrale Neuerungen

  • Neue High-Level-API ecm.* - eine moderne, typsichere Abstraktion über das enaio®-Protokoll, gegliedert in fachliche Namespaces: ecm.dms, ecm.system, ecm.security, ecm.db und ecm.workflow.
  • Synchron und asynchron - sämtliche Operationen stehen wahlweise als synchrone oder asynchrone Variante zur Verfügung (SyncPoolClient / AsyncPoolClient), inklusive Verbindungs-Pooling mit Statistiken.
  • Typisiertes Modell-System (ORM-ähnlich) - Ordner, Register und Dokumente lassen sich als typisierte Modellklassen anlegen, lesen, aktualisieren und löschen (insert / update / upsert), inkl. Pflichtfeld-Prüfung, Tabellenfeldern, schreibgeschützten Feldern und Dokumentvarianten.
  • DMS-Abfragen - komfortabler Query-Builder und -Parser für DMS-Suchen, kombinierte Abfragen, LOL-/HOL-Unterstützung sowie Volltextsuche direkt am typisierten Modell.
  • Workflow-Funktionen - Organisationen, Vertretungen und Abwesenheiten verwalten, Vorgangslisten je Benutzer abrufen sowie Workflows per API starten (start_process) inkl. typisierter Workflow-Variablen-Modelle.
  • Weitere Operationen - Dokument-Historie, Check-out/Check-in, Berechtigungsprüfung, Lizenz- und Modulinformationen, Benutzer-/Gruppen-/Rollenverwaltung, Export des Sicherheitssystems und freie SQL-Ausführung.
  • Code-Generatoren - ecm-generate-models erzeugt typisierte Modellklassen aus der enaio®-Objektdefinition; ecm-generate-workflow-models erzeugt typisierte Workflow-Variablen-Modelle.
1 „Gefällt mir“

Wir haben gerade die Version 1.0.0rc2 hinzugefügt.

Änderungen

  • Explizite Funktion replace_table_fields() für die Methoden ecm.dms.update und ecm.dms.upsert um die Option REPLACE_TABLE_FIELDS explizit setzen zu können.
  • in der Methode ecm.dms.upsert Tag Reihenfolge im XML der Tags <Fields> und <Search> explizit festgelegt, da Search niemals nach Fields kommen darf.
  • Unterstützung von PageControls ohne interne Namen. In diesem Fall werden nun die page_ids (GUID des PageControls) verwendet.

Installation

Um die neue Version zu verwenden, müsst ihr explizit die Pre-Release-Version anfordern:

pip

## pip

# Variante A: exakte Version festnageln (empfohlen, eindeutig)
pip install "ecmind_blue_client==1.0.0rc2"

# Variante B: neuestes Pre-Release dieser Bibliothek zulassen
pip install --pre ecmind_blue_client

Oder falls ihr uv verwendet

## uv

# In ein Projekt aufnehmen (exakte Version)
uv add "ecmind_blue_client==1.0.0rc2"

# Pre-Releases generell erlauben und neuesten RC ziehen
uv add --prerelease=allow ecmind_blue_client
1 „Gefällt mir“

Wir haben gerade die Version 1.0.0rc3 hinzugefügt.

Änderungen

  • ecm.dms.search unterstützt nun auch die Suche anhand der Tabellen Felder. Optional mit Zeilenbezug.
  • Enum Felder sind jetzt in Where Clauses angenehmer zu verwenden. Bisher musste jeweils MeinFeld == MeinEnum.Wert1.value geschrieben werden. Nun ist auch einfach MeinFeld == MeinEnum.Wert1 möglich.
  • Einige Bugfixes in der Generierung von Workflow Modellen sind nun behoben

Dokumenation

1 „Gefällt mir“

ecmind_blue_client 1.0.0rc4 & 1.0.0rc5

Zwei neue Release Candidates der 1.0.0-Reihe (für RC4 gab es hier noch keinen Eintrag). Die öffentliche API bleibt gegenüber 1.0.0rc3 unverändert, abgesehen von den neuen Funktionen unten.

Änderungen

1.0.0rc4

  • Neu: Model.system.<Feld> auf Klassenebene als abfragbares Feld, z. B. select(Doc).where(Folder.system.id == folder.system.id).
  • Neu: Gruppenverwaltung auf ecm.security: create_group(), update_group(), delete_group(), empty_group().
  • Fix: Lizenz-Jobs (check_license(), module_info()) funktionieren wieder auf enaio 12+; ein unbekanntes Modul liefert sauber ECMNotFoundException.
  • Fix (#15434): Felder lassen sich per update() wieder leeren. Ein auf None gesetztes Feld wird jetzt als field_function="NULL" an den Server gesendet.
  • Fix (#15431): ecm.db.select() brach bei führendem Zeilenumbruch im SQL mit IndexError ab; das Statement wird nun links getrimmt.

1.0.0rc5

  • Fix: ecm-generate-models ließ datentragende Felder mit GROUP-Control aus (z. B. PostDoc: hash, group, user). Diese werden jetzt als ECMField erzeugt; rein visuelle Gruppen bleiben ausgeschlossen. Modelldateien bitte neu generieren.

Installation

pip:

# A) genaue Version
pip install -U ecmind_blue_client==1.0.0rc5
# B) neueste Version inkl. Pre-Releases
pip install -U --pre ecmind_blue_client

uv:

# A) genaue Version
uv add ecmind_blue_client==1.0.0rc5
# B) Pre-Releases erlauben
uv add --prerelease=allow ecmind_blue_client