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 | |
delivery |
rohe Bytes ausliefern: delivery.file(bytes, name) |
|
mail |
Mails mit Anlagen und Ad-hoc-Links | |
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.