history()

Gibt die Änderungshistorie eines Objekts über DMS.GetObjectHistory zurück. Der Server liefert ein UTF-16-kodiertes DMSHistory-XML-Dokument, das in eine ECMHistory-Instanz mit einer Liste von ECMHistoryEntry-Objekten geparst wird, sortiert nach dem neuesten Eintrag zuerst.

1. Signatur

  • Sync

  • Async

ecm.dms.history(
    model: _ECMModelBase | int,
    object_type_id: int | None = None,
) -> ECMHistory
await ecm.dms.history(
    model: _ECMModelBase | int,
    object_type_id: int | None = None,
) -> ECMHistory

2. Parameter

Parameter Typ Standard Beschreibung

model

_ECMModelBase | int

Entweder eine ECM-Modell-Instanz (deren id wird verwendet) oder eine numerische Objekt-ID.

object_type_id

int | None

None

Die numerische Objekttyp-ID. Wenn None, wird der Typ automatisch über get_object_type_by_id() ermittelt. Durch Angabe wird ein zusätzlicher Server-Roundtrip vermieden.

3. Rückgabewert

Eine ECMHistory-Instanz.

3.1. Felder von ECMHistory

Feld Typ Beschreibung

server_version

str

Versionsstring des ausführenden Servers.

timestamp

datetime

Serverseitiger Zeitstempel der Abfrage.

entries

list[ECMHistoryEntry]

Liste der Historieneinträge, sortiert nach dem neuesten zuerst.

3.2. Felder von ECMHistoryEntry

Feld Typ Beschreibung

guid

str

Eindeutige GUID des Historieneintrags (Hex-String, ohne Bindestriche).

time

datetime

Zeitstempel der Änderung.

action

ECMHistoryAction | None

Der Historien-Aktionstyp, oder None wenn die Aktions-ID unbekannt ist.

action_id

int

Numerische Aktions-ID vom Server.

action_name

str

Lokalisierter Kurzname der Aktion.

description

str

Lokalisierte Langbeschreibung der Aktion.

username

str

Interner Benutzername (z.B. "ROOT").

display_name

str

Vollständiger Anzeigename des Benutzers (z.B. "Administrator").

station

str

Hostname der Arbeitsstation.

station_id

str

GUID der Arbeitsstation.

info

str

Zusätzliche Informationen zur Aktion.

3.3. ECMHistoryAction-Enum

ECMHistoryAction ist ein IntEnum mit 56 Werten (1–56). Die am häufigsten verwendeten Mitglieder sind:

Mitglied ID Beschreibung

OBJECT_CREATED

2

Das Objekt wurde erstellt.

INDEX_DATA_MODIFIED

3

Die Indexdaten des Objekts wurden geändert.

CONTENT_CHANGED

4

Der Dokumentinhalt wurde bearbeitet.

DOCUMENT_DELETED

6

Das Dokument wurde gelöscht.

VERSION_CREATED

17

Eine Version des Dokuments wurde erstellt.

DOCUMENT_MOVED

21

Der Speicherort des Dokuments wurde geändert.

OBJECT_INFORMATION

31

Protokolleintrag aus dem Geschäftsmodell (erstellt durch set_history()).

DOCUMENT_EDITED_EXTERNALLY

56

Das Dokument wurde über eine externe Anwendung bearbeitet.

4. Ausnahmen

Ausnahme Bedingung

ValueError

model ist eine Modell-Instanz mit id gleich None.

ECMNotFoundException

object_type_id ist None und kein Objekt mit der angegebenen ID existiert auf dem Server.

5. Beispiele

5.1. Historie eines Dokuments lesen

  • Sync

  • Async

doc = ecm.dms.get(InvoiceDocument, 12345)
history = ecm.dms.history(doc)
for entry in history.entries:
    print(f"{entry.time} {entry.action_name} by {entry.display_name}")
doc = await ecm.dms.get(InvoiceDocument, 12345)
history = await ecm.dms.history(doc)
for entry in history.entries:
    print(f"{entry.time} {entry.action_name} by {entry.display_name}")

5.2. Nach Versionseinträgen filtern

  • Sync

  • Async

from ecmind_blue_client.ecm import ECMHistoryAction

history = ecm.dms.history(12345)
versions = [e for e in history.entries if e.action == ECMHistoryAction.VERSION_CREATED]
for v in versions:
    print(f"Version GUID: {v.guid}, created at {v.time}")
from ecmind_blue_client.ecm import ECMHistoryAction

history = await ecm.dms.history(12345)
versions = [e for e in history.entries if e.action == ECMHistoryAction.VERSION_CREATED]
for v in versions:
    print(f"Version GUID: {v.guid}, created at {v.time}")

5.3. Mit numerischer Objekt-ID verwenden

  • Sync

  • Async

# object_type_id angeben, um einen zusätzlichen Server-Roundtrip zu vermeiden
history = ecm.dms.history(12345, object_type_id=327685)
print(f"Server version: {history.server_version}")
print(f"Total entries: {len(history.entries)}")
history = await ecm.dms.history(12345, object_type_id=327685)
print(f"Server version: {history.server_version}")
print(f"Total entries: {len(history.entries)}")

6. Siehe auch

  • set_history() — Benutzerdefinierten Historieneintrag hinzufügen

  • files() — Dateien einer bestimmten Version über version_guid herunterladen