# Mit Funktionen arbeiten

Funktionen sind die Bausteine der Ninox Logik. Sie helfen dir, Werte zu berechnen, Text zu formatieren, mit Datumswerten zu arbeiten, Datensätze zu filtern und mehr.

Wenn du Funktionen noch nicht kennst, starte mit der Parametersyntax unten. Sobald du Einträge wie `text(any)` oder `count([any])` lesen kannst, wird der Rest der Referenz deutlich einfacher.

## **Funktionsparameter verstehen**

Funktions­einträge zeigen, was eine Funktion erwartet. Lies sie von links nach rechts:

* Der Funktionsname zeigt dir, was sie macht.
* Der Teil in Klammern zeigt die erwartete Eingabe.

So erkennst du schnell, ob eine Funktion zu deiner Aufgabe passt.

Zum Beispiel:

* `odd(number)` erwartet eine Zahl.
* `text(any)` kann viele Werttypen in lesbaren Text umwandeln.
* `count([any])` erwartet eine Liste, ein Array oder eine Auswahl.

### **Was `any` bedeutet**

`any` bedeutet, dass die Funktion mit verschiedenen Werttypen arbeiten kann. Ninox konvertiert oder interpretiert den Wert innerhalb der Funktion. Zum Beispiel kann `text(any)` eine Zahl, ein Datum, einen Auswahlwert oder einen anderen Wert in Text umwandeln.

Das ist flexibler als eine Funktion wie `odd(number)`, die eine Zahl erwartet.

{% hint style="info" %}
`any` bedeutet nicht, dass jeder Wert gleich sinnvoll ist. Übergib einen Wert, der für die Funktion passt, die du verwendest.
{% endhint %}

### **Was `[any]` bedeutet**

`[any]` bedeutet, dass die Funktion eine Liste von Werten erwartet. Wenn du neu im Skripting bist, lies die eckigen Klammern als "eine Liste von".

Das ist meistens:

* ein Array
* eine Datensatzauswahl
* eine Liste von Feldwerten

Zum Beispiel:

* `count([any])` zählt Elemente in einer Liste oder Auswahl.
* `first([any])` gibt das erste Element zurück.
* `concat([any])` verbindet Werte zu Text.

Die Elemente in dieser Liste können je nach Funktion unterschiedliche Typen haben.

### **Wenn eine Funktion `any` zurückgibt**

Wenn eine Funktion `any` zurückgibt, kann das Ergebnis variieren. Eine Funktion kann zum Beispiel zurückgeben:

* Text in einem Fall
* eine Zahl in einem anderen Fall
* einen Datensatz oder JSON-Wert in einem weiteren Fall

Prüfe die Funktionsbeschreibung und das Beispiel, damit du weißt, welches Ergebnis du erwarten kannst.

{% hint style="info" %}
Wenn du gerade erst anfängst, konzentriere dich zuerst auf die Eingabe. Die Beispiele machen das Ergebnis meist klar.
{% endhint %}

### **Wenn eine Funktion `JSON` erwartet**

Manche Funktionen brauchen mehrere zusammengehörige Werte auf einmal. JSON ist eine kompakte Möglichkeit, sie zu gruppieren.

Jeder Eintrag hat links einen Namen und rechts einen Wert. In der Dokumentation ist das als `JSON` gekennzeichnet.

Du schreibst es mit geschweiften Klammern:

```ninox
sendEmail({
	from: "support@example.com",
	to: "customer123@example.com",
	subject: "Thank you for your email",
	text: "We received your request."
})
```

In diesem Beispiel:

* `from` ist die Absenderadresse.
* `to` ist die Empfängeradresse.
* `subject` ist der E-Mail-Betreff.
* `text` ist der Nachrichtentext.

Nutze dieses Muster, wenn eine Funktion mehrere benannte Werte wie `to`, `subject` oder `text` braucht.

Häufige Beispiele sind:

* `sendEmail(JSON)`
* `http(..., JSON)`
* `printRecord(..., JSON)`

{% hint style="info" %}
`JSON` bedeutet hier einen Wert, den du direkt übergibst, zum Beispiel `{to: "a@example.com"}`. Es bedeutet keinen Text in Anführungszeichen wie `"{\"to\":\"a@example.com\"}"`.
{% endhint %}

### **Weitere Parameterbezeichnungen, die du sehen wirst**

Manche Bezeichnungen zeigen einen Typ. Andere zeigen die Rolle des Werts.

