create_os_event()

Legt ein neues serverseitiges Scripting-Event (OsEvent) über dms.CreateOsEvent an und gibt dessen id zurück.

1. Signatur

  • Sync

  • Async

ecm.system.create_os_event(
    event_code: int | ECMOsEventCode,
    script: str,
    *,
    os_class_name: str | None = None,
    os_event_params: str | None = None,
    app_class: int | ECMOsAppClass | None = None,
) -> int
await ecm.system.create_os_event(
    event_code: int | ECMOsEventCode,
    script: str,
    *,
    os_class_name: str | None = None,
    os_event_params: str | None = None,
    app_class: int | ECMOsAppClass | None = None,
) -> int

2. Parameter

Parameter Typ Standard Beschreibung

event_code

int | ECMOsEventCode

Event-Auslöser. ECMOsEventCode enthält bekannte Codes (z. B. KERNEL_BEFORE_JOB=5000); ein int wird ebenfalls akzeptiert.

script

str

Ausführbarer Script-Code (JavaScript oder VBScript, abhängig vom Event-Typ). Wird als UTF-8 mit vorangestelltem Byte Order Mark (BOM) an den Server gesendet; der Server erkennt das BOM und speichert den vollen Unicode-Umfang. Jedes im Script gültige Zeichen bleibt erhalten.

os_class_name

str

None

Ziel-Objekttyp: "Application" für anwendungs-/serverweite Events, sonst die type_id als String. Ohne Angabe wird der Application-Geltungsbereich verwendet.

os_event_params

str

None

Kontextparameter, dessen Bedeutung vom event_code abhängt (Feld-GUID, Jobname oder Bibliotheksname).

app_class

int | ECMOsAppClass

None

Zielplattform: CLIENT=1, SERVER=2, WEBCLIENT=3. Ohne Angabe vom event_code abgeleitet.

3. Rückgabewert

Die int-id des neu angelegten Events (entspricht dem id-Feld eines ECMOsEvent). Verwende sie als Handle für update_os_event() und delete_os_event().

4. Beispiele

4.1. Server-Event anlegen

  • Sync

  • Async

from ecmind_blue_client.ecm import ECMOsEventCode

event_id = ecm.system.create_os_event(
    ECMOsEventCode.KERNEL_BEFORE_JOB,
    "'mein Server-Skript",
    os_class_name="Application",
)
from ecmind_blue_client.ecm import ECMOsEventCode

event_id = await ecm.system.create_os_event(
    ECMOsEventCode.KERNEL_BEFORE_JOB,
    "'mein Server-Skript",
    os_class_name="Application",
)

5. Wichtiger Hinweis

Diese Operationen greifen direkt auf die Scripting-Infrastruktur von enaio zu. Falsch konfigurierte Events können den Client oder Server stören.

Kodierung des Script-Codes. Der VBCode-Parameter (BYTE[]) wird als UTF-8 mit Byte Order Mark (BOM, EF BB BF) übertragen. Der Server erkennt UTF-8 ausschließlich am BOM: Ohne BOM interpretiert er die Bytes als Legacy-Codepage (Windows-1252), sodass reines UTF-8 zu falsch dekodierten Umlauten führt. Mit BOM bleibt der volle Unicode-Umfang erhalten (Umlaute, CJK, Emoji …​). Empirisch gegen enaio 12.0 verifiziert. Der von get_os_events() zurückgelieferte JSON-Payload ist dagegen immer reines UTF-8 ohne BOM.

6. Siehe auch