insert()
Legt ein neues Objekt auf dem Server an und gibt (object_id, object_type_id) zurück. Intern wird dms.XMLInsert verwendet. Die übergebene Modell-Instanz wird nicht verändert.
Wird die vollständige Instanz direkt nach dem Anlegen benötigt, ist insert_and_get() die kompaktere Alternative.
1. Signatur
-
Sync
-
Async
ecm.dms.insert(
model: T,
files: list[JobRequestFile] | None = None,
*,
folder_id: int | ECMFolderModel | None = None,
register_id: int | ECMRegisterModel | None = None,
check_mandatory: bool = True,
) -> tuple[int, int]
await ecm.dms.insert(
model: T,
files: list[JobRequestFile] | None = None,
*,
folder_id: int | ECMFolderModel | None = None,
register_id: int | ECMRegisterModel | None = None,
check_mandatory: bool = True,
) -> tuple[int, int]
2. Parameter
| Name | Typ | Beschreibung |
|---|---|---|
|
|
Die zu erstellende Modell-Instanz mit den gewünschten Feldwerten. Die Instanz wird nicht verändert. |
|
|
Optionale Dateiliste für das neue Dokument. Nur für |
|
|
Ordner, in dem das Objekt abgelegt wird — entweder eine numerische ID oder eine |
|
|
Register, in dem das Dokument abgelegt wird ( |
|
|
Wenn |
4. Ausnahmen
ECMException-
Der Server hat den Insert abgelehnt (
ObjectID == -1). ECMMissingArgumentException-
folder_idfehlt bei einem Register- oder Dokument-Modell. Subklasse vonECMException. TypeError-
fileswurde für ein Ordner- oder Register-Modell übergeben. ValueError-
check_mandatory=Trueund ein Pflichtfeld ist nicht gesetzt.
5. Beispiele
5.1. Einfacher Ordner
-
Sync
-
Async
object_id, object_type_id = ecm.dms.insert(
InvoiceFolder(Title="Rechnung 2024", Year=2024)
)
print(object_id)
object_id, object_type_id = await ecm.dms.insert(
InvoiceFolder(Title="Rechnung 2024", Year=2024)
)
print(object_id)
5.2. Register in einem Ordner ablegen
-
Sync
-
Async
object_id, _ = ecm.dms.insert(
InvoiceRegister(Name="Eingangsrechnungen"),
folder_id=folder.system.id,
)
object_id, _ = await ecm.dms.insert(
InvoiceRegister(Name="Eingangsrechnungen"),
folder_id=folder.system.id,
)
5.3. Dokument mit Datei und Ablageort
-
Sync
-
Async
from ecmind_blue_client.rpc import JobRequestFileFromPath
object_id, _ = ecm.dms.insert(
InvoiceDocument(Title="Rechnung Nr. 42"),
files=[JobRequestFileFromPath("/tmp/rechnung.pdf")],
folder_id=folder.system.id,
register_id=register.system.id,
)
print(object_id)
from ecmind_blue_client.rpc import JobRequestFileFromPath
object_id, _ = await ecm.dms.insert(
InvoiceDocument(Title="Rechnung Nr. 42"),
files=[JobRequestFileFromPath("/tmp/rechnung.pdf")],
folder_id=folder.system.id,
register_id=register.system.id,
)
print(object_id)
5.4. Modell-Instanz als folder_id / register_id übergeben
Statt einer numerischen ID kann direkt eine Modell-Instanz übergeben werden — insert() entnimmt daraus automatisch die ID:
-
Sync
-
Async
folder = ecm.dms.insert_and_get(InvoiceFolder(Title="Rechnung 2024"))
register = ecm.dms.insert_and_get(
InvoiceRegister(Name="Eingang"),
folder_id=folder, # ECMFolderModel-Instanz statt int
)
object_id, _ = ecm.dms.insert(
InvoiceDocument(Title="Rechnung Nr. 42"),
folder_id=folder, # ECMFolderModel-Instanz
register_id=register, # ECMRegisterModel-Instanz
)
folder = await ecm.dms.insert_and_get(InvoiceFolder(Title="Rechnung 2024"))
register = await ecm.dms.insert_and_get(
InvoiceRegister(Name="Eingang"),
folder_id=folder,
)
object_id, _ = await ecm.dms.insert(
InvoiceDocument(Title="Rechnung Nr. 42"),
folder_id=folder,
register_id=register,
)
6. Siehe auch
-
insert_and_get() — kombiniert
insert()undget()in einem Aufruf, wenn die vollständige Instanz benötigt wird -
update() — aktualisiert ein bestehendes Objekt