Deine ersten Automatisierungen

Richte Automatisierungen und Logikfelder ein, um Daten zu kopieren, Summen zu berechnen und Rechnungsnummern zu erzeugen.

Automatisierungen und Berechnungen einrichten

Mit deinem Datenmodell kannst du jetzt Automatisierungen und Logik hinzufügen. So arbeitet deine App wie ein Rechnungssystem und nicht nur wie eine statische Datenbank.

Du wirst:

  • Logikfelder nutzen, um Positionsbeträge und Summen zu berechnen.

  • Sicherstellen, dass Rechnungen später unverändert bleiben, auch wenn sich Produkte oder Kunden ändern.

Warum kopierst du Daten, statt immer verknüpfte Daten anzuzeigen? In vielen Fällen kannst du Daten aus einer verknüpften Tabelle einfach über ein Logikfeld anzeigen. So siehst du immer die neueste Version, zum Beispiel den aktuellen Produktpreis.

Für Rechnungen ist das nicht sinnvoll:

  • In den meisten Ländern dürfen versendete Rechnungen später nicht geändert werden.

  • Produktnamen, Preise oder MwSt.-Sätze können sich im Lauf der Zeit ändern.

  • Rechnungsdatensätze müssen so bleiben, wie sie zum Zeitpunkt der Erstellung waren.

Dafür gehst du folgendermaßen vor:

  • Du speicherst Kunden- und Produktdaten zentral in ihren Tabellen.

  • Du kopierst die relevanten Werte bei der Erstellung per Automatisierung in Rechnungen und Rechnungspositionen.

  • Du nutzt diese kopierten Werte für Berechnungen und Ausdrucke.

Schauen wir uns die Automatisierungen in der App „Rechnungsverwaltung“ an.

In Automatisierungen musst du die internen Namen von Tabellen und Feldern verwenden. Die Skriptbeispiele auf dieser Seite nutzen interne Namen wie produktbeschreibung, rechnungspositionen oder kundennummer. Ersetze sie bei Bedarf durch die internen Namen deiner eigenen App.

Produktdaten in Rechnungspositionen kopieren

Damit Rechnungen unverändert bleiben, auch wenn sich Produktdaten später ändern, kopierst du die wichtigen Produktinformationen in statische Felder der Tabelle „Rechnungspositionen“.

Wenn ein Nutzer im Verknüpfungsfeld „Produkte“ ein Produkt auswählt, soll Folgendes passieren:

  • Der Produktname wird in „Produktbeschreibung“ kopiert.

  • Der Verkaufspreis wird in „Einzelpreis“ kopiert.

So richtest du das ein:

1

„Rechnungspositionen“ öffnen

Öffne in der App-Navigation die Tabelle „Rechnungspositionen“.

2

Feld-Einstellungen öffnen

Klicke oben rechts auf das Zahnrad-Symbol, um den Einstellungsbereich zu öffnen. Wähle den Tab Felder. Klicke auf das Verknüpfungsfeld „Produkte“, um die Feld-Einstellungen zu öffnen.

3

Automatisierung „Bei Aktualisierung“ öffnen

Wechsle zu Automatisierungen und wähle Bei Aktualisierung. Der Logik-Editor öffnet sich.

4

Skript hinzufügen

Füge das folgende Skript ein. Klicke dann auf Bestätigen.

Das Skript im Überblick:

  • produktbeschreibung ist das Zielfeld im aktuellen Datensatz der Tabelle „Rechnungspositionen“.

  • := weist diesem Feld einen Wert zu.

  • produkte.produktname liest den Wert aus dem Feld „Produktname“ des verknüpften Produkts.

  • ; beendet eine Zeile. Nutze es immer dann, wenn noch weitere Zeilen folgen.

  • Die zweite Zeile kopiert den Verkaufspreis aus dem verknüpften Produkt in das Feld „Einzelpreis“.

Eine MwSt.-Auswahl in einen Zahlenwert umwandeln

In der Tabelle „Produkte“ ist das Feld „MwSt.“ ein Feld vom Typ Einzelauswahl. Es liefert einen Textwert wie „19%“. Für Berechnungen brauchst du aber einen Zahlenwert wie 19.

