# System und Ablaufsteuerung

Funktionen für System und Ablaufsteuerung helfen dir, Timing und umgebungsspezifisches Verhalten zu steuern. Du kannst ein Skript pausieren, Rohwerte prüfen und den App-Kontext erkennen.

In diesem Kapitel lernst du, wie du:

* Timing in einem laufenden Skript steuerst.
* die aktuelle App-Umgebung und den Datenbankstatus prüfst.

<table><thead><tr><th width="233.96484375">Funktion (A-Z)</th><th>Aufgabe</th></tr></thead><tbody><tr><td><code>ninoxApp()</code></td><td>Gibt den aktuellen Client- oder App-Kontext zurück</td></tr><tr><td><code>raw()</code></td><td>Gibt die interne Textdarstellung zurück</td></tr><tr><td><code>sleep()</code></td><td>Pausiert ein Skript kurz</td></tr><tr><td><code>start()</code></td><td>Gibt den Start-Zeitstempel eines Termins zurück</td></tr></tbody></table>

## Timing und Ausführungsreihenfolge steuern

Nutze diese Funktionen, wenn eine Aktion erst nach einer anderen ausgeführt werden soll.

### Ein Skript kurz pausieren

Nutze `sleep()`, damit Ninox eine angegebene Anzahl Millisekunden wartet, bevor das Skript weiterläuft.

Nutze es, wenn du:

* eine kurze Verzögerung vor einer Folgeaktion einbauen willst.
* Timing-Probleme in einem UI-Ablauf vermeiden willst.
* kurz warten willst, bis sich ein anderer Prozess stabilisiert.
* einen Hinweis oder eine Warnung anzeigen willst, bevor der nächste Schritt läuft.

`sleep(number)`

* `number`: die Verzögerung in Millisekunden

`sleep()` gibt keinen Wert zurück.

#### Schauen wir uns einige Beispiele an:

```ninox
sleep(2000)
```

Pausiert das Skript für 2 Sekunden.

Tipps:

* Halte Verzögerungen so kurz wie möglich.
* Nutze eine Verzögerung nur, wenn der Ablauf sie wirklich braucht.

## Rohwerte und Bereichsgrenzen prüfen

Nutze diese Funktionen, wenn du den zugrunde liegenden Wert oder die Startgrenze eines Dauer- oder Bereichskontexts brauchst.

### Den Rohwert prüfen

Nutze `raw()`, um die interne rohe Textdarstellung eines Werts zurückzugeben.

Nutze es, wenn du:

* formatierten Text in seine rohe Textform umwandeln willst.
* den internen Wert hinter einem Farbfeld lesen willst.
* formatierte Inhalte in Dialogen oder E-Mails wiederverwenden willst.
* die Rohform mit der angezeigten Form vergleichen willst.

`raw(any)`

* `any`: der Wert, den du in Rohform zurückgeben willst

`raw()` gibt einen String zurück.

#### Schauen wir uns einige Beispiele an:

```ninox
raw('My sample text')
```

Gibt den Inhalt eines formatierten Textwerts als unformatierten Text mit HTML-Tags zurück.

```ninox
dialog("Hello", raw('Dialog text'), ["Yes", "No"])
```

Zeigt einen Dialog mit dem Inhalt des formatierten Textfelds `Dialog text`.

```ninox
raw(Color)
```

Gibt den internen Farbwert zurück, zum Beispiel `#EC87E2`.

Tipps:

* Nutze `raw()`, wenn du die interne Textdarstellung des Systems brauchst.
* Das ist nützlich für formatierte Textfelder, Dialoge und E-Mails.
* Du kannst das Ergebnis später wieder mit `html()` formatieren.

## App-Kontext und Datenbankstatus erkennen

Nutze diese Funktionen, wenn dein Skript auf den aktuellen Client oder den Schutzstatus der Datenbank reagieren soll.

### Mit `ninoxApp()` die aktuelle App erkennen

Nutze `ninoxApp()`, um zu prüfen, wo dein Skript ausgeführt wird.

Nutze es, wenn du:

* Verhalten je nach Client anpassen willst.
* client-spezifische Workflows diagnostizieren willst.

`ninoxApp()`

`ninoxApp()` gibt einen String zurück, der die aktuelle Umgebung kennzeichnet.

Mögliche Rückgabewerte sind:

* `client`
* `server`

#### Schauen wir uns einige Beispiele an:

```ninox
ninoxApp() = "client"
```

Gibt einen String zurück, der zeigt, wo das Skript läuft.

Tipps:

* Nutze `ninoxApp()`, um zu prüfen, ob UI-Funktionen ausgeführt werden können. Das ist nicht der Fall, wenn das Ergebnis `server` ist.


---

# 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/system-and-flow-control.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.
