copy()
Kopiert einen Ordner, ein Register oder ein Dokument an einen neuen Speicherort
über dms.XMLCopy.
Bei copy_cascading=True werden beim Kopieren eines Registers oder Ordners auch
alle enthaltenen Kindobjekte rekursiv kopiert. Bei link_document=True wird beim
Kopieren eines Dokuments ein zweiter Speicherort (Verknüpfung) für denselben
Indexdatensatz erstellt statt einer vollständig unabhängigen Kopie.
1. Signatur
-
Sync
-
Async
ecm.dms.copy(
model: ECMFolderModel | ECMRegisterModel | ECMDocumentModel | int,
object_type: int | str | None = None,
*,
folder_id: int | ECMFolderModel | None = None,
register_id: int | ECMRegisterModel | None = None,
register_type: int | None = None,
copy_cascading: bool = False,
link_document: bool = False,
) -> None
await ecm.dms.copy(
model: ECMFolderModel | ECMRegisterModel | ECMDocumentModel | int,
object_type: int | str | None = None,
*,
folder_id: int | ECMFolderModel | None = None,
register_id: int | ECMRegisterModel | None = None,
register_type: int | None = None,
copy_cascading: bool = False,
link_document: bool = False,
) -> None
2. Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
|
|
— |
Das zu kopierende Objekt. Entweder eine Modellinstanz (muss |
|
|
|
Nur erforderlich, wenn |
|
|
|
Zielordner — eine numerische ID oder eine |
|
|
|
Zielregister — eine numerische ID oder eine |
|
|
|
Typ-ID des Zielregisters. Wird automatisch ermittelt, wenn |
|
|
|
Bei |
|
|
|
Bei |
3. Ausnahmen
| Ausnahme | Bedingung |
|---|---|
|
|
|
|
4. Beispiele
4.1. Dokument in einen anderen Ordner kopieren
-
Sync
-
Async
doc = ecm.dms.select(RechnungsDokument).where(RechnungsDokument.Titel == "Original").execute()[0]
ziel = ecm.dms.select(RechnungsOrdner).where(RechnungsOrdner.Jahr == 2025).execute()[0]
ecm.dms.copy(doc, folder_id=ziel, register_id=-1)
doc = (await ecm.dms.select(RechnungsDokument).where(RechnungsDokument.Titel == "Original").execute())[0]
ziel = (await ecm.dms.select(RechnungsOrdner).where(RechnungsOrdner.Jahr == 2025).execute())[0]
await ecm.dms.copy(doc, folder_id=ziel, register_id=-1)
4.2. Ordner mit allen Kindobjekten kopieren
-
Sync
-
Async
ordner = ecm.dms.select(RechnungsOrdner).where(RechnungsOrdner.Jahr == 2023).execute()[0]
# Kopiert den Ordner sowie alle enthaltenen Register und Dokumente
ecm.dms.copy(ordner, folder_id=archiv_id, register_id=-1, copy_cascading=True)
ordner = (await ecm.dms.select(RechnungsOrdner).where(RechnungsOrdner.Jahr == 2023).execute())[0]
await ecm.dms.copy(ordner, folder_id=archiv_id, register_id=-1, copy_cascading=True)
4.3. Verknüpfte Kopie erstellen (zweiter Speicherort)
-
Sync
-
Async
# Das Dokument erhält einen zweiten Speicherort — beide verweisen auf denselben Indexdatensatz
ecm.dms.copy(doc, folder_id=zweiter_ordner_id, register_id=-1, link_document=True)
await ecm.dms.copy(doc, folder_id=zweiter_ordner_id, register_id=-1, link_document=True)