Zum Beispiel sind `number`, `date` und `record` Typbezeichnungen. Bezeichnungen wie `pattern`, `separator`, `from` und `to` zeigen, wie das Argument in der Funktion verwendet wird.

Lies immer beides zusammen:

* Die Bezeichnung zeigt dir die Art des Werts.
* Die Beschreibung zeigt dir, wie dieser Wert verwendet wird.

## **Parameter-Glossar**

Dieser Abschnitt erklärt die Parameterbezeichnungen, die in den Funktionskapiteln unten verwendet werden.

<table><thead><tr><th width="318.8984375">Bezeichnung</th><th>Bedeutung</th></tr></thead><tbody><tr><td><code>any</code></td><td>Jeder Werttyp, den die Funktion interpretieren oder konvertieren kann</td></tr><tr><td><code>[any]</code></td><td>Eine Liste von Werten</td></tr><tr><td><code>appointment</code></td><td>Ein einzelner Wert, der Start und Ende zusammen enthält</td></tr><tr><td><code>background</code></td><td>Eine Hintergrundfarbe oder ein Stilwert</td></tr><tr><td><code>base</code></td><td>Die Basiszahl in einem Logarithmus oder Potenzausdruck</td></tr><tr><td><code>boolean</code></td><td><code>true</code> oder <code>false</code></td></tr><tr><td><code>choice</code></td><td>Ein Wert aus einem Einfachauswahlfeld</td></tr><tr><td><code>date</code></td><td>Ein Datumswert ohne Uhrzeit</td></tr><tr><td><code>datetime</code></td><td>Ein lokaler Datums- und Uhrzeitwert</td></tr><tr><td><code>year, month, day</code></td><td>Numerische Datumsbestandteile</td></tr><tr><td><code>dmulti</code></td><td>Ein dynamisches Mehrfachauswahlfeld</td></tr><tr><td><code>exponent</code></td><td>Die Potenz, die auf eine Basiszahl angewendet wird</td></tr><tr><td><code>field</code></td><td>Ein Feldobjekt</td></tr><tr><td><code>file</code></td><td>Ein Dateiobjekt oder ein Verweis auf einen Anhang</td></tr><tr><td><code>[file]</code></td><td>Eine Liste von Dateiobjekten</td></tr><tr><td><code>flags</code></td><td>Optionale Optionen für reguläre Ausdrücke</td></tr><tr><td><code>fontColor</code></td><td>Ein Textfarbwert</td></tr><tr><td><code>hour, minute, second, millisecond</code></td><td>Numerische Zeitbestandteile</td></tr><tr><td><code>icon</code></td><td>Ein Symbolname oder Symbolwert</td></tr><tr><td><code>id</code></td><td>Eine numerische ID</td></tr><tr><td><code>JSON</code></td><td>Ein strukturiertes Objekt mit benannten Werten</td></tr><tr><td><code>language</code></td><td>Ein Sprachcode für lokalisierte Ausgabe</td></tr><tr><td><code>length</code></td><td>Eine Ziellänge oder Anzahl von Zeichen</td></tr><tr><td><code>link</code></td><td>Ein Linkwert, oft ein Dateilink</td></tr><tr><td><code>location</code></td><td>Ein Standortwert mit Koordinaten</td></tr><tr><td><code>milliseconds</code></td><td>Unix-Zeit in Millisekunden</td></tr><tr><td><code>multi</code></td><td>Ein Mehrfachauswahlfeld</td></tr><tr><td><code>name</code></td><td>Ein Name, zum Beispiel für eine Farbe</td></tr><tr><td><code>nid</code></td><td>Eine Ninox Datensatz-ID</td></tr><tr><td><code>number</code></td><td>Ein numerischer Wert</td></tr><tr><td><code>[number]</code></td><td>Eine Liste numerischer Werte</td></tr><tr><td><code>options</code></td><td>Ein Einstellungsobjekt für eine bestimmte Funktion</td></tr><tr><td><code>padding</code></td><td>Die Zeichen, mit denen Text aufgefüllt wird</td></tr><tr><td><code>pattern</code></td><td>Ein Formatmuster oder regulärer Ausdruck</td></tr><tr><td><code>period</code></td><td>Eine Kalendereinheit wie <code>"day"</code>, <code>"week"</code> oder <code>"month"</code></td></tr><tr><td><code>r, g, b, a</code></td><td>Rot-, Grün-, Blau- und optional Deckkraftwerte</td></tr><tr><td><code>record</code></td><td>Ein Datensatz aus einer Tabelle</td></tr><tr><td><code>[record]</code></td><td>Eine Liste oder Auswahl von Datensätzen</td></tr><tr><td><code>replacement</code></td><td>Der Wert, der einen Treffer ersetzt</td></tr><tr><td><code>script</code></td><td>Ein Ausdruck oder Logikblock, den Ninox auswertet</td></tr><tr><td><code>search</code></td><td>Der Wert oder Text, nach dem gesucht wird</td></tr><tr><td><code>start, end</code></td><td>Start- und Endwerte oder Positionen</td></tr><tr><td><code>separator</code></td><td>Ein Texttrenner oder Teilungszeichen</td></tr><tr><td><code>step</code></td><td>Die Schrittweite in einem Zahlenbereich</td></tr><tr><td><code>string</code></td><td>Einfacher Text, zum Beispiel ein Name, eine Bezeichnung, eine URL oder ein Feldname</td></tr><tr><td><code>[string]</code></td><td>Eine Liste von Textwerten</td></tr><tr><td><code>table</code></td><td>Ein Tabellenobjekt</td></tr><tr><td><code>text</code></td><td>Texteingabe, meist der Quelltext in String-Funktionen</td></tr><tr><td><code>time</code></td><td>Ein Uhrzeitwert</td></tr><tr><td><code>timestamp</code></td><td>Ein UTC-basierter Zeitwert</td></tr><tr><td><code>from, to</code></td><td>Start- und Endwerte oder Positionen</td></tr><tr><td><code>unit</code></td><td>Eine Dauer-Einheit wie <code>"minutes"</code> oder <code>"days"</code></td></tr><tr><td><code>user</code></td><td>Ein Nutzerwert aus dem Arbeitsbereich</td></tr><tr><td><code>value, value1, value2, ...</code></td><td>Generische Eingabewerte, einzeln oder getrennt übergeben</td></tr></tbody></table>

### **Tipps zum schnellen Lesen**

* Einfache Bezeichnungen wie `number` oder `record` zeigen den erwarteten Typ.
* Eckige Klammern wie `[number]` oder `[file]` bedeuten "eine Liste von".
* Bezeichnungen wie `pattern`, `separator`, `from` oder `subject` beschreiben die Rolle des Arguments.

## **Funktionen nach Kategorien erkunden**

Wenn dir die Syntax vertraut ist, nutze diese Kategorien, um schneller die richtige Funktion zu finden:

* [Text und Strings](/ninox-scripting/de/automate-your-workflows/work-with-functions/text-and-strings.md): Text kombinieren, bereinigen und formatieren.
* [Zahlen und Mathematik](/ninox-scripting/de/automate-your-workflows/work-with-functions/numbers-and-math.md): rechnen, runden und aggregieren.
* [Datum und Uhrzeit](/ninox-scripting/de/automate-your-workflows/work-with-functions/dates-and-time.md): mit Datumswerten, Dauern und Zeitplänen arbeiten.
* [Datensätze und Tabellen](/ninox-scripting/de/automate-your-workflows/work-with-functions/records-and-tables.md): Datensätze auswählen, zählen und verwalten.
* [Benutzeroberfläche](/ninox-scripting/de/automate-your-workflows/work-with-functions/user-interface.md): Dialoge anzeigen und Datensätze öffnen.
* [Dateien und Export](/ninox-scripting/de/automate-your-workflows/work-with-functions/files-and-export.md): Dateien importieren, erstellen und teilen.
* [Nutzer und Arbeitsbereich-Rollen](/ninox-scripting/de/automate-your-workflows/work-with-functions/users-and-roles.md): Verhalten anhand von Nutzerinformationen personalisieren.
* [Standort und Geräte](/ninox-scripting/de/automate-your-workflows/work-with-functions/location-and-devices.md): GPS, Telefon und URLs nutzen.
* [Integration und HTTP](/ninox-scripting/de/automate-your-workflows/work-with-functions/integration-and-http.md): externe Dienste anbinden.
* [System und Ablaufsteuerung](/ninox-scripting/de/automate-your-workflows/work-with-functions/system-and-flow-control.md): Caching, Timing und Umgebungsprüfungen steuern.

Wenn du die vollständige Referenz brauchst, gehe zur [Funktionsbibliothek](/ninox-scripting/de/functions-and-script-library/functions-library.md). Dort findest du einen vollständigen Überblick über dokumentierte Funktionen, inklusive einer alphabetischen Liste für die schnelle Suche.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ninox.com/ninox-scripting/de/automate-your-workflows/work-with-functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
