configure_user_absence()

Markiert einen oder mehrere Benutzer in einer Workflow-Organisation als abwesend oder anwesend über wfm.ConfigUserAbsence. Der Server benachrichtigt zusätzlich alle laufenden Server und verbundenen enaio® editor-for-workflow-Instanzen über die Statusänderung.

1. Signatur

  • Sync

  • Async

ecm.workflow.configure_user_absence(
    organisation: str | ECMOrganisation,
    absences: Mapping[ECMOrganisationObjectIdLike, bool],
) -> None
await ecm.workflow.configure_user_absence(
    organisation: str | ECMOrganisation,
    absences: Mapping[ECMOrganisationObjectIdLike, bool],
) -> None

Der Typ-Alias ECMOrganisationObjectIdLike steht für str | ECMOrganisationObject | ECMOrganisationObjectRef — d. h. überall, wo eine GUID erwartet wird, kann auch direkt eine Objekt-Instanz oder Referenz übergeben werden.

2. Parameter

Parameter Typ Standard Beschreibung

organisation

str | ECMOrganisation

Organisations-ID als String oder eine ECMOrganisation-Instanz.

absences

Mapping[ECMOrganisationObjectIdLike, bool]

Mapping Benutzer-ID → Abwesenheits-Flag. True markiert den Benutzer als abwesend, False als anwesend. Schlüssel können GUID-Strings, ECMOrganisationObject- oder ECMOrganisationObjectRef-Instanzen sein.

3. Rückgabewert

Keiner. Wirft eine Ausnahme, wenn der Server-Job einen Fehlercode zurückliefert.

4. Beispiele

4.1. Einen Benutzer als abwesend markieren

  • Sync

  • Async

org = ecm.workflow.active_organisation()
ecm.workflow.configure_user_absence(
    org,
    {"46E29564BC464929A0A2ECA5387B4855": True},
)
org = await ecm.workflow.active_organisation()
await ecm.workflow.configure_user_absence(
    org,
    {"46E29564BC464929A0A2ECA5387B4855": True},
)

4.2. Mehrere Benutzer in einem Aufruf umschalten

  • Sync

  • Async

org = ecm.workflow.active_organisation()
users = {o.name: o for o in ecm.workflow.organisation_objects(org)}

ecm.workflow.configure_user_absence(
    org,
    {
        users["USER_WITH_RIGHTS"]: True,     # abwesend
        users["USER_WITHOUT_RIGHTS"]: False, # anwesend
    },
)
org = await ecm.workflow.active_organisation()
users = {o.name: o for o in await ecm.workflow.organisation_objects(org)}

await ecm.workflow.configure_user_absence(
    org,
    {
        users["USER_WITH_RIGHTS"]: True,
        users["USER_WITHOUT_RIGHTS"]: False,
    },
)

4.3. Abwesenheit mit absent_users() verifizieren

  • Sync

  • Async

org = ecm.workflow.active_organisation()
user_id = "46E29564BC464929A0A2ECA5387B4855"

ecm.workflow.configure_user_absence(org, {user_id: True})
assert user_id in ecm.workflow.absent_users(org)

ecm.workflow.configure_user_absence(org, {user_id: False})
assert user_id not in ecm.workflow.absent_users(org)
org = await ecm.workflow.active_organisation()
user_id = "46E29564BC464929A0A2ECA5387B4855"

await ecm.workflow.configure_user_absence(org, {user_id: True})
assert user_id in await ecm.workflow.absent_users(org)

await ecm.workflow.configure_user_absence(org, {user_id: False})
assert user_id not in await ecm.workflow.absent_users(org)

5. Hinweise

  • Pro Aufruf können beliebig viele Benutzer aktualisiert werden.

  • Der Server benachrichtigt automatisch alle anderen Server und verbundenen enaio® editor-for-workflow-Instanzen.

  • Abwesende Benutzer können anschließend über absent_users() abgefragt werden.

6. Siehe auch