5994ac6928
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
36 lines
2.0 KiB
Markdown
36 lines
2.0 KiB
Markdown
# `signal_fire` — Internes Ereignis auslösen
|
|
|
|
**Zweck:** Feuert ein Ereignis auf dem internen Event-Bus der Anwendung, sodass registrierte Listener reagieren — ohne Umweg über die HTTP-API. Als Argumente können skalare Werte oder geladene Fachobjekte übergeben werden. Ist der Event-Bus nicht verfügbar, wird der Task mit Warnhinweis übersprungen.
|
|
|
|
**Parameter**
|
|
|
|
| Name | Pflicht? | Default | Beschreibung |
|
|
|---|---|---|---|
|
|
| `event` | ja | — | Ereignisname. |
|
|
| `korrelation` | nein | *(leer)* | Korrelationsschlüssel (z. B. `{{vkz}}`); persistiert das Signal für `signal_wait`-Empfänger. |
|
|
| `payload` | nein | *(leer)* | String/JSON; landet beim Empfänger in dessen `payload_var`. |
|
|
| `<arg>` | nein | — | Wiederholbar; skalares Argument (Platzhalter erlaubt). |
|
|
| `<load type="massnahme" md5="…"/>` | nein | — | Lädt eine Maßnahme als Argument. |
|
|
| `<load type="person" id="…"/>` | nein | — | Lädt eine Person als Argument. |
|
|
| `<load type="ereignis" id="…"/>` | nein | — | Lädt ein Ereignis als Argument. |
|
|
|
|
Die Argumente werden in XML-Reihenfolge übergeben; nicht ladbare `<load>`-Objekte werden übersprungen.
|
|
|
|
**Eingangswerte:** Platzhalter in `event`, `<arg>` und `<load>`-Attributen (z. B. `{{massnahme_md5}}`, `{{ICH.id}}`).
|
|
|
|
**Ausgangswerte:** Keine Kontextvariablen. Wirft ein Listener eine Exception, endet der Task mit `error`.
|
|
|
|
```xml
|
|
<task type="signal_fire" id="emit_done">
|
|
<config>
|
|
<event>massnahme.saved</event>
|
|
<korrelation>{{vkz}}</korrelation>
|
|
<payload>{{ergebnis_json}}</payload>
|
|
<load type="massnahme" md5="{{massnahme_md5}}" />
|
|
<arg>{{ICH.id}}</arg>
|
|
</config>
|
|
</task>
|
|
```
|
|
|
|
**Hinweis:** Sind `<korrelation>` und/oder `<payload>` gesetzt, wird das Signal zusätzlich zum Event-Bus-Feuer persistiert und weckt Workflows, die per `signal_wait` darauf lauschen (über `resume_at` + `cron-resume`). Die Persistenz nutzt eine systemseitig eingerichtete Signal-Tabelle; fehlt sie, wird nur gewarnt und das Event-Bus-Feuern läuft normal weiter.
|