So löst du das:

  • Du behältst „MwSt.“ in „Produkte“ als Einzelauswahl für eine klare UI.

  • Du pflegst in „Rechnungspositionen“ ein Zahlenfeld „MwSt.-Satz“.

  • Du nutzt eine Automatisierung auf dem Feld „Produkte“ in „Rechnungspositionen“, um:

    • den Auswahltext aus produkte.text(mwst) zu lesen, zum Beispiel "19%".

    • den ersten Teil 19 zu extrahieren und in eine Zahl umzuwandeln.

    • den Wert in „MwSt.-Satz“ zu speichern.

So richtest du das ein:

1

Feld-Einstellungen öffnen

Öffne in der Tabelle „Rechnungspositionen“ den Einstellungsbereich und wähle den Tab Felder.

Klicke auf das Verknüpfungsfeld „Produkte“, um die Feld-Einstellungen zu öffnen.

2

Logik „Bei Aktualisierung“ öffnen

Wechsle zu Automatisierungen und wähle Bei Aktualisierung.

3

Skript hinzufügen

Füge das folgende Skript ein. Klicke dann auf Bestätigen.

Das passiert hier:

  • mwst_satz ist das Zielfeld im aktuellen Datensatz.

  • := weist diesem Feld einen Wert zu.

  • produkte.text(mwst) liest den angezeigten Text des MwSt.-Werts aus dem verknüpften Produkt, zum Beispiel "19%".

  • split(..., "%") trennt den Text am Prozentzeichen.

  • item(..., 0) wählt den ersten Teil "19" aus. Die Zählung startet bei 0.

  • number(...) wandelt den Text "19" in den Zahlenwert 19 um.

  • Dieser Wert wird bei jeder Aktualisierung des Felds „Produkte“ in „MwSt.-Satz“ gespeichert.

Du hast jetzt einen numerischen MwSt.-Satz für deine Berechnungen.

Summen je Rechnungsposition berechnen

In jeder Rechnungsposition berechnest du jetzt den Nettobetrag und den MwSt.-Betrag auf Basis von „Menge“ und „Einzelpreis“.

1

„Rechnungspositionen“ öffnen

Wechsle zur Tabelle „Rechnungspositionen“.

2

Logikfeld „Nettobetrag“ erstellen

Klicke im Tabellenkopf auf das Symbol +, um ein neues Feld hinzuzufügen. Gib als Feldname „Nettobetrag“ ein. Behalte den automatisch erzeugten internen Namen bei. Wähle als Feldtyp Logik.

3

Logik für den Nettobetrag hinzufügen

Wechsle zum Tab Logik. Füge das folgende Skript ein und klicke dann auf Bestätigen.

Damit multiplizierst du den Einzelpreis mit der Menge im selben Datensatz.

4

Logikfeld „MwSt.-Betrag“ erstellen

Klicke auf Weiteres Feld hinzufügen und wechsle zurück zum Tab Feld hinzufügen. Gib als Feldname „MwSt.-Betrag“ ein. Behalte den automatisch erzeugten internen Namen bei. Wähle als Feldtyp Logik.

5

Logik für den MwSt.-Betrag hinzufügen

Wechsle zum Tab Logik. Füge das folgende Skript ein und klicke dann auf Bestätigen.

Damit multiplizierst du Menge, Einzelpreis und MwSt.-Satz. Danach teilst du durch 100 und rundest auf zwei Dezimalstellen. Das verhindert spätere Abweichungen bei Rechnungssummen.

6

Feld speichern

Klicke auf Feld hinzufügen.

Rechnungssummen berechnen

In der Tabelle „Rechnungen“ kannst du jetzt die Summen jeder Rechnung berechnen. Dafür addierst du alle verknüpften Rechnungspositionen.

Pro Rechnung willst du sehen:

  • die Nettosumme aller Positionen

  • die MwSt.-Summe aller Positionen

  • die Bruttosumme aus Netto plus MwSt.

So richtest du das ein:

1

„Rechnungen“ öffnen

Wechsle zur Tabelle „Rechnungen“.

2

Logikfeld „Nettosumme“ erstellen

Erstelle ein Logikfeld, zum Beispiel „Nettosumme“.

3

Logik für die Nettosumme hinzufügen

