get()
Lädt ein einzelnes Objekt vom Server anhand seiner ID und gibt es als typisierte Modell-Instanz zurück. Wirft ECMNotFoundException, wenn kein Objekt mit der angegebenen ID existiert.
ECM-Modell-Referenz — vollständige Beschreibung aller system-Eigenschaften (system.id, system.rights, system.base_params, system.file_properties usw.) und der Änderungsverfolgung.
Intern stehen zwei Abrufmodi zur Verfügung, die sich in Funktionsumfang und Performance unterscheiden — siehe [_abrufmodi].
1. Signatur
-
Sync
-
Async
ecm.dms.get(
model_class: type[T],
object_id: int,
object_type_id: int | None = None,
*,
rights: bool = False,
base_params: bool = False,
file_properties: bool = False,
variants: bool = False,
use_result_list: bool = False,
fields: list[str | ECMField] | None = None,
) -> T
await ecm.dms.get(
model_class: type[T],
object_id: int,
object_type_id: int | None = None,
*,
rights: bool = False,
base_params: bool = False,
file_properties: bool = False,
variants: bool = False,
use_result_list: bool = False,
fields: list[str | ECMField] | None = None,
) -> T
2. Parameter
| Name | Typ | Beschreibung |
|---|---|---|
|
|
Die Modelklasse des gesuchten Objekts. Bestimmt den Objekttyp und die zurückgegebenen Felder. |
|
|
Die numerische ID des gesuchten Objekts. |
|
|
Optionale numerische Objekttyp-ID. Nur im Standard-Modus ( |
|
|
Wenn |
|
|
Wenn |
|
|
Wenn |
|
|
Wenn |
|
|
Schaltet den Abrufmodus um — siehe [_abrufmodi]. Standard: |
|
|
Schränkt die zurückgegebenen Felder ein. Nur bei |
4. Ausnahmen
ECMNotFoundException-
Wird geworfen, wenn kein Objekt mit der angegebenen ID auf dem Server existiert.
5. Abrufmodi
get() unterstützt zwei interne Abrufmethoden, die sich in Umfang und Einschränkungen unterscheiden:
use_result_list=False (Standard) |
use_result_list=True |
|
|---|---|---|
Server-Job |
|
|
Performance |
Schneller (direkter ID-Lookup) |
Langsamer (Abfrage + Paging) |
Dokument-Ortsfelder |
Nicht verfügbar |
Verfügbar |
|
Verfügbar |
Verfügbar |
|
Nicht verfügbar (ignoriert) |
Verfügbar |
Objekte ohne Ablageort |
Abrufbar |
Wirft |
|
|
6. Beispiele
6.1. Einfacher Abruf
-
Sync
-
Async
folder = ecm.dms.get(InvoiceFolder, 12345)
print(folder.Title, folder.Year)
folder = await ecm.dms.get(InvoiceFolder, 12345)
print(folder.Title, folder.Year)
6.2. Mit Fehlerbehandlung
-
Sync
-
Async
from ecmind_blue_client.ecm import ECMNotFoundException
try:
folder = ecm.dms.get(InvoiceFolder, 12345)
print(folder.Title)
except ECMNotFoundException:
print("Objekt nicht gefunden")
from ecmind_blue_client.ecm import ECMNotFoundException
try:
folder = await ecm.dms.get(InvoiceFolder, 12345)
print(folder.Title)
except ECMNotFoundException:
print("Objekt nicht gefunden")
6.3. Rechte und Verwaltungsparameter
-
Sync
-
Async
folder = ecm.dms.get(InvoiceFolder, 12345, rights=True, base_params=True)
print(folder.system.rights.edit_metadata)
print(folder.system.base_params.creator)
folder = await ecm.dms.get(InvoiceFolder, 12345, rights=True, base_params=True)
print(folder.system.rights.edit_metadata)
print(folder.system.base_params.creator)
6.4. Dokument mit Dateiinformationen und Varianten
-
Sync
-
Async
doc = ecm.dms.get(InvoiceDocument, 12345, file_properties=True, variants=True)
print(doc.system.file_properties.extension, doc.system.file_properties.size)
for v in doc.system.variants:
print(v.doc_ver, "aktiv" if v.is_active else "")
doc = await ecm.dms.get(InvoiceDocument, 12345, file_properties=True, variants=True)
print(doc.system.file_properties.extension, doc.system.file_properties.size)
for v in doc.system.variants:
print(v.doc_ver, "aktiv" if v.is_active else "")
6.5. Dokument-Ortsfelder abrufen (use_result_list)
folder_id und register_id sind nur mit use_result_list=True verfügbar:
-
Sync
-
Async
doc = ecm.dms.get(InvoiceDocument, 12345, use_result_list=True)
print(doc.system.folder_id) # ID des übergeordneten Ordners
print(doc.system.register_id) # ID des übergeordneten Registers
doc = await ecm.dms.get(InvoiceDocument, 12345, use_result_list=True)
print(doc.system.folder_id)
print(doc.system.register_id)
6.6. Nur bestimmte Felder laden (use_result_list + fields)
-
Sync
-
Async
folder = ecm.dms.get(
InvoiceFolder, 12345,
use_result_list=True,
fields=[InvoiceFolder.Title, InvoiceFolder.Year],
)
print(folder.Title, folder.Year)
# folder.Status ist None (nicht angefordert)
folder = await ecm.dms.get(
InvoiceFolder, 12345,
use_result_list=True,
fields=[InvoiceFolder.Title, InvoiceFolder.Year],
)
print(folder.Title, folder.Year)