variants()
1. Signatur
-
Sync
-
Async
ecm.dms.variants(
document: int | ECMDocumentModel | ECMModelDocumentVariant,
object_type_id: int | None = None,
) -> list[ECMModelDocumentVariant]
await ecm.dms.variants(
document: int | ECMDocumentModel | ECMModelDocumentVariant,
object_type_id: int | None = None,
) -> list[ECMModelDocumentVariant]
2. Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
|
|
— |
Das Dokument: numerische ID, Modell-Instanz (deren |
|
|
|
Die numerische Objekttyp-ID. Wenn |
3. Rückgabewert
list[ECMModelDocumentVariant] — die Wurzelvarianten mit ihren verschachtelten children.
Die Liste ist leer, wenn das Dokument keine Varianten hat; das ist bei jedem Dokument ohne
aktiviertes W-Modul der Fall.
Jeder Knoten enthält doc_id, doc_ver, is_active, doc_parent, children und level
(siehe ECM-Modell). walk() flacht einen Knoten samt aller
Unterknoten tiefensuchend ab:
for root in ecm.dms.variants(12345):
for variant in root.walk():
print(" " * variant.level, variant.doc_ver, "aktiv" if variant.is_active else "")
4. Ausnahmen
| Ausnahme | Bedingung |
|---|---|
|
|
|
Der Server liefert kein Objekt zu dieser ID. Eine nicht existierende ID meldet der Server je nach Rechtelage auch als |
5. Beispiele
5.1. Variantenbaum per ID lesen
-
Sync
-
Async
tree = ecm.dms.variants(12345)
print([variant.doc_ver for root in tree for variant in root.walk()])
tree = await ecm.dms.variants(12345)
print([variant.doc_ver for root in tree for variant in root.walk()])
5.2. Alle Varianten-IDs eines Dokuments sammeln
-
Sync
-
Async
doc = ecm.dms.get(InvoiceDocument, 12345)
ids = [variant.doc_id for root in ecm.dms.variants(doc) for variant in root.walk()]
doc = await ecm.dms.get(InvoiceDocument, 12345)
ids = [variant.doc_id for root in await ecm.dms.variants(doc) for variant in root.walk()]
6. Siehe auch
-
active_variant() — nur die aktive Variante lesen
-
set_active_variant() — aktive Variante umschalten
-
insert_variant() — neue Variante anlegen
-
ECM-Modell —
system.variantsbeim typisierten Laden