Nutze die Logik:

Damit addierst du die Nettobeträge aller verknüpften Rechnungspositionen der aktuellen Rechnung.

4

Logikfeld „MwSt.-Summe“ erstellen

Erstelle ein weiteres Logikfeld mit dem Namen „MwSt.-Summe“.

5

Logik für die MwSt.-Summe hinzufügen

Gib die folgende Logik ein:

Damit addierst du die MwSt.-Beträge aller verknüpften Rechnungspositionen der aktuellen Rechnung.

Hier nutzt die Funktion sum() direkt die Verknüpfung zu den Rechnungspositionen. Im Beispiel heißt sie rechnungspositionen. Ninox greift damit automatisch auf alle verknüpften Datensätze der aktuellen Rechnung zu. Du brauchst keine expliziten Schlüsselfelder und keine select-Anweisung.

6

Logikfeld „Bruttosumme“ erstellen

Erstelle ein weiteres Logikfeld mit dem Namen „Bruttosumme“.

7

Logik für die Bruttosumme hinzufügen

Füge die Logik wie folgt ein:

Damit addierst du Nettosumme und MwSt.-Summe zur finalen Rechnungssumme.

Erwartetes Zahlungsdatum berechnen

In der Tabelle „Rechnungen“ kannst du ein erwartetes Zahlungsdatum auf Basis des Erstellungsdatums und des ausgewählten Felds „Zahlungsziel“ berechnen.

Da „Zahlungsziel“ ein Feld vom Typ Einzelauswahl ist, musst du alle möglichen Optionen abdecken. Bei mehreren Optionen ist eine switch case-Struktur meist besser lesbar als mehrere verschachtelte if ... then ... else-Anweisungen.

1

„Rechnungen“ öffnen

Öffne die Tabelle „Rechnungen“.

2

Feld-Einstellungen öffnen

Klicke auf das Zahnrad-Symbol, um den Einstellungsbereich zu öffnen.

Stelle sicher, dass du im Tab Felder bist.

3

Logikfeld „Erwartetes Zahlungsdatum“ erstellen

Erstelle ein neues Logikfeld, zum Beispiel „Erwartetes Zahlungsdatum“.

4

Logik hinzufügen

Setze die Logik zum Beispiel so:

Hier passiert Folgendes:

  • switch text(zahlungsziel) do prüft, welche Option im Feld „Zahlungsziel“ ausgewählt ist.

    • text(zahlungsziel) liefert den Textwert der ausgewählten Option. Ohne text() würdest du die numerische ID der Option erhalten.

  • Jeder case-Block definiert, wie das erwartete Datum für eine Option berechnet wird.

    • Bei festen Zeiträumen wie „1 Woche“ oder „30 Tage“ addierst du die passende Anzahl Tage auf das Erstellungsdatum.

  • Der default-Block definiert das Verhalten, wenn kein case passt.

    • Hier wird standardmäßig 30 Tage zum Erstellungsdatum addiert.

Passe die case-Texte und Zahlen so an, dass sie genau zu den Werten in deinem Feld „Zahlungsziel“ passen.

Eindeutige Rechnungsnummern erzeugen

Jede Rechnung braucht eine eindeutige Rechnungsnummer. Du kannst sie beim Erstellen einer neuen Rechnung automatisch erzeugen. Nutze dafür die Automatisierung Bei Erstellung in der Tabelle „Rechnungen“.

In diesem Beispiel haben Rechnungsnummern das Format: RE-2026-0001 , also: Präfix - Jahr - laufende Nummer mit führenden Nullen.

1

„Rechnungen“ öffnen

Öffne die Tabelle „Rechnungen“.

2

Tabelleneinstellungen öffnen

Klicke auf das Zahnradsymbol, um den Einstellungsbereich zu öffnen.

Wähle die Tabs Tabelle und Einstellungen.

3

Automatisierung „Bei Erstellung“ öffnen

Wähle unter Automatisierungen die Option Bei Erstellung.

4

Skript hinzufügen

Füge das folgende Skript ein und klicke auf Bestätigen:

