API-Referenz

Die API ist über die ECM()-Factory zugänglich und in folgende Namespaces unterteilt:

Namespace Beschreibung Referenz

ecm.dms

Ordner-, Register- und Dokumentenoperationen

→ ecm.dms

ecm.security

Benutzer- und Gruppenverwaltung

→ ecm.security

ecm.system

Server-Metadaten und Objektdefinitionen

→ ecm.system

ecm.db

Direkter SQL-Zugriff über ADO

→ ecm.db

ecm.portfolio

Mappen (Portfolios) und ihre Inhalte

→ ecm.portfolio

1. ECM-Factory

from ecmind_blue_client.ecm import ECM
from ecmind_blue_client.pool import SyncPoolClient

client = SyncPoolClient(servers="<host>:4000:1", username="<username>", password="<password>")
ecm = ECM(client)

Die ECM()-Funktion ist überladen: Ein SyncPoolClient liefert ECMSync, ein AsyncPoolClient liefert ECMAsync.

2. impersonate()

ecm.impersonate(
    username: str | None = None,
    *,
    user_guid: str | None = None,
    user_id: int | None = None,
) -> ECMSync | ECMAsync

Gibt eine neue ECM-Instanz zurück, die alle Anfragen mit dem angegebenen Benutzerkontext ausführt. Der Zielbenutzer kann auf drei Wege angegeben werden, jeder davon über einen eigenen Serverparameter:

Argument Serverparameter

username

$SwitchContextUserName$

user_guid

$SwitchContextUserGUID$

user_id

$SwitchContextUserID$

Genau eines der drei Argumente muss gesetzt sein, andernfalls wird ein ValueError ausgelöst. Ein str ist immer ein Benutzername, niemals eine GUID — Benutzernamen können nur aus Ziffern bestehen oder wie eine GUID aussehen, deshalb müssen GUIDs explizit über user_guid übergeben werden.

Der ausführende Benutzer benötigt die Systemrolle Kontextwechsel.

Unterstützt sowohl den direkten Aufruf als auch die Verwendung als Context-Manager (with / async with).

  • Sync

  • Async

with ecm.impersonate("john") as ecm_john:
    ecm_john.dms.insert(MyFolder(Title="Test"))
async with ecm.impersonate("john") as ecm_john:
    await ecm_john.dms.insert(MyFolder(Title="Test"))

Die Angabe über GUID oder numerische ID funktioniert genauso:

ecm_john = ecm.impersonate(user_guid="8A1D1F2E4C7B4A9E8F0D3C5B7A9E1D2F")
ecm_john = ecm.impersonate(user_id=42)