insert_variant()
Legt eine neue Variante eines bestehenden Dokuments an und gibt (object_id, object_type_id) zurück. Intern wird dms.XMLInsert mit gesetztem variantparent_id-Attribut auf dem <Object>-Element verwendet. Die übergebene Modell-Instanz wird nicht verändert.
Die neue Variante erbt ihren Ablageort vom übergeordneten Dokument, daher werden folder_id / register_id nicht akzeptiert.
Wird die vollständige Instanz direkt nach dem Anlegen benötigt, ist insert_variant_and_get() die kompaktere Alternative.
1. Signatur
-
Sync
-
Async
ecm.dms.insert_variant(
model: ECMDocumentModel,
parent_document_id: int | ECMDocumentModel,
files: list[JobRequestFile] | None = None,
*,
same_level: bool | None = None,
set_active: bool | None = None,
transfer_retention: bool | None = None,
check_mandatory: bool = True,
) -> tuple[int, int]
await ecm.dms.insert_variant(
model: ECMDocumentModel,
parent_document_id: int | ECMDocumentModel,
files: list[JobRequestFile] | None = None,
*,
same_level: bool | None = None,
set_active: bool | None = None,
transfer_retention: bool | None = None,
check_mandatory: bool = True,
) -> tuple[int, int]
2. Parameter
| Name | Typ | Beschreibung |
|---|---|---|
|
|
Modell-Instanz mit den Indexdaten der neuen Variante. Muss ein Dokument-Modell sein — Ordner- oder Register-Modelle lösen |
|
|
Übergeordnetes Dokument — entweder als numerische ID oder als |
|
|
Optionale Dateiliste für die neue Variante. Standard: |
|
|
|
|
|
|
|
|
|
|
|
Wenn |
4. Ausnahmen
ECMException-
Der Server hat den Insert abgelehnt (
ObjectID == -1). TypeError-
modelist keineECMDocumentModel-Instanz. ValueError-
parent_document_idist eineECMDocumentModel-Instanz ohneid, odercheck_mandatory=Trueund ein Pflichtfeld ist nicht gesetzt.
5. Beispiele
5.1. Untervariante mit Standardwerten
-
Sync
-
Async
parent = ecm.dms.get(InvoiceDocument, parent_id)
variant = InvoiceDocument(Title="Revision 2")
variant_id, _ = ecm.dms.insert_variant(variant, parent)
print(variant_id)
parent = await ecm.dms.get(InvoiceDocument, parent_id)
variant = InvoiceDocument(Title="Revision 2")
variant_id, _ = await ecm.dms.insert_variant(variant, parent)
print(variant_id)
5.2. Geschwistervariante, aktiviert, mit Datei
-
Sync
-
Async
from ecmind_blue_client.rpc import JobRequestFileFromPath
variant_id, _ = ecm.dms.insert_variant(
InvoiceDocument(Title="Revision 2"),
parent,
files=[JobRequestFileFromPath("/tmp/rev2.pdf")],
same_level=True,
set_active=True,
)
from ecmind_blue_client.rpc import JobRequestFileFromPath
variant_id, _ = await ecm.dms.insert_variant(
InvoiceDocument(Title="Revision 2"),
parent,
files=[JobRequestFileFromPath("/tmp/rev2.pdf")],
same_level=True,
set_active=True,
)
6. Siehe auch
-
insert_variant_and_get() — kombiniert
insert_variant()undget()in einem Aufruf, wenn die vollständige Instanz benötigt wird -
insert() — legt ein Nicht-Varianten-Objekt an