active_variant()

Gibt die Variante mit gesetztem is_active aus dem Variantenbaum eines Dokuments zurück. Sucht im gesamten Baum, also auch in Unterebenen, und benötigt wie variants() keine Modellklasse.

Wird das Dokument sowieso typisiert geladen, ist dok.system.active_variant der bessere Weg: ecm.dms.get(Model, id, variants=True) bzw. ecm.dms.select(Model).variants() bringen den Baum mit, die Property leitet daraus ohne weiteren Serveraufruf ab. Diese Methode hier ist für Dokumente gedacht, von denen nur die ID vorliegt — in einer Schleife über viele Dokumente kostet sie einen Job pro Dokument. Siehe ECM-Modell.

1. Signatur

  • Sync

  • Async

ecm.dms.active_variant(
    document: int | ECMDocumentModel | ECMModelDocumentVariant,
    object_type_id: int | None = None,
) -> ECMModelDocumentVariant | None
await ecm.dms.active_variant(
    document: int | ECMDocumentModel | ECMModelDocumentVariant,
    object_type_id: int | None = None,
) -> ECMModelDocumentVariant | None

2. Parameter

Parameter Typ Standard Beschreibung

document

int | ECMDocumentModel | ECMModelDocumentVariant

Das Dokument: numerische ID, Modell-Instanz oder ein Knoten aus einem bereits gelesenen Variantenbaum.

object_type_id

int | None

None

Die numerische Objekttyp-ID. Wenn None, wird sie aus der Modell-Instanz übernommen oder über get_object_type_by_id() ermittelt.

3. Rückgabewert

ECMModelDocumentVariant | None — die aktive Variante, oder None, wenn das Dokument keine Varianten hat.

4. Ausnahmen

Ausnahme Bedingung

ValueError

document ist eine Modell-Instanz mit id gleich None.

ECMNotFoundException

Der Server liefert kein Objekt zu dieser ID.

5. Beispiele

5.1. Aktive Variante eines Dokuments ermitteln

  • Sync

  • Async

active = ecm.dms.active_variant(12345)
if active is not None:
    print(active.doc_id, active.doc_ver, active.level)
active = await ecm.dms.active_variant(12345)
if active is not None:
    print(active.doc_id, active.doc_ver, active.level)

5.2. Dateien der aktiven Variante laden

  • Sync

  • Async

active = ecm.dms.active_variant(doc)
if active is not None:
    files = ecm.dms.files(active.doc_id)
active = await ecm.dms.active_variant(doc)
if active is not None:
    files = await ecm.dms.files(active.doc_id)

6. Siehe auch