Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/de/img/screenshots/flows/action-email.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/de/img/screenshots/flows/action-rank.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/de/img/screenshots/flows/action-update.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/de/img/screenshots/flows/overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/de/img/screenshots/flows/placeholders.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/de/img/screenshots/flows/trigger-time.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 73 additions & 0 deletions docs/de/user/flows/actions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: Aktionen – Anwendungsfälle
description: Beispiel-Anwendungsfälle für jede Flows-Aktion, mit Screenshots
lang: de
render_macros: false
---

# Aktionen – Anwendungsfälle

Eine Aktion kann ein Objekt anlegen, aktualisieren oder einstufen, eine E-Mail senden oder eine externe API
aufrufen. Mehrere Aktionen laufen der Reihe nach. Die vollständige Referenz finden Sie unter
[Auslöser, Bedingungen und Aktionen](reference.md).

## Objekt anlegen: ein Notebook mit sprechendem Namen

**Szenario:** Der Button-Flow legt ein Notebook an, dessen Titel einen Zähler und das Auslöser-Objekt
enthält.

- Wählen Sie die Aktion **Objekt anlegen** und die **Objektklasse** aus der durchsuchbaren Liste (jede Option zeigt ihr Typ-Icon).
- Setzen Sie den **Objekttitel** mit Platzhaltern, zum Beispiel `Notebook {{counter}} für {{object-name}}`.
- Setzen Sie Felder über **Attribute hinzufügen** (der Attribut-Picker gruppiert sie nach Kategorie).

[![Die Aktion Objekt anlegen mit Klasse, Titel und Attributen](../../img/screenshots/flows/action-create.png)](../../img/screenshots/flows/action-create.png)
**Objekt anlegen:** Objektklasse, ein Titel mit Platzhaltern und die Attributauswahl.

## Objekt aktualisieren: ein Prüfdatum stempeln

**Szenario:** Bei einer Kategorie-Änderung soll ein Datum „zuletzt geprüft“ gesetzt werden.

- Wählen Sie die Aktion **Objekt aktualisieren**. Wählen Sie unter **Aktion anwenden auf** entweder **Im Auslöser referenziertes Objekt** (Standard) oder **Ausgewählte Objekte**.
- Wählen Sie Attribute über den Picker; bei Datumsfeldern setzen Sie **Datum der Ausführung verwenden**. Eine Mehrwert-Kategorie erhält pro Lauf einen neuen Eintrag.

[![Die Aktion Objekt aktualisieren mit Ziel und Attributen](../../img/screenshots/flows/action-update.png)](../../img/screenshots/flows/action-update.png)
**Objekt aktualisieren:** das Ziel (Auslöser-Objekt oder ausgewählte Objekte) und dessen Attribute.

## Objekt einstufen: ein ausgemustertes Gerät archivieren

**Szenario:** Ein Button setzt ein ausgemustertes Gerät auf den Lifecycle-Zustand „archiviert“.

- Wählen Sie die Aktion **Objekt einstufen** und das Ziel (Auslöser-Objekt oder ausgewählte Objekte).
- Setzen Sie **Zustand setzen auf** — normal, archiviert oder gelöscht.

[![Die Aktion Objekt einstufen mit dem Lifecycle-Zustand](../../img/screenshots/flows/action-rank.png)](../../img/screenshots/flows/action-rank.png)
**Objekt einstufen:** der Lifecycle-Zustand (normal, archiviert oder gelöscht).

## E-Mail senden: den Service-Desk benachrichtigen

**Szenario:** Ein zeitbasierter Flow sendet eine formatierte Erinnerung.

- Wählen Sie die Aktion **E-Mail senden** und setzen Sie **Empfänger** (kommagetrennt) und einen **Betreff** (beides Pflicht).
- Schreiben Sie den **Text** im Markdown-Editor — links die Eingabe, rechts die Live-Vorschau. Betreff und Text akzeptieren Platzhalter.

[![Die Aktion E-Mail senden mit Markdown-Editor und Vorschau](../../img/screenshots/flows/action-email.png)](../../img/screenshots/flows/action-email.png)
**E-Mail senden:** Empfänger, Betreff und ein Markdown-Editor mit Vorschau.

