Inhalt
Erklärung aller Eigenschaften von Events, Formularen und Scripts.
Events
Events bestehen immer aus dem auslösenden Datensatz und der Art des Ereignis getrennt durch einen Doppelpunkt. Ein Beispiel wäre alarm:create
wobei alarm
sich auf die Alarmierung bezieht und create
auf die Erstellung.
Einem Script werden Informationen über das Auslösende Event in der Variable event
bereit gestellt. Das Event Objekt hat immer folgende Eigenschaften:
type
: der Komplette Typ des Events, im obigen Beispiel wäre dies"alarm:create"
model
: Der Typ des auslösende Datensatzes, im Beispiel"alarm"
action
: Die auslösende Aktion des Events, im Beispiel"create"
payload
: Die Daten des auslösenden Datensatzes, im Beispiel wären dies die Informationen der Alarmierung.
Formulare
Ein Formular ist ein JSON-Array aus Felddefinitionen. Die folgenden Eigeschaften hat eine Felddefinition:
type
: Der Typ des Feldes, aktuell mögliche Wertecheckbox
,text
&select
.key
: Der Bezeichner unter welchem der Wert des Feldes dem Script übergeben wird. Beispiel der Wert der Definition"key": "test"
würde dem Script alsconfiguration.test
beim Aufruf übergeben werden.label
: Eine Bezeichnung für das Feld, wird im UI beim erstellen einer Insatnz angezeigt.description
: Eine optionale Beschreibung für Felder die mehr Kontext benötigen.defaultValue
: Ein optionaler Standardwert, welcher genutzt wird, wenn bei der Erstellung der Instanz kein Wet angegeben wird.options
(nur bei Typselect
): Ein JSON array aus objekten mit den Eigenschaftenlabel
undvalue
.
Werte können auch bei gesetztem Standard Wert ein Leerer String (""
) oder nil
sein. Ungültige Werte werden aktuell ignoriert.
Beispiel einer kompletten Formular Definition
[ { "type": "text", "key": "url", "label": "URL", "description": "URL des Servers an den Sie Einsätze übertragen möchten." }, { "type": "checkbox", "key": "onlyTitle", "label": "Nur das Stichwort übertragen", "defaultValue": true }, { "type":"select", "key": "format", "label": "Format", "description": "Datenformat in dem die Daten übertragen werden sollen", "options": [ { "label": "JSON", "value": "json" }, { "label": "XML", "value": "xml" } ] } ]
Scripts
Scripts haben die Möglichkeit, die im Event erhaltenen Daten zu verarbeiten und als http(s)-request weiter an externe Dienste zu übergeben.
Einschränkungen
Sie haben Einschränkungen in Laufzeit, Anzahl & Dauer der Requests und der maximalen Speichernutzung.
Während eines http(s) Requests wird die Ausführung des Scripts pausiert. Die Zeit, die das Script auf den Request wartet, zählt nicht zum Laufzeitlimit.
Die Funktionen der bereitgestellten Bibliotheken finden Sie unter User-Scripts - bereitgestellte Script-Bibliotheken.
Beispiel zum obigen Formular
Hier ein Beispielscript welches mit dem Formular aus dem letzten Abschnitt genutzt werden könnte.
local fetch = require("fetch") -- Limitierung des Payloads if configuration.onlyTitle then local payload = event.payload.title else local payload = event.payload end -- Datentyp setzen if configuration.format == "json" then local json = require("json") local data = json.encode(event.payload) local contentType = "application/json" elseif configuration.format == "xml" then else print("Ungültiges Datenformat, breche ab.") return -- bricht die Ausführung eines Skripts ab end -- Anfrage senden print(`Sende folgendes {contentType} an {configuration.url}: {data}`) local response = fetch.post(configuration.url, { data = data, contentType = contentType }) print(`Aufruf von "{configuration.url}" endete mit Status-Code {response.status_code}`)