Hier geschieht Folgendes:

  • myYear speichert das aktuelle Jahr und nutzt dabei die Funktion today().

  • myRN ist die Variable, in der die höchste vorhandene Rechnungsnummer des aktuellen Jahres gespeichert wird.

    • Dazu wählt das Skript alle Rechnungen aus, deren Jahr des Erstellungsdatums identisch mit myYear ist.

    • Danach extrahiert es den numerischen Teil von rechnungsnummer ab Position 8, also hinter "RE-YYYY-".

    • number(...) entfernt die führenden Nullen und wandelt den String in den Datentyp Zahl um.

    • Anschließend wird mit max() der höchste dieser Werte ermittelt.

  • rechnungsnummer := ... ist das Datenfeld der Rechnungsnummer und wird mit der aktuellsten Rechnungsnummer, die gerade ermittelt wird, gefüllt.

    • Das Skript fügt das Präfix "RE-" hinzu,

    • ergänzt das aktuelle Jahr,

    • fügt einen Bindestrich hinzu und

    • ergänzt die erhöhte laufende Nummer im Format "0000" mit führenden Nullen.

  • erstellungsdatum := today() setzt beim Erstellen der Rechnung das Erstellungsdatum auf das heutige Datum.

Eindeutige Kundennummern erzeugen

Mit einem ähnlichen Muster erzeugst du eindeutige Kundennummern in der Tabelle „Kunden“, zum Beispiel KD-00001.

1

„Kunden“ öffnen

Öffne die Tabelle „Kunden“.

2

Tabellen-Einstellungen öffnen

Klicke auf das Zahnrad-Symbol, um den Einstellungsbereich zu öffnen.

Wähle die Tabs Tabelle und Einstellungen.

3

Automatisierung „Bei Erstellung“ öffnen

Wähle unter Automatisierungen die Option Bei Erstellung.

4

Skript hinzufügen

Füge das folgende Skript ein und klicke auf Bestätigen:

Hier passiert Folgendes:

  • select kunden wählt alle vorhandenen Kunden aus.

  • substr(kundennummer, 3) ermittelt die Kundennummer ohne Präfix.

    • Aus KD-00001 wird zum Beispiel 00001.

  • number(...) wandelt diesen Text in eine Zahl um.

  • max(...) liefert die höchste vorhandene Nummer.

  • myLast + 1 erhöht diesen Wert für den neuen Datensatz um 1.

  • format(..., "00000") formatiert die Nummer mit fünf Stellen und führenden Nullen.

  • Das Ergebnis wird mit dem Präfix "KD-" kombiniert und in „Kundennummer“ gespeichert.

Beispieldaten zu deiner App hinzufügen

Wenn du sehen willst, wie deine erste App mit mehr Daten aussieht, lass Ninox AI Beispieldatensätze für Tests erzeugen.

Passe die Tabellen- und Feldnamen im folgenden Prompt an die internen Namen deiner App an. Wenn du dem Leitfaden Deine erste App gefolgt bist, kannst du die hier gezeigten deutschen Namen meist direkt übernehmen.

1

Eine Tabelle im Builder-Modus öffnen

Öffne eine beliebige Tabelle in deiner App. Wähle im Einstellungsbereich die Tabs Formular und danach Add. Scrolle zu Steuerelemente.

2

Button erstellen

Füge ein neues Feld vom Typ Button hinzu, indem du es auf das Formular ziehst. Klicke auf das Zahnrad, um die Schnelleinstellungen zu öffnen. Ändere die Bezeichnung zu „Beispieldaten erzeugen“.

3

Button-Automatisierung öffnen

Wechsle zu Bei Klick.

4

Ninox AI um das Skript bitten

Füge den folgenden Prompt in den AI Chat (Fragen zu Ninox Script) ein und klicke auf den blauen Pfeil zur Bestätigung.

5

Generiertes Skript übernehmen

Ninox AI erzeugt nun das Skript, dies kann einen Moment dauern. Wenn Ninox AI das Skript in den Logik-Editor einfügt, klicke auf Annehmen. Klicke danach auf Bestätigen.

6

Button ausführen

Beende den Builder-Modus im Toggle unten links und klicke auf deinen neuen Button.

Wenn die Struktur deiner App zu diesem Leitfaden passt, erstellt Ninox Beispieldatensätze in allen vier Tabellen.

Zuletzt aktualisiert

War das hilfreich?