# `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`. | | `` | nein | — | Wiederholbar; skalares Argument (Platzhalter erlaubt). | | `` | nein | — | Lädt eine Maßnahme als Argument. | | `` | nein | — | Lädt eine Person als Argument. | | `` | nein | — | Lädt ein Ereignis als Argument. | Die Argumente werden in XML-Reihenfolge übergeben; nicht ladbare ``-Objekte werden übersprungen. **Eingangswerte:** Platzhalter in `event`, `` und ``-Attributen (z. B. `{{massnahme_md5}}`, `{{ICH.id}}`). **Ausgangswerte:** Keine Kontextvariablen. Wirft ein Listener eine Exception, endet der Task mit `error`. ```xml massnahme.saved {{vkz}} {{ergebnis_json}} {{ICH.id}} ``` **Hinweis:** Sind `` und/oder `` 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.