Zum Inhalt

Alle Skript-Objekte auf einen Blick

Diese Seite ist ein Verzeichnis: Was kann ich in einem Skript überhaupt ansprechen? Jede Zeile nennt das Objekt, wofür es da ist und wo es ausführlich beschrieben wird. Die Liste ist aus den tatsächlich gesetzten Bindings der Skript-Engine abgeleitet, nicht aus dem Gedächtnis.

Zum Ausprobieren

Alles hier lässt sich in der Skript-Konsole antesten: System-Administration → Werkzeuge & Diagnose → Skript-Konsole. Zwei Ausnahmen sind dort naturgemäß nicht da — sie brauchen ein Formular (macros) bzw. einen bestimmten Auslöser (event); sie stehen unten in der zweiten Tabelle.

Rund um das Formular

Objekt Wofür Mehr
ctx der Kontext: Werte, Benutzer, Fehler, Anlagen, Datenmodell ctx
ctx.form die Feldwerte — lesen und schreiben ctx.form
$feldname Kurzform für ctx.form.feldname ctx.form
field.<name> Handle je Feld: .value, .num, .text, .bool, .isEmpty, .error(…), .hardError(…) Feld-Handle
ctx.model Lese-Sicht auf Felder, Spalten und Detail-Tabellen ctx.model

Werkzeuge

Objekt Wofür Mehr
kc kc.num, kc.text, kc.bool, kc.isEmpty — robuste Umwandlungen kc-Helfer
log Protokoll: debug, info, warn, error kc-Helfer
i18n(key, …args) Text aus dem Server-Katalog (übersetzt) ctx
macros Makros auflösen: macros.resolve('${user:firstName}') Makros
system system.baseURL — öffentliche Basis-URL, z. B. für Links in Mails —
modules Skript-Module (Java-Routinen) holen: modules.use("qrcode"), dazu modules.list() und modules.has(name) Skript-Module, CSV-Service
Date.prototype.format, Date.fromString Datum formatieren und einlesen (volle Muster-Syntax) kc-Helfer

Daten

Objekt Wofür Mehr
db SQL mit Parametern, auch auf externen Datenquellen (db.on(…)) db
forms Datensätze anderer Formulare lesen, anlegen, ändern forms
ldap Verzeichnis abfragen, Benutzer prüfen LDAP

Ausgabe und Versand

Objekt Wofür Mehr
view Meldungen und Rückfragen im Formular anzeigen view
pdf PDF aus dem Formular erzeugen PDF
delivery rohe Bytes ausliefern: delivery.file(bytes, name) PDF
mail Mails mit Anlagen und Ad-hoc-Links mail
docx Word-Vorlagen füllen, Serienbriefe docx
encoder Ad-hoc-Links erzeugen Web-Links

Dateien und Formate

Objekt Wofür Mehr
fs Dateien in der Sandbox: fs["/pfad"] fs
xml XML lesen, bauen, ausgeben XML verstehen
csv CSV lesen und schreiben CSV-Service
zip ZIP-Archive, auf Wunsch verschlüsselt zip

Schnittstellen

Objekt Wofür Mehr
http REST-Aufrufe (GET/POST/…, Header, Token) HTTP
ws SOAP-Dienste, auch über benannte Konnektoren WebService
workflow Workflow-Stand des Datensatzes Workflow

Nur in bestimmten Zusammenhängen

Diese Objekte gibt es nicht überall — sie hängen am Auslöser oder an der Skript-Art:

Objekt Nur in Wofür
macros Skripten mit Formular in der Skript-Konsole ist kein Formular geladen, deshalb fehlt es dort
event Hook eines Zeilen-Buttons in einer Detail-Tabelle die angeklickte Zeile, 1-basiert
job Zeitplaner-Jobs Informationen zum laufenden Job
auth Anmelde-Skripten auth.success(…), auth.fail(…), auth.fallbackToDb()
handle(…), Value(…), declaration Lookup-/Picker-Skripten Einträge an die Auswahlliste übergeben
module.exports REST-Services Pfad, Dokumentation und Operationen des Endpunkts

Namen mit zwei Unterstrichen sind intern

Im Sandbox tauchen auch Namen wie __kcDate oder __pickerCollector auf. Die gehören der Engine und können sich jederzeit ändern — bitte nicht darauf aufbauen.

Wo das nicht gilt

Bedingungen (kc:visibleIf, kc:requiredIf, Regeln) und Berechnungsfelder sind keine Skripte, sondern Ausdrücke mit einem viel kleineren Vorrat: die Feldwerte, values — und kc mit num, text, bool, isEmpty. Alles andere aus den Tabellen oben steht dort nicht zur Verfügung, field.<name> eingeschlossen.