!!! note
Der SMTP-Versand wird serverseitig konfiguriert (`SMTP_URL` und `MAIL_FROM`); es gibt keine Einstellung
je Instanz.

## API aufrufen: ein externes System per Webhook informieren

**Szenario:** Ein neu angelegtes Objekt wird per HTTP-POST an ein anderes System gemeldet.

- Wählen Sie die Aktion **API aufrufen** und setzen Sie die **Methode** (GET, POST, PUT, PATCH, DELETE) und die **URL**.
- Füllen Sie den **Body** mit Platzhaltern, zum Beispiel `{"neu":"{{object-name}}","id":"{{object-id}}"}`. Ausgehende Aufrufe lassen sich über einen Proxy leiten.

[![Die Aktion API aufrufen mit Methode, URL und Body](../../img/screenshots/flows/action-callapi.png)](../../img/screenshots/flows/action-callapi.png)
**API aufrufen:** die Methode, die URL und ein optionaler Body mit Platzhaltern.

## Weiterführende Themen

- [Auslöser – Anwendungsfälle](triggers.md)
- [Durchgängiges Beispiel](end-to-end.md)
53 changes: 53 additions & 0 deletions docs/de/user/flows/conditions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: Bedingungen – Anwendungsfälle
description: Beispiel-Anwendungsfälle für jede Flows-Bedingung, mit Screenshots
lang: de
---

# Bedingungen – Anwendungsfälle

Bedingungen sind optional und müssen _alle_ erfüllt sein. Ist eine nicht erfüllt, wird der Lauf als
_Übersprungen_ mit Begründung im Log festgehalten. Die vollständige Referenz finden Sie unter
[Auslöser, Bedingungen und Aktionen](reference.md).

## Objektbasiert: nur für Objekte in Betrieb

**Szenario:** Ein Flow soll nur laufen, wenn das Auslöser-Objekt einen bestimmten CMDB-Status oder
Attributwert hat.

- Wählen Sie die Bedingung **Objektbasiert**.
- Bauen Sie eine Regel im Filterbauer mit **Filter hinzufügen** und **Operation wählen** (zum Beispiel „CMDB-Status ist in Betrieb“); mehrere Filter werden mit _Und_ verknüpft.

[![Die objektbasierte Bedingung mit visuellem Filterbauer](../../img/screenshots/flows/condition-object.png)](../../img/screenshots/flows/condition-object.png)
**Objektbasierte Bedingung:** ein visueller Filterbauer mit _Und_-Verknüpfung und Operationen.

## Zeitbasiert: nur während der Geschäftszeiten

**Szenario:** Der Flow soll nur montags bis freitags zwischen 08:00 und 16:00 laufen.

- Wählen Sie die Bedingung **Zeitbasiert**.
- Wählen Sie die Wochentage (keine Auswahl bedeutet jeden Tag) und setzen Sie die Zeiten **Von** und **Bis**.
- Ergänzen Sie weitere Fenster mit **Zeitfenster hinzufügen**.

[![Die zeitbasierte Bedingung mit Wochentagen und Von/Bis-Fenster](../../img/screenshots/flows/condition-time.png)](../../img/screenshots/flows/condition-time.png)
**Zeitbasierte Bedingung:** Wochentage plus ein Von/Bis-Zeitfenster.

## Benutzer / Benutzergruppe: nur bestimmte Personen zulassen

**Szenario:** Der Flow soll nur laufen, wenn ein Mitglied der Gruppe „IT-Team“ ihn auslöst.

- Wählen Sie die Bedingung **Benutzer / Benutzergruppe**.
- Wählen Sie Benutzer und Benutzergruppen aus der Liste (die Gruppenmitgliedschaft wird automatisch aufgelöst).

[![Die Benutzer- und Benutzergruppen-Bedingung](../../img/screenshots/flows/condition-user.png)](../../img/screenshots/flows/condition-user.png)
**Benutzer- / Benutzergruppen-Bedingung:** grenzt ein, wer den Flow auslösen darf.

!!! note
Bei Button-Flows wird der Button für Personen ausgeblendet, die die Personen-Bedingung nie erfüllen
können. Bei objektbasierten und zeitbasierten Bedingungen bleibt der Button sichtbar, aber inaktiv, mit
einem Tooltip, der den Grund erklärt.

## Weiterführende Themen

