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 |
|---|---|---|---|
|
|
— |
Entweder eine ECM-Modell-Instanz (deren |
|
|
|
Die numerische Objekttyp-ID. Wenn |
3. Rückgabewert
Eine ECMHistory-Instanz.
3.1. Felder von ECMHistory
| Feld | Typ | Beschreibung |
|---|---|---|
|
|
Versionsstring des ausführenden Servers. |
|
|
Serverseitiger Zeitstempel der Abfrage. |
|
|
Liste der Historieneinträge, sortiert nach dem neuesten zuerst. |
3.2. Felder von ECMHistoryEntry
| Feld | Typ | Beschreibung |
|---|---|---|
|
|
Eindeutige GUID des Historieneintrags (Hex-String, ohne Bindestriche). |
|
|
Zeitstempel der Änderung. |
|
|
Der Historien-Aktionstyp, oder |
|
|
Numerische Aktions-ID vom Server. |
|
|
Lokalisierter Kurzname der Aktion. |
|
|
Lokalisierte Langbeschreibung der Aktion. |
|
|
Interner Benutzername (z.B. |
|
|
Vollständiger Anzeigename des Benutzers (z.B. |
|
|
Hostname der Arbeitsstation. |
|
|
GUID der Arbeitsstation. |
|
|
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 |
|---|---|---|
|
2 |
Das Objekt wurde erstellt. |
|
3 |
Die Indexdaten des Objekts wurden geändert. |
|
4 |
Der Dokumentinhalt wurde bearbeitet. |
|
6 |
Das Dokument wurde gelöscht. |
|
17 |
Eine Version des Dokuments wurde erstellt. |
|
21 |
Der Speicherort des Dokuments wurde geändert. |
|
31 |
Protokolleintrag aus dem Geschäftsmodell (erstellt durch |
|
56 |
Das Dokument wurde über eine externe Anwendung bearbeitet. |
4. Ausnahmen
| Ausnahme | Bedingung |
|---|---|
|
|
|
|
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_guidherunterladen