Trigger
Eine neue Datei im Ordner, ein Zeitplan oder ein Klick startet den Workflow. Zu den Triggern
RUNOS ist ein Werkzeug zur Workflow-Automatisierung für Windows. Ein Workflow besteht aus einem Trigger, der ihn startet, und einer Liste von Aktionen, die nacheinander die Arbeit erledigen. RUNOS läuft lokal auf Ihrem Rechner, im Hintergrund im Infobereich der Taskleiste, und ist kostenlos.
Trigger
Eine neue Datei im Ordner, ein Zeitplan oder ein Klick startet den Workflow. Zu den Triggern
Aktionen
Mails senden (SMTP, Mailprogramm), APIs abfragen und E-Rechnungen erzeugen. Zu den Aktionen
Operationen
Entscheiden (IF), wiederholen (Loop), gleichzeitig ausführen (Parallel) und Daten mit JavaScript umformen (Code). Zu den Operationen
Konnektoren
Zugangsdaten und OAuth-Anmeldungen einmal speichern, in allen Workflows nutzen. Zu den Konnektoren
Jede Rechnung, die das ERP über den PDF-Drucker in den Ordner
C:\RUNOS\Rechnungendruckt, soll als XRechnung an den Kunden gemailt werden.
In RUNOS ist das ein Workflow mit
Jeder Lauf wird protokolliert. Schlägt etwas fehl, landet die Datei im Ordner Failed, Sie werden benachrichtigt und können eigene Fehler-Aktionen ausführen lassen.
Client: Outlook: das klassische OutlookRunOS.exe; der Name bleibt bei jeder Version gleich.C:\Programme\RUNOS\RunOS.exe, und starten Sie sie. Eine Installation ist nicht nötig.RUNOS-Verknüpfung liegt. Die Verknüpfung zeigt auf die .exe am aktuellen Ort.RUNOS läuft nur einmal pro Windows-Sitzung. Wird es ein zweites Mal gestartet, beendet sich die ältere Instanz und die neue übernimmt. Wenn Sie das Fenster schließen, läuft RUNOS im Infobereich der Taskleiste weiter, und Ihre Workflows laufen weiter. Beenden im Tray-Menü stoppt alle Workflows.
RUNOS ist kostenlos. Jede Installation erhält trotzdem eine eigene, an diesen PC gebundene Lizenz:
Den Status sehen Sie unter Einstellungen → Lizenz, mit der Installations-ID (für den Support) und Jetzt prüfen.
RUNOS sieht kurz nach dem Start und danach alle 6 Stunden nach, ob eine neue Version erschienen ist. Gibt es eine, erscheint in der Aktivitätsleiste über Hilfe das Update-Symbol (Pfeil mit rotem Punkt), und eine Benachrichtigung weist darauf hin. Ein Klick auf das Symbol zeigt, welche Version kommt und wie viel geladen wird; Jetzt aktualisieren lädt sie herunter, ersetzt RUNOS und startet es neu. Selbst nachsehen können Sie unter Einstellungen → Info → Nach Updates suchen.
.exe dort, wo sie liegt. Autostart und Verknüpfungen bleiben gültig. Heißt die Datei noch nach ihrer Version (runos_3.66.exe, der frühere Download-Name), wird sie dabei zu RunOS.exe umbenannt, sofern im Ordner noch keine RunOS.exe liegt. Der Autostart zieht von selbst mit; eine Verknüpfung auf den alten Namen legen Sie einmal neu an. Liegt RUNOS in einem Ordner, in den Ihr Benutzer nicht schreiben darf (z. B. C:\Programme\RUNOS), fragt Windows nach Administratorrechten..exe gerade verwenden (Terminalserver), arbeiten bis zu ihrem nächsten Start von RUNOS mit der alten Version weiter.Version 3.66 und älter haben noch kein Update-Symbol. Dort aktualisieren Sie einmal von Hand: RUNOS über das Tray-Menü beenden, die alte .exe durch die neue von systemberg.de/runos/download ersetzen (gleicher Ort) und RUNOS wieder starten.
Was sich in welcher Version geändert hat, steht unter Änderungen.
Links im RUNOS-Fenster liegt die Aktivitätsleiste:
| Ansicht | Inhalt |
|---|---|
| Workflows | Liste aller Workflows mit Zustand, Trigger und den letzten Läufen; Neu legt einen Workflow an, leer oder aus einer Vorlage |
| Protokolle | Das Protokoll aller Workflows, filterbar nach Stufe, Workflow und Benutzer |
| Konnektoren | Gespeicherte Zugänge zu Diensten und APIs, siehe Konnektoren |
| E-Rechnung (XRechnung) | Eine Rechnung Feld für Feld ausfüllen und JSON, XML und Prüfungen sehen, siehe Die Ansicht E-Rechnung |
| Drucker | PDF-Drucker anlegen, ändern und löschen, die jeden Druck als PDF in einen Ordner speichern, siehe PDF-Drucker |
| Hilfe | Kontakt per E-Mail an info@systemberg.de |
| Einstellungen | Sprache, Autostart, Protokoll, Skriptblöcke, KoSIT-Validator, Lizenz, siehe Einstellungen |
Workflow-Liste: Jede Zeile zeigt Namen und Trigger, die Schaltfläche Starten / Stoppen und die letzten Läufe als Punkte: grün erfolgreich, gelb mit Warnung oder abgebrochen, rot fehlgeschlagen. Löschen Sie das Protokoll (Papierkorb), verschwinden auch diese Punkte, bei ausgewählten Workflows nur deren. Ein Klick öffnet den Workflow im Editor; über das Kontextmenü können Sie ihn starten, stoppen oder löschen. Die Reihenfolge ändern Sie per Drag-and-drop, mit einem Klick auf den Griff links in der Zeile oder über Kontextmenü → Verschieben (nach oben, nach unten, ganz nach oben, ganz nach unten); für den ausgewählten Workflow gehen auch Alt+↑ / Alt+↓. Läuft RUNOS als Administrator, gibt es kein Drag-and-drop (Windows lässt es für Programme mit Administratorrechten nicht zu); Kontextmenü und Tasten funktionieren auch dann.
Workflow-Editor: Er öffnet sich in einem Tab, den Sie auch in ein eigenes Fenster ziehen können.
| Element | Funktion |
|---|---|
| Name | Klick auf den Namen zum Umbenennen. Der Name im JSON wird mit angepasst. |
| Visuell / JSON / Skript | Wechselt zwischen Diagramm, JSON-Editor und den Skriptblöcken, die eine Datei für diesen Workflow mitbringen muss, siehe unten. Ein Workflow öffnet sich als Diagramm, wenn sein JSON gültig ist. |
| Speichern (Strg+S) | Prüft das JSON und speichert. Danach gilt der Wert von Autostart. |
| Ausführen (F5) | Führt die Aktionen einmal aus, mit dem JSON im Editor, gespeichert oder nicht. |
| Lauschen | Schaltet den Trigger zum Testen ein, solange der Tab offen ist. |
| Starten / Stoppen | Startet oder stoppt den gespeicherten Workflow wie die Schaltfläche in der Workflow-Liste. Der Zustand bleibt auch nach einem Neustart von RUNOS erhalten. |
| JSON-Editor | Nach {{ schlägt er die Variablen dieses Workflows vor, nach einem Punkt deren Felder. |
| Protokoll | Blendet das Protokoll dieses Workflows unter dem Editor ein und aus (beim Öffnen ausgeblendet). Die Zahlen auf der Schaltfläche zählen seine Einträge: rot Fehler, gelb Warnungen, blau Info. Doppelklick zeigt einen Eintrag vollständig; der Papierkorb löscht nur die Einträge dieses Workflows und seine Punkte in der Workflow-Liste. |
Diagramm (Visuell): Der Workflow von oben nach unten: der Trigger mit den Startdaten daneben, die Aktionen in ihrer Reihenfolge, bei If die Zweige Wenn wahr und Wenn falsch nebeneinander, bei Loop ein Rahmen um die Aktionen, die je Element laufen, bei Parallel eine Spalte je Zweig mit dessen Namen. Rechts daneben stehen die OnError-Aktionen. Jede Aktion zeigt Namen, Art und die wichtigste Einstellung; ausgeschaltete Aktionen ("Enabled": false) sind blass und mit Aus markiert, die Description erscheint beim Zeigen auf die Aktion.
If, Loop und Parallel lassen sich zuklappen.If, Loop oder Parallel nimmt alles mit, was darin steht; die Linien folgen. Die Positionen speichert RUNOS im Workflow unter "Layout", Aufräumen (oben links) stellt die automatische Anordnung wieder her. Eine Aktion auf ein + ziehen ändert dagegen ihre Stelle in der Reihenfolge, auch in einen Zweig hinein oder aus ihm heraus. Über der Aktion: ein- und ausschalten, duplizieren, im JSON zeigen, nach oben / unten, löschen.Parallel fügen Sie dort Zweige hinzu, benennen sie um oder entfernen sie), Bei Fehler (eigene OnErrorPolicy) und die ganze Aktion als JSON. Nach {{ schlägt das Feld die Werte früherer Aktionen vor, bei Aktionen mit Testdaten deren echte Schlüssel. Wird eine Aktion umbenannt, werden die Verweise {{Name.…}} darauf mit angepasst.Autostart, Zeitlimit, OnErrorPolicy, OnWarningPolicy).{{InitialData.…}}-Werte, die fehlen. Ein Klick auf einen Eintrag wählt die Aktion aus./* … */), ist das Diagramm schreibgeschützt, bis Sie wählen: Kommentare direkt über einer Aktion als deren Description übernehmen oder alle Kommentare entfernen. Beides lässt sich im JSON mit Strg+Z zurücknehmen.Protokoll: Jede Zeile hat Zeit, Stufe (Trace, Debug, Info, Erfolg, Warnung, Fehler, Kritisch), Benutzer, Quelle, Titel und Nachricht. Benutzer ist der Windows-Benutzer, dessen RUNOS den Eintrag geschrieben hat (leer bei Einträgen aus älteren Versionen); mit dem Filter Benutzer sehen Sie nur dessen Einträge, wenn mehrere Benutzer einen gemeinsamen Datenordner verwenden. Ist ein Benutzer gewählt, löscht der Papierkorb nur die angezeigten Einträge. Protokoll in Datei speichern exportiert die sichtbaren Einträge als Text oder CSV. Für die Fehlersuche lohnt sich der Filter Trace: Dann sehen Sie, wie jede Variable aufgelöst wurde und welche Parameter jede Aktion bekam.
In diesem Beispiel überwacht RUNOS einen Ordner. Für jedes PDF, das dort landet, öffnet sich eine neue Mail im Mailprogramm, mit dem PDF als Anhang.
PDF per Mail, und bestätigen Sie mit Erstellen.{ "Name": "PDF per Mail", "Autostart": false,
"Trigger": { "Type": "File", "Name": "Eingang", "Parameters": { "Pool": "C:\\RUNOS\\Eingang", "Filter": "*.pdf", "CronExpression": "0/10 * * * * ?" } },
"Actions": [ { "Type": "MAPI", "Name": "MailOeffnen", "Parameters": { "Client": "Default", "Mode": "Display", "To": "kunde@example.com", "Subject": "Ihr Dokument vom %DATE%", "Body": "Guten Tag,\n\nanbei das Dokument {{FileName}}.", "Attachments": "{{FilePath}}" } } ]}C:\RUNOS\Eingang. Nach spätestens 10 Sekunden öffnet sich die Mail."Autostart": true und speichern Sie. Ab jetzt läuft der Workflow dauerhaft, auch nach einem Neustart.Neu in der Workflow-Liste fragt nach dem Namen des neuen Workflows und bietet darüber die Vorlagen an: einen leeren Workflow oder ein fertiges, kommentiertes Beispiel zum Anpassen. Die Wahl einer Vorlage schlägt ihren Namen vor. Kommentare (/* … */) im JSON erklären jede Einstellung.
Die Vorlagen kommen bei jedem Öffnen des Dialogs vom RUNOS-Server, neue und verbesserte Vorlagen erscheinen also ohne neue RUNOS-Version. Ohne Internetverbindung bietet der Dialog nur den leeren Workflow an.
| Vorlage | Zeigt |
|---|---|
| Gedruckte Rechnung als XRechnung | Rechnung aus der Warenwirtschaft auf den PDF-Drucker → geprüfte XRechnung im ZUGFeRD-PDF → Mail, siehe XRechnung-Beispiel |
| XRechnung per E-Mail | XRechnung aus Rechnungsdaten im Workflow erzeugen, prüfen und mailen |
| XRechnung-Referenz (alle Felder) | Alle Felder einer XRechnung mit Beschreibung, als Nachschlagewerk |
| PDF-Drucker → E-Mail / → Outlook / → Archiv | Jeder Druck auf den PDF-Drucker per Mail (SMTP), als Outlook-Mail zum Prüfen oder abgelegt nach Jahr und Monat |
| Eingehende Dateien drucken | Jede Datei drucken, die in einem Ordner gespeichert wird |
| Ordner → Netzwerkfreigabe, Ordner → SFTP-Server | Neue Dateien auf eine Freigabe verschieben oder auf einen SFTP-Server hochladen |
| Tägliche Ordnersicherung | Einen Ordner werktags abends kopieren (Time-Trigger) |
| Mail über Microsoft 365, Mail im klassischen Outlook | Mail mit Anhang über Microsoft 365 / Outlook.com oder das klassische Outlook (MAPI) |
| API-Abfrage mit Bedingung | HTTP-Abfrage einer Wetter-API, Wenn/Sonst-Entscheidung, Mail per SMTP |
Die Vorlagen verwenden Platzhalter wie smtp.example.com und für Mail-Zugangsdaten den Basic-Konnektor Mailserver; der Kommentar am Anfang jeder Vorlage sagt, was einmal einzurichten ist.
Ein Workflow ist ein JSON-Objekt. Groß- und Kleinschreibung der Feldnamen spielt keine Rolle. Kommentare /* … */ und // … sind erlaubt.
{ "Name": "Rechnungen versenden", "Autostart": true, "InitialData": { "Empfaenger": "buchhaltung@example.com" }, "Trigger": { "Type": "File", "Name": "Eingang", "Parameters": { "Pool": "C:\\RUNOS\\Rechnungen", "Filter": "*.pdf" } }, "Actions": [ { "Type": "SMTP", "Name": "Senden", "Parameters": { "To": "{{InitialData.Empfaenger}}" } } ], "OnError": [ { "Type": "SMTP", "Name": "Fehlermail", "Parameters": { "Subject": "Fehler: {{Error.Message}}" } } ], "TimeoutSeconds": 0, "OnErrorPolicy": { "Strategy": "CancelRun" }, "OnWarningPolicy": { "Strategy": "LogOnly" }}| Feld | Pflicht | Bedeutung |
|---|---|---|
Name |
ja | Name des Workflows |
Autostart |
nein | true: läuft nach dem Speichern und nach jedem Start von RUNOS. Standard false. |
InitialData |
nein | Beliebige Daten, die alle Aktionen als {{InitialData.…}} lesen, z. B. Adressen oder feste Rechnungsdaten |
Trigger |
ja | Der Trigger: File, Printer, Time oder Manual |
Actions |
ja | Liste der Aktionen, mindestens eine. Sie laufen nacheinander. |
OnError |
nein | Aktionen, die laufen, wenn ein Lauf fehlschlägt, siehe Fehlerbehandlung |
TimeoutSeconds |
nein | Zeitlimit je Aktion in Sekunden. 0 = kein Limit. |
OnErrorPolicy, OnWarningPolicy |
nein | Was bei Fehlern und Warnungen passiert, für alle Aktionen ohne eigene Richtlinie |
Layout |
nein | Nur für das Diagramm: wohin Sie Aktionen verschoben haben. RUNOS führt den Workflow unabhängig davon aus. |
Trigger und Aktionen haben denselben Aufbau:
| Feld | Bedeutung |
|---|---|
Type |
Art des Triggers (File, Printer, Time, Manual) oder der Aktion (XRechnung, SMTP, MAPI, Outlook365, HttpRequest, If, Loop, Parallel, StopWorkflow) |
Name |
Eindeutiger Name. Über ihn lesen spätere Aktionen das Ergebnis, z. B. {{Senden.Response.Results.Status}}. |
Parameters |
Die Einstellungen; welche es gibt, steht auf der Seite der jeweiligen Aktion. Unbekannte Parameter werden ignoriert. |
OnErrorPolicy, OnWarningPolicy |
Nur bei Aktionen: eigene Richtlinie, die die des Workflows ersetzt |
Description |
Nur bei Aktionen, optional: Beschreibung für Menschen, im Diagramm beim Zeigen auf die Aktion zu sehen. RUNOS wertet sie nicht aus. |
Enabled |
Nur bei Aktionen, optional: false schaltet die Aktion aus, siehe unten. Fehlt es, ist die Aktion eingeschaltet. |
"Enabled": false schaltet eine Aktion ab, ohne sie zu löschen: { "Type": "SMTP", "Name": "Senden", "Enabled": false, … }. Sie läuft nicht, und bei If, Loop und Parallel auch nichts, was darin steht; der Lauf geht mit der nächsten Aktion weiter. Spätere Aktionen, die {{Senden.…}} lesen, bekommen keinen Wert. Das funktioniert in Actions, in OnError und in den Zweigen von If, Loop und Parallel. Sind alle Aktionen in Actions ausgeschaltet, lässt sich der Workflow nicht laden.
Die ältere Schreibweise mit # vor dem Typ ("Type": "#SMTP") funktioniert weiterhin, aber nur direkt in Actions und OnError.
Jede Aktion legt ihr Ergebnis unter ihrem Namen ab, mit diesem Grundaufbau:
{ "Name": "Senden", "Type": "SMTP", "Parameters": { … }, "Response": { "Results": [ { … } ], "SuccessCount": 1, "ErrorCount": 0 }, "Meta": { "Host": "PC-BUCHHALTUNG" }, "Status": { "State": "Completed", "Warnings": [], "Errors": [] }}Status.State ist Completed, Failed, Skipped oder Cancelled. Jedes Auslösen startet einen eigenen, unabhängigen Lauf.
In fast jedem Parameter sind Platzhalter erlaubt. RUNOS ersetzt sie unmittelbar bevor die Aktion läuft:
%…% für Datum, Uhrzeit, Ordner und Umgebungsvariablen. Sie werden zuerst ersetzt.{{…}} für Daten aus dem Workflow: Ergebnisse von Trigger und Aktionen, InitialData, Konnektoren.{{…}}Ein Platzhalter ist ein Pfad aus Namen, getrennt durch Punkte, z. B. {{RechnungErstellen.Response.Results.FilePath}}. Groß- und Kleinschreibung spielt keine Rolle.
| Wurzel | Inhalt | Verfügbar |
|---|---|---|
InitialData |
InitialData des Workflows, ergänzt durch Parametersätze und Skriptblöcke |
immer |
Trigger oder Name des Triggers |
Ergebnis des Triggers | immer |
| Name einer Aktion | Ergebnis dieser Aktion | nach der Aktion |
FilePath, FileName, FileContent |
Datei dieses Laufs und ihr Text | File-Trigger |
Error |
der Fehler, der den Lauf beendet hat | in OnError |
item, index, count |
aktuelles Element, Position (ab 0), Anzahl | in einer Loop |
connector |
gespeicherte Konnektoren | immer |
| eigene Werte | globale Werte aus einem Skriptblock | File-Trigger |
| Schreibweise | Ergebnis |
|---|---|
Results.0 oder Results[0] |
erstes Element einer Liste (ab 0) |
Results.first / .last / .count / .any |
erstes / letztes Element, Anzahl, nicht leer |
Results.FilePath |
ein Feldname auf einer Liste greift automatisch auf das erste Element zu |
.toString(), .toInt(), .toDouble(), .toBool() |
Wert umwandeln |
.toBase64() |
Base64 des Textes; ist der Wert ein vorhandener Dateipfad, des Dateiinhalts |
.length() |
Länge eines Textes |
{{!pfad}} liefert immer Text.%…%| Platzhalter | Beispiel | Hinweis |
|---|---|---|
%DATE% / %TIME% |
2026-10-08 / 14-05-09 |
|
%yyyy% / %yy% / %MM% / %dd% |
2026 / 26 / 10 / 08 |
%MM% = Monat, groß |
%HH% / %hh% / %mm% / %ss% / %fff% |
14 / 02 / 05 / 09 / 123 |
%mm% = Minute, klein |
%userdesktop%, %userdocuments%, %userdownloads% |
Desktop, Dokumente, Downloads | |
%userprofile%, %userappdata%, %local% |
Benutzerordner, AppData\Roaming, AppData\Local |
|
%programdata%, %programfiles%, %base% |
C:\ProgramData, C:\Program Files, Ordner von RUNOS |
|
%username%, %machinename%, %osversion% |
Benutzer, PC-Name, Windows-Version | |
%NAME% |
jede Windows-Umgebungsvariable, z. B. %TEMP% |
Beispiel: Export_%yyyy%-%MM%-%dd%_%HH%-%mm%.csv → Export_2026-10-08_14-05.csv. Platzhalter dürfen direkt aneinanderstehen (%HH%%mm%%ss%). Ein unbekanntes %…% bleibt stehen.
Die Parameter Body und Signatur der Mail-Aktionen nehmen auch den Pfad einer Text- oder HTML-Datei; Platzhalter darin werden ebenfalls ersetzt. Platzhalter rechnen nicht; für Entscheidungen gibt es IF, zum Rechnen und Umformen Code.
Ein Lauf kann an einer Aktion, am Zeitlimit (TimeoutSeconds) oder schon am Trigger scheitern (Ordner nicht lesbar, fehlerhafter Skriptblock). Dann:
<Pool>\Spooler\Failed\<ID>\ verschoben.{{Error…}}.CancelWorkflow und die Aktion StopWorkflow halten ihn an.OnErrorPolicy"OnErrorPolicy": { "Strategy": "RetryThenNotify", "MaxRetries": 3, "InitialDelaySeconds": 5, "BackoffStrategy": "exponential" }Strategy |
Wirkung |
|---|---|
CancelRun |
Standard. Der Lauf endet als fehlgeschlagen, der Workflow läuft weiter. |
CancelWorkflow |
Der Lauf endet und der Workflow wird gestoppt, auch über einen Neustart hinweg. |
SkipAction |
Aktion als übersprungen markieren, mit der nächsten weitermachen. Im Protokoll: „Skipping the failed action; the run continues.“ |
Retry / RetryThenNotify |
Bis zu MaxRetries Wiederholungen, danach wie CancelRun |
RetryThenSkip |
Bis zu MaxRetries Wiederholungen, danach wie SkipAction. Im Protokoll: „Skipping the action after N failed attempts; the run continues.“ (N = Versuche insgesamt) |
MaxRetries (Standard 0), InitialDelaySeconds (Standard 1) und BackoffStrategy (exponential: 1×, 2×, 4× … oder linear) steuern die Wiederholungen. Die Richtlinie einer Aktion hat Vorrang vor der des Workflows. Schreiben Sie Strategy genau wie in der Tabelle: Ein anderer Wert (auch skipaction in Kleinbuchstaben) wirkt wie CancelRun; beginnt er mit Retry, wird vorher wiederholt. Fehlt Strategy in einer OnErrorPolicy, gilt CancelRun, nicht die Richtlinie des Workflows. Im Diagramm zeigt der Reiter Bei Fehler jeder Aktion, was an ihrer Stelle tatsächlich gilt.
Eine eigene Richtlinie wirkt auch für Aktionen in If, Loop, Parallel und OnError. Eine Aktion in If, Loop oder Parallel ohne eigene Richtlinie übernimmt die des Workflows nicht: Schlägt sie fehl, schlägt das If fehl (dann gilt dessen Richtlinie), zählt der Durchlauf des Loops als Fehler bzw. schlägt ihr Zweig und damit das Parallel fehl. Mit "OnErrorPolicy": { "Strategy": "SkipAction" } an der Aktion selbst läuft der Zweig bzw. Durchlauf weiter.
OnWarningPolicy gilt für Aktionen, die mit Warnungen enden: LogOnly (Standard), Retry (mit RetryCount und RetryDelaySeconds) oder SkipAction.
OnError ist eine zweite Aktionsliste, die nur läuft, wenn ein Lauf fehlschlägt:
"OnError": [ { "Type": "SMTP", "Name": "FehlerMelden", "Parameters": { "To": "it@example.com", "Subject": "RUNOS: {{Error.Workflow}} fehlgeschlagen", "Body": "Aktion: {{Error.Action}}\nFehler: {{Error.Message}}\nDatei: {{Error.FileName}}\nZeit: {{Error.Time}}", "SmtpServer": "smtp.example.com", "SmtpUser": "runos@example.com", "SmtpPassword": "{{connector.Mailserver.Password}}", "From": "runos@example.com" } }]Feld von Error |
Inhalt |
|---|---|
Message, Errors |
Fehlermeldung, alle Meldungen als Liste |
Source |
Action oder Trigger |
Action, ActionType |
Name und Typ der fehlgeschlagenen Aktion |
Workflow, Machine, InstanceId |
Workflow, PC, Kennung des Laufs |
Time / TimeUtc |
Zeitpunkt (lokal / UTC) |
FileName, FilePath |
Datei des Laufs, falls vorhanden |
Sind alle OnError-Aktionen erfolgreich, gilt der Fehler als behandelt. OnError-Aktionen nutzen nur ihre eigene OnErrorPolicy, nie die des Workflows; schlägt eine fehl, werden die restlichen übersprungen und RUNOS zeigt die Fehlermeldung. OnError startet dabei nie erneut, eine Fehlerschleife ist also nicht möglich.
{{FilePath}} bleibt leer. Danach zeigt die Testansicht die Daten jeder Aktion, und das Diagramm markiert jede Aktion mit ihrem Ergebnis.InitialData gelegt werden. So probieren Sie einen Workflow mit verschiedenen Daten aus, ohne das JSON zu ändern. Sie gelten für Ausführen und Schritt testen.Im Protokoll sehen Sie je Lauf TriggerFired, ActionCompleted je Aktion, Fehler und Warnungen sowie eine Summary.
Die Testansicht zeigt für eine Aktion drei Spalten nebeneinander. Sie öffnen sie im Diagramm mit der Schaltfläche mit den Spalten oben im Einstellungsfeld einer Aktion; eine neu hinzugefügte Aktion öffnet sich gleich darin. Esc oder die Schaltfläche zum Verkleinern führt zurück zum Diagramm.
| Spalte | Inhalt |
|---|---|
| Eingabe | Die Daten, die die Aktion verwenden kann: jede frühere Aktion (die nächste zuerst) mit den Daten ihres letzten Laufs oder Tests als Baum oder, solange es keine gibt, mit den Feldern, die ihre Art liefert; die Variablen des Triggers (z. B. {{FilePath}}); die Startdaten (InitialData); in einem Loop item, index und count; in der OnError-Spalte Error.*; die gespeicherten Konnektoren als {{connector.<Name>.<Feld>}} (geheime Werte wie Passwort, API-Key oder Token stehen dort nur als „(verborgen)“, der Lauf liest den echten Wert). Das Suchfeld oben filtert alle Quellen nach Schlüssel, Verweis oder Wert. Das If, Loop oder Parallel, in dem die Aktion steht, fehlt: Es hat erst ein Ergebnis, wenn sein Inhalt gelaufen ist. Testen bei einer früheren Aktion führt diese aus, damit ihre Daten da sind. Daten leeren verwirft alle Testdaten. |
| Einstellungen | Formular bzw. Parameter, Bei Fehler und die Aktion als JSON, wie im Einstellungsfeld. |
| Ausgabe | Schritt testen (auch oben im Einstellungsfeld), danach der Zustand (Erfolgreich, Erfolgreich mit Warnungen oder Fehlgeschlagen), die Dauer, Fehler und Warnungen und das Ergebnis als Baum oder JSON: Response, Status, die aufgelösten Parameters und Meta. |
Werte per Drag-and-drop: Ziehen Sie einen Wert aus dem Baum der Eingabe oder Ausgabe auf ein Feld. Er wird dort, wo Sie loslassen, als {{…}}-Verweis eingefügt, z. B. {{LieferantSuchen.Response.Body.id}}. Auf einer Auswahlliste, einem Schalter oder einem Zahlenfeld wird das ganze Feld zu diesem Verweis. Beim Ziehen hängt der Verweis am Mauszeiger, und das Feld darunter wird hervorgehoben. Ein Klick auf einen Wert kopiert seinen Verweis; ein Klick auf einen Eintrag mit Inhalt (z. B. „8 Felder“) klappt ihn auf. Schlüssel mit ., [, ], {, }, (, ) oder " lassen sich in {{…}} nicht ansprechen und daher nicht ziehen.
Schritt testen führt nur diese eine Aktion sofort aus, mit den Daten, die die Schritte davor hinterlassen haben (ihr letzter Lauf oder Test), und mit den InitialData des gewählten Parametersatzes. Der Workflow muss dafür weder gespeichert noch vollständig sein; die Aktion braucht aber einen Namen. Fehlerrichtlinie, Wiederholungen und Zeitlimit gelten beim Test nicht. Bei If, Loop und Parallel laufen auch die Aktionen darin.
Ausführen (F5) füllt die Testdaten ebenfalls: Danach zeigt jede Aktion ihre Daten, und das Diagramm markiert sie mit ihrem Ergebnis (grüner Haken ohne Fehler, gelb mit Warnungen, rot fehlgeschlagen; während eines Tests ein Ladekreis).
Die Testdaten bleiben erhalten, solange der Tab des Editors offen ist, und werden nie mit dem Workflow gespeichert, da sie vertrauliche Daten enthalten können. Lange Texte und Listen werden nur in der Anzeige gekürzt; Tests verwenden die vollständigen Daten.
Die Einstellungen öffnen Sie über das Zahnrad unten in der Aktivitätsleiste. Den PDF-Drucker legen Sie unter Drucker in der Aktivitätsleiste an, siehe PDF-Drucker.
| Einstellung | Bedeutung |
|---|---|
| Anzeigesprache | Systemstandard, Deutsch, Englisch, Französisch, Italienisch oder Spanisch. Wird nach einem Neustart wirksam (Jetzt neu starten). |
| Mit Windows starten | RUNOS startet bei der Anmeldung minimiert im Infobereich, ohne dass sich das Fenster öffnet; die Workflows laufen trotzdem. Ein Klick auf das RUNOS-Symbol im Infobereich öffnet es. Beim ersten Start eingeschaltet. |
| Fehler-Pop-up anzeigen | Bei einem fehlgeschlagenen Lauf öffnet sich ein Fenster im Vordergrund. |
| KoSIT-Validator mit Windows starten | Lädt die E-Rechnungsregeln, sobald RUNOS startet. Standardmäßig aus: Dann startet der Validator mit der ersten XRechnung, die einmalig etwa 15–20 Sekunden wartet, oder mit Starten unter E-Rechnungs-Prüfung. Ausschalten beendet einen laufenden Validator nicht; er läuft bis zum Ende von RUNOS. |
| Protokolleinträge aufbewahren für | Nur aktuelle Sitzung, 1 Tag oder mehrere Tage (Standard 7) |
| Skriptblöcke | Blockmarkierungen (Standard #RUNOS / #RUNOS), Trennzeichen zwischen Blöcken (z. B. ` |
| E-Rechnungs-Prüfung | Zustand des KoSIT-Validators (Läuft, Wird gestartet…, Gestoppt, Fehler, Ersatzmodus) mit Starten / Neu starten und einer kurzen Meldung; Einzelheiten im Protokoll, siehe Wenn der Validator nicht startet |
| Lizenz | Zustand der Lizenz, Installations-ID mit ID kopieren, Jetzt prüfen |
| KI-Agenten | MCP-Server für KI-Agenten ein/aus (Standard aus) und KI-Agent verbinden mit Claude-Code-Befehl kopieren, JSON kopieren, Neuer Schlüssel, siehe KI-Agenten (MCP) |
| Nutzungsstatistik senden | Einmal am Tag Zahlen wie App-Starts, Abstürze, Zahl und Erfolg der Läufe, Aktionstypen mit Fehlern, Versionen. Niemals Workflow-Namen, Dateinamen, Pfade, Inhalte oder Meldungen. |
Jeder Windows-Benutzer hat seine eigenen Daten. So arbeiten mehrere Benutzer eines PCs (Terminalserver) unabhängig voneinander mit RUNOS und brauchen keine Schreibrechte auf gemeinsame Ordner.
| Pfad | Inhalt |
|---|---|
Dokumente\RUNOS\Config\Settings.json |
Einstellungen |
Dokumente\RUNOS\Config\DB\ |
Workflows, Konnektoren, Protokoll, Verlauf der Läufe, Parametersätze |
Dokumente\RUNOS\Config\License.json |
Lizenz dieser Installation |
Dokumente\RUNOS\Pools\<Druckername>\ |
Ihr Ordner eines PDF-Druckers, sofern Sie keinen anderen gewählt haben |
%LOCALAPPDATA%\RUNOS\ |
Arbeitsordner der XRechnung-Aktion, KoSIT-Validator und Prüfberichte |
Einstellungen → Datenordner zeigt den Pfad und öffnet ihn. Ändern… verschiebt die Daten in einen anderen Ordner Ihrer Wahl (leer oder neu, z. B. auf einem anderen Laufwerk): RUNOS startet neu und verschiebt Einstellungen, Lizenz, Workflows, Konnektoren und Protokoll dorthin, bevor es etwas öffnet; der alte Ordner wird danach gelöscht. Die Wahl gilt nur für Ihren Windows-Benutzer und steht unter HKEY_CURRENT_USER\Software\RUNOS (DataFolder). Enthält der gewählte Ordner bereits RUNOS-Daten (Settings.json oder DB), verschiebt RUNOS nichts, sondern fragt, ob Sie diesen Ordner verwenden möchten, siehe Gemeinsamer Datenordner. Ein anderer Ordner, der nicht leer ist, wird abgelehnt. Dokumente ist der Dokumente-Ordner des Benutzers, auch wenn er umgeleitet ist (etwa auf ein Netzlaufwerk). Die mit RUNOS gelieferten Dateien (Konnektor-Vorlagen, KoSIT-Regeln, Farbprofil) liest RUNOS aus dem Ordner Repository neben RUNOS.exe.
Zum Sichern beenden Sie RUNOS und kopieren Dokumente\RUNOS\Config. Verschlüsselte Geheimnisse von Konnektoren kann nur derselbe Windows-Benutzer auf demselben PC lesen.
Mehrere Windows-Benutzer können die Workflows eines Benutzers verwenden. Nur dieser Besitzer ändert sie; jede Änderung kommt bei den anderen Benutzern (Mitgliedern) sofort an, ohne Neustart.
C:\RUNOS-Daten (nicht den Dokumente-Ordner eines Benutzers, den die anderen nicht öffnen dürfen).Owner.txt im Ordner als Besitzer.| Gemeinsam (im Ordner des Besitzers) | Je Benutzer (im eigenen Ordner des Mitglieds) |
|---|---|
| Workflows, geteilte Konnektoren | eigene Konnektoren mit Zugangsdaten |
| Protokoll (Spalte Benutzer) | Einstellungen, Lizenz |
| Aufbewahrung des Protokolls, Skriptblöcke (legt der Besitzer fest) | Starten/Stoppen jedes Workflows, Punkte der letzten Läufe |
| Parametersätze (bis das Mitglied eigene speichert) | eigene Parametersätze und Script-Auswahl |
Autostart, wie beim Besitzer.Mail), verwendet derselbe Workflow bei jedem dessen eigene Adresse und eigenes Passwort.DB\SharedConnectors.db im gemeinsamen Ordner, und die Workflows aller Mitglieder können ihn verwenden. In der Liste steht er mit geteilt. Mitglieder sehen ihn, können ihn testen und sein Token erneuern, aber nicht ändern oder löschen; Duplizieren macht daraus einen eigenen Konnektor. Hat ein Mitglied einen eigenen Konnektor mit demselben Namen, gilt seiner. Die Geheimnisse eines geteilten Konnektors sind für diesen PC verschlüsselt statt für einen Benutzer: Jeder Benutzer dieses PCs (Terminalservers) kann sie lesen, ein anderer PC nicht. Haken entfernen und speichern macht ihn wieder zum eigenen Konnektor des Besitzers.Dokumente\RUNOS\Config, sonst Dokumente\RUNOS\Personal) und verwendet den gemeinsamen Ordner ab dann als Mitglied. Beim nächsten Start von RUNOS übernimmt der neue Besitzer den Ordner: Seine Lizenz, eigenen Konnektoren, Einstellungen, Verlauf und sein Starten/Stoppen kommen mit; Workflows, Protokoll, geteilte Konnektoren, Parametersätze sowie Aufbewahrung des Protokolls und Skriptblöcke bleiben, wie sie sind. Bis dahin ändert niemand die Workflows.%userdocuments%\RUNOS\Pool1 statt eines festen Pfads. Dann überwacht jeder Benutzer seinen eigenen Ordner. Ein fester Pfad wie C:\Eingang würde von allen angemeldeten Benutzern gleichzeitig überwacht.Update von einer älteren Version: Bisher lagen die Daten in C:\ProgramData\RUNOS, gemeinsam für alle Benutzer des PCs. Beim ersten Start kopiert die neue Version Settings.json, License.json und den Ordner DB von dort nach Dokumente\RUNOS\Config des Benutzers, einmal je Windows-Benutzer, damit jeder seine Workflows und Einstellungen behält. Auf einem Terminalserver startet so jeder Benutzer mit den bisher gemeinsamen Workflows; ab dann bleiben die Änderungen jedes Benutzers seine eigenen. C:\ProgramData\RUNOS bleibt unverändert; löschen Sie es, wenn alle Benutzer die neue Version gestartet haben. Kann RUNOS nicht in Dokumente\RUNOS\Config schreiben (Netzlaufwerk nicht erreichbar, oder Windows-Sicherheit → Überwachter Ordnerzugriff blockiert es), startet es nicht und meldet das.
Ist RUNOS kostenlos? Ja, RUNOS ist kostenlos.
Laufen Workflows, wenn niemand angemeldet ist? Nein. RUNOS läuft in der Sitzung eines angemeldeten Benutzers. Für einen PC, der unbeaufsichtigt arbeitet, bleibt ein Benutzer angemeldet (gesperrter Bildschirm ist in Ordnung).
Mein Workflow startet nicht, wenn eine Datei ankommt. Läuft der Workflow (die Liste zeigt Stoppen)? Passt die Datei zu Filter? Teilen mehrere Workflows den Ordner, nennt die Datei diesen Workflow in ihren Skriptblöcken (Gemeinsamer Pool)? Steht im Protokoll eine Lizenzmeldung?
Mein Workflow war plötzlich gestoppt. Durch "Strategy": "CancelWorkflow", eine StopWorkflow-Aktion oder durch Speichern mit "Autostart": false. Die Ursache steht im Protokoll.
Ein Platzhalter bleibt leer. Protokoll mit Filter Trace öffnen: Dort steht, wozu jeder Platzhalter aufgelöst wurde. Häufig: Tippfehler im Aktionsnamen, die Aktion lief noch nicht, oder der Wert einer HTTP-Antwort steckt unter Response.Body.
Funktioniert RUNOS mit dem neuen Outlook? Das neue Outlook lässt sich von keinem Programm steuern. Senden Sie über Microsoft 365; für das klassische Outlook gibt es MAPI.
Werden meine Rechnungen irgendwohin hochgeladen? Nein. Erzeugung und Prüfung der XRechnung laufen vollständig auf Ihrem PC.
Schreiben Sie uns an info@systemberg.de; in RUNOS öffnet Hilfe → Kontakt → E-Mail schreiben Ihr Mailprogramm. Hilfreich sind die Version (Einstellungen → Info), die Installations-ID und das Workflow-JSON ohne Passwörter; bei Fehlern auch das Protokoll (Protokolle → Protokoll in Datei speichern).