- [Auslöser – Anwendungsfälle](triggers.md)
- [Aktionen – Anwendungsfälle](actions.md)
68 changes: 68 additions & 0 deletions docs/de/user/flows/end-to-end.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
title: Durchgängiges Beispiel
description: Ein vollständiges Flows-Beispiel von der Anlage bis zur protokollierten Ausführung
lang: de
render_macros: false
---

# Durchgängiges Beispiel

Dieses Kapitel führt einen vollständigen Flow von der Anlage bis zur protokollierten Ausführung durch.

**Szenario:** An jeder Objektansicht erscheint ein Button **Vorfall melden**. Ein Klick meldet den Vorfall per
Webhook (HTTP-POST) an ein externes Ticketsystem und übergibt Objektname, Objekt-ID, die meldende Person und
eine fortlaufende Ticketnummer.

## Schritt 1: Flow anlegen

Wählen Sie in der Übersicht **Flow hinzufügen**, geben Sie den Namen „Vorfall an Ticketsystem melden“ ein und
ergänzen Sie eine Beschreibung.

## Schritt 2: Auslöser konfigurieren

Wählen Sie den Auslöser **Button** mit **Button-Name** „Vorfall melden“, der Button-Gruppe „Service-Desk“ und
der Platzierung **Alle Objekte** (der Button erscheint an jedem Objekt).

## Schritt 3: Aktion konfigurieren

Wählen Sie die Aktion **API aufrufen**, Methode **POST**, die URL des Ticketsystems und einen Body mit
Platzhaltern:

```json
{ "objekt": "{{object-name}}", "id": "{{object-id}}", "gemeldet_von": "{{users-name}}", "ticket": "#{{counter}}" }
```

## Schritt 4: speichern und aktivieren

Der fertige Flow zeigt die lineare Kette **Auslöser → Bedingungen → Aktion → Ende**. Mit **Aktivieren**
schalten Sie ihn scharf (Status _Aktiv_).

[![Der fertige, aktivierte durchgängige Flow](../../img/screenshots/flows/end-to-end-flow.png)](../../img/screenshots/flows/end-to-end-flow.png)
**Aktivierter Flow:** der durchgängige Flow mit Button-Auslöser und einer Aktion API aufrufen.

## Schritt 5: auslösen und Ergebnis prüfen

Ein Klick auf den Button **Vorfall melden** an einem Objekt startet den Flow. Unter **Logs** erscheint der
Lauf mit Status _Erfolg_; die Detailansicht zeigt Zeitpunkt, meldende Person, Auslöser-Objekt und die
ausgeführte Aktion.

[![Der erfolgreiche Lauf in den Logs](../../img/screenshots/flows/end-to-end-logs.png)](../../img/screenshots/flows/end-to-end-logs.png)
**Protokollierter Lauf:** ein erfolgreicher, per Button ausgelöster Aufruf, festgehalten mit Auslöser-Objekt
und auslösender Person.

## Aktivieren, Testmodus und Logs

Ein gespeicherter Flow ist zunächst _Inaktiv_. In der Detailansicht schaltet **Aktivieren** ihn scharf, und
**In Testmodus wechseln** führt ihn in einem neutralen Zustand aus, in dem Aktionen nur simuliert werden.
Jeder Lauf wird unter **Logs** mit Zeitpunkt, Status (Erfolg, übersprungen oder Fehler) und Begründung
festgehalten.

!!! note
Aktionen, die die CMDB verändern (Objekt anlegen, aktualisieren oder einstufen), laufen als _Flow-User_.
Damit sie greifen, benötigt dieser einmalig die nötigen Objektrechte (Opt-in unter **Flow-Users**).
Webhook- und E-Mail-Aktionen wie oben benötigen keine CMDB-Schreibrechte.

## Weiterführende Themen

- [Flows-Überblick](index.md)
- [Aktionen – Anwendungsfälle](actions.md)
59 changes: 59 additions & 0 deletions docs/de/user/flows/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: Flows
description: Wiederkehrende Aufgaben in i-doit up mit Auslösern, Bedingungen und Aktionen automatisieren
lang: de
---

# Flows

Flows ist ein Add-on, das wiederkehrende Aufgaben in i-doit up automatisiert. Jeder Flow ist eine streng
lineare Kette:

**Auslöser → Bedingungen (optional) → Aktion(en)**

- **Auslöser** — was den Flow startet (genau einer, Pflicht).
- **Bedingungen** — zusätzliche Voraussetzungen, die _alle_ erfüllt sein müssen, sonst wird der Lauf übersprungen (optional).
- **Aktionen** — was der Flow tut (mindestens eine; mehrere Aktionen laufen von oben nach unten).

Die Oberfläche folgt der Sprache von i-doit up (Deutsch oder Englisch) und erscheint unter **Add-ons** in der
oberen Navigation.

## Überblick und Oberfläche

Öffnen Sie das Add-on über **Add-ons > Flows**. Die Startseite ist die Übersicht mit einer Such- und
Filterleiste (Status, Auslösertyp, Ersteller), Aktionen je Zeile (Öffnen, Test, Menü) sowie den Schaltflächen
**Flow hinzufügen**, **Export** und **Import**. Links wechseln Sie zwischen **Alle Flows**, **Logs** und
**Verlauf**.

[![Die Flows-Übersicht listet jeden Flow mit Status und Auslösertyp](../../img/screenshots/flows/overview.png)](../../img/screenshots/flows/overview.png)
**Flows-Übersicht:** jeder Flow mit Status, Auslösertyp und Aktionen je Zeile.

## Einen Flow anlegen

Mit **Flow hinzufügen** öffnen Sie den Editor. Ein **Name** ist Pflicht; **Beschreibung** und **Flow-Gruppen**
sind optional. Den Körper bauen Sie über **Auslöser hinzufügen**, **Bedingung hinzufügen** und
**Aktion hinzufügen** — jeder öffnet einen Dialog mit einer Typ-Liste links und dem Formular rechts.

Einen unfertigen Flow können Sie als Entwurf speichern (Status _Inaktiv_); Pflichtfelder werden beim Speichern
geprüft. Mit dem Recht **Flow-Operator wählen** legen Sie zusätzlich fest, als welcher Flow-User der Flow
läuft.

## Zugriff und Rechte

Der Zugriff wird über das Rechtesystem von i-doit up gesteuert, unter **Benutzerverwaltung > Rechte >
Add-on-Rechte > Flows**. Das Add-on bringt zwei Rechte mit:

- **Flows verwalten** — Vollzugriff auf das Add-on. Ohne dieses Recht ist der Eintrag **Flows** ausgeblendet und die Add-on-API antwortet mit einem Rechtefehler. Die Admin-Rolle erhält das Recht bei der Installation automatisch.
- **Flow-Operator wählen** — erlaubt die Wahl des Flow-Users, als der ein Flow läuft, und öffnet die Seite **Flow-Users**.

Das Recht **Flows verwalten** steuert nur den Zugang zur Oberfläche. Ob ein aktiver Flow läuft, hängt allein
von seinem Auslöser ab, unabhängig davon, wer ihn auslöst.

## Weiterführende Themen

- [Auslöser, Bedingungen und Aktionen](reference.md)
- [Auslöser – Anwendungsfälle](triggers.md)
- [Bedingungen – Anwendungsfälle](conditions.md)
- [Aktionen – Anwendungsfälle](actions.md)
- [Durchgängiges Beispiel](end-to-end.md)
- [Add-ons](../../admin/addons.md)
73 changes: 73 additions & 0 deletions docs/de/user/flows/reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: Auslöser, Bedingungen und Aktionen
description: Referenz aller Flows-Bausteine mit einer Kurzbeschreibung
lang: de
render_macros: false
---

# Auslöser, Bedingungen und Aktionen

Die folgenden Tabellen listen alle verfügbaren Auslöser, Bedingungen und Aktionen mit einer Kurzbeschreibung.
Ausführliche Anwendungsfälle mit Screenshots folgen unter [Auslöser – Anwendungsfälle](triggers.md),
[Bedingungen – Anwendungsfälle](conditions.md) und [Aktionen – Anwendungsfälle](actions.md).

## Auslöser

Ein Flow hat genau einen Auslöser; er bestimmt, _wann_ der Flow startet.

| Auslöser | Beschreibung |
| --- | --- |
| **Button** | Fügt Objekt-Detailansichten eine Schaltfläche hinzu; der Flow startet per Klick. Die Sichtbarkeit lässt sich auf alle Objekte, ausgewählte Objektklassen oder ausgewählte Objekte (und Kategorie-Ansichten) begrenzen. |
| **Zeitbasiert** | Startet zu einem festgelegten Datum und Uhrzeit — einmalig oder wiederkehrend (alle N Tage, Wochen, Monate oder Jahre; bei Wochen erscheint eine Wochentagsauswahl). |
| **Objekt-Ereignis** | Startet bei Objekt-Ereignissen: angelegt, geändert, gelöscht, archiviert oder wiederhergestellt. Begrenzbar auf Objektklassen oder ausgewählte Objekte. |
| **Kategorie-Ereignis** | Startet, wenn ein Kategorie-Eintrag angelegt, geändert oder gelöscht wird. Begrenzbar auf ausgewählte Kategorien und Attribute. |

## Bedingungen

Bedingungen sind optional. Mehrere lassen sich kombinieren und müssen _alle_ erfüllt sein, sonst wird der Lauf
übersprungen.

| Bedingung | Beschreibung |
| --- | --- |
| **Objektbasiert** | Läuft nur, wenn das Auslöser-Objekt dem visuellen Filter entspricht (mehrere Filter mit _Und_ verknüpft). |
| **Zeitbasiert** | Läuft nur innerhalb der definierten Zeitfenster (Wochentage plus Von/Bis-Bereich; mehrere Fenster möglich). |
| **Benutzer / Benutzergruppe** | Läuft nur, wenn durch ausgewählte Benutzer oder Mitglieder ausgewählter Benutzergruppen ausgelöst. |

## Aktionen

Ein Flow hat mindestens eine Aktion; mehrere laufen der Reihe nach von oben nach unten.

| Aktion | Beschreibung |
| --- | --- |
| **Objekt anlegen** | Legt ein neues Objekt der gewählten Klasse an; der Titel kann Platzhalter enthalten, Attribute werden über den Attribut-Picker gesetzt. |
| **Objekt aktualisieren** | Setzt Attribute am Auslöser-Objekt oder an ausgewählten Objekten. Eine Mehrwert-Kategorie erhält pro Lauf einen neuen Eintrag. |
| **Objekt einstufen** | Ändert den Lifecycle-Zustand eines Objekts (normal, archiviert, gelöscht). |
| **E-Mail senden** | Sendet eine E-Mail (Markdown-Text mit Vorschau) an einen oder mehrere Empfänger. SMTP wird serverseitig konfiguriert. |
| **API aufrufen** | Sendet eine HTTP-Anfrage (GET, POST, PUT, PATCH, DELETE) an eine externe API; der Body kann Platzhalter enthalten, optional über einen Proxy. |

## Platzhalter

Mehrere Aktionsfelder akzeptieren `{{ … }}`-Platzhalter, die zur Laufzeit durch echte Werte ersetzt werden.
Das Menü **Variable einfügen** unter dem jeweiligen Feld fügt sie an der Cursorposition ein.

| Platzhalter | Bedeutung |
| --- | --- |
| `{{object-name}}` | Name des auslösenden Objekts |
| `{{object-id}}` | ID dieses Objekts |
| `{{object-link}}` | Direktlink zur Objekt-Übersicht |
| `{{users-name}}` | Vor- und Nachname des auslösenden Benutzers |
| `{{users-e-mail}}` | E-Mail-Adresse dieses Benutzers |
| `{{counter}}` | Eine automatisch hochzählende, bei jeder Verwendung eindeutige Nummer |
| `{{date}}` | Das Datum der Ausführung |
| `{{time}}` | Die Uhrzeit der Ausführung |
| `{{date-time}}` | Datum und Uhrzeit der Ausführung |

Platzhalter stehen im Objekttitel einer Aktion **Objekt anlegen**, in Textwerten einer Aktion
**Objekt aktualisieren**, im Betreff und Text einer Aktion **E-Mail senden** sowie im Body einer Aktion
**API aufrufen** zur Verfügung.

## Weiterführende Themen

- [Flows-Überblick](index.md)
- [Auslöser – Anwendungsfälle](triggers.md)
- [Aktionen – Anwendungsfälle](actions.md)
Loading
Loading