Aktionen

Aktionen können verwendet werden, um das Formular interaktiver zu gestalten. Sie können durch Interaktion mit einer Komponente ausgelöst werden (siehe Button onClick, onChange und onPainted), durch eine Antwort vom Server (beispielsweise bei einem Submit oder einer Validierung) oder durch eine Nachricht an ein iFrame.

ActionDefinition

Die grundlegende Struktur ist hierbei stets dieselbe:

action (enum)

Name der aufzurufenden Aktion. Die nachfolgenden gelisteten Aktionen sind alle möglichen Aktionen. Andere Aktionen anzugeben, ist nicht möglich.

payload (ActionPayload)

Der Payload ist ein Objekt, dessen Struktur von der jeweiligen Aktion abhängt. Jede Aktion definiert ihre eigene Payload-Struktur.

Beispiel – Download:
{
  "action" : "downloadFile",
  "payload": { "fileName": "testfile.txt", "data": "Hello World"}
}

Serverinteraktion

Der Nachrichtenaustausch mit einem Server wird vom Formular aus gestartet. Dafür werden die HTTP-Methoden GET und POST genutzt. Wird POST verwendet, kann der Server als Antwort beliebige Aktionen auslösen. Bei Aktionen, die GET verwenden, können ausschließlich die von der Aktion abhängigen Daten geladen werden. Dabei funktioniert eine Serverinteraktion grundsätzlich ähnlich zum Nachrichtenaustausch beim iFrame. Die Struktur des Aufrufs und der Antwort weicht aber etwas ab.

Struktur – POST

Ein Request kann beispielsweise durch einen Submit ausgelöst werden. Dadurch wird eine POST-Nachricht an den Server mit der konfigurierten URL gesendet.

Es gibt zwei mögliche Formate für den Request. Welches verwendet wird, hängt davon ab, ob metaData oder content in der Konfiguration bzw. der Action-Payload definiert wurden:

1. Neue Struktur (Standard, wenn metaData oder content definiert ist)

Wenn spezifische metaData oder content-Bindungen konfiguriert sind, werden nur die ausgewählten Daten und aufbereiteten Metadaten gesendet:

Struktur Request (Spezifischer Content/MetaData)
{
  "action": "METHOD_NAME_THAT_TRIGGERED_REQUEST",
  "metaData": { (1)
    "time": "2026-09-15T11:00:00.000Z"
  },
  "content": { (2)
  }
}
1 Enthält die zusammengeführten Metadaten aus Formular-Konfiguration und Call-Einstellungen sowie einen automatischen Zeitstempel (time).
2 Enthält die per Binding ausgewerteten Daten. Standardmäßig entspricht dies "data": "${/data}".

2. Bisherige Struktur (Fallback)

Wenn weder metaData noch content definiert sind, wird aus Gründen der Abwärtskompatibilität weiterhin der vollständige Zustand des Formulars gesendet:

Struktur Request (Fallback / Legacy)
{
  "action"     : "METHOD_NAME_THAT_TRIGGERED_REQUEST",
  "form"       : "COMPLETE_FORM_OBJECT", (1)
  "originator" : "ORIGINATOR_OBJECT" (2)
}
1 Enthält die aktuelle Formularkonfiguration inklusive des aktuellen Zustands der Daten
2 Enthält Informationen von wem oder was die Nachricht ausgelöst wurde. Z. B. ein Button oder ein Event

Für beide Strukturen wird eine Response als JSON-Objekt im obigen Format erwartet.

Struktur – Response
{
  "action"  : "METHOD_NAME_WHICH_SHOULD_BE_EXECUTED",
  "payload" : {
    "_comment": "optional object depending on method"
  }
}

Struktur – GET

Bei get-Aktionen ist die Struktur anders, da GET Nachrichten genutzt werden und dort keine Request-Objekte mitgesendet werden. Dementsprechend erwarten get-Aktionen, dass die Nachricht direkt zur Anfrage passt und verwendet werden kann. Siehe auch getFormConfig.

Struktur – Response
{
  "_comment": "object depending on method"
}

Keywords: