model_by_name()
Gibt eine zur Laufzeit erzeugte Modellklasse (Subklasse von ECMFolderModel,
ECMRegisterModel oder ECMDocumentModel) zurück, gebunden an den übergebenen
internen Namen. Der Maintype wird über ecm.system.definition() (gecacht) aufgelöst,
und die passende Factory (make_folder_model / make_register_model /
make_document_model) wird intern aufgerufen.
Verwendung, wenn nur der interne Name bekannt ist — aus einer Konfiguration, einem generischen Tool oder einem Skript — und der Maintype (Ordner, Register, Dokument) nicht vorab feststeht.
1. Signatur
-
Sync
-
Async
ecm.dms.model_by_name(internal_name: str) -> type[_ECMModelBase]
await ecm.dms.model_by_name(internal_name: str) -> type[_ECMModelBase]
2. Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
|
|
Interner Name des Objekttyps ( |
3. Rückgabewert
Eine Subklasse von ECMFolderModel, ECMRegisterModel oder ECMDocumentModel,
gebunden an internal_name. Die Klasse hat keine typisierten Feld-Deskriptoren —
Felder werden über Model["Feldname"] (für where/order_by) bzw.
extra_fields (beim Instanziieren) adressiert.
4. Ausnahmen
| Ausnahme | Bedingung |
|---|---|
|
Kein Objekttyp mit |
5. Hinweise
-
ecm.system.definition()wird intern aufgerufen und ist nach dem ersten Zugriff gecacht. Der Helper hat damit ab dem zweiten Aufruf keine zusätzlichen Server-Roundtrips. -
Jeder Aufruf erzeugt eine neue Klasse (konsistent mit den Factories
make_folder_modeletc.). Für wiederholte Queries auf denselben Typ sollte die Rückgabe in einer Variable zwischengespeichert werden. -
Dokumenttypen umfassen alle Maintypes 1–8 (
DOC_GRAYSCALE,DOC_BW,DOC_COLOR,DOC_WINDOWS,DOC_MULTIMEDIA,DOC_MAIL,DOC_XML,DOC_CONTAINER).
6. Beispiele
6.1. Dynamisch aufgelöste Modellklasse mit select() kombinieren
-
Sync
-
Async
Model = ecm.dms.model_by_name("Rechnung")
results = ecm.dms.select(Model).where(
Model["Belegnummer"] == "R-2026-001",
).execute()
Model = await ecm.dms.model_by_name("Rechnung")
results = await ecm.dms.select(Model).where(
Model["Belegnummer"] == "R-2026-001",
).execute()
6.2. Generisches Skript über mehrere Typen
-
Sync
-
Async
for name in ["Rechnung", "Vertrag", "Ordner_Kunde"]:
Model = ecm.dms.model_by_name(name)
for obj in ecm.dms.select(Model).limit(5).execute():
print(name, obj.system.id)
for name in ["Rechnung", "Vertrag", "Ordner_Kunde"]:
Model = await ecm.dms.model_by_name(name)
for obj in await ecm.dms.select(Model).limit(5).execute():
print(name, obj.system.id)
7. Siehe auch
-
select() — HOL-Query-Builder, nimmt die zurückgegebene Klasse direkt entgegen
-
select_lol() — LOL-Query-Builder mit derselben Eingabe
-
definition() — gecachte Objekttypdefinitionen
-
Modell-Referenz —
make_folder_model/make_register_model/make_document_model