PowerON Workflow Engine Architektur

📖 Dokumentation: Diese Dokumentation beschreibt die Architektur der Workflow Engine von PowerON. Die Engine ermöglicht es, komplexe Multi-Step Workflows zu erstellen, die Tasks und Actions dynamisch organisieren und ausführen.

1. Workflow-Übersicht

🎯 Workflow Manager

@gateway/modules/workflows/workflowManager.py

Zentrale Komponente, die alle Workflow-Typen verwaltet und koordiniert.

Routen: @routeChatPlayground.py

⬇️

📋 Actionplan Mode

@modeActionplan.py

Funktion:

  • Batch-Planung aller Actions
  • Sequenzielle Ausführung
  • AI Review nach Task-Abschluss
  • Automatische Retry-Logik

✓ Implementiert

🔄 React Mode

@modeReact.py

Funktion:

  • Iterative Plan-Act-Observe-Schleife
  • Dynamische Action-Generierung
  • Adaptive Learning
  • Content Validation

✓ Implementiert

⚙️ Automated Mode

@modeAutomated.py

Funktion:

  • Fixed Workflow-Definition
  • Zeitgesteuerte Ausführung
  • Vordefinierter Fahrplan
  • Standardisierte Prozesse

⚠ Geplant

2. Workflow-Modell

🏗️ Hierarchische Struktur

📦 Workflow

Attribute: ID, Status, Round, Mandate

Zustände: running, stopped, completed, failed

Task 1 - Erste Aufgabe

Objective: "Verknüpfung definieren"

Action 1: sharepoint.findDocumentPath
Findet Dokumente im SharePoint
Action 2: sharepoint.readDocuments
Liest gefundene Dokumente
Task 2 - Zweite Aufgabe

Objective: "Verarbeitung durchführen"

Action 1: ai.process
Verarbeitet Dokumente mit AI
Action 2: sharepoint.uploadDocument
Speichert Ergebnisse
Task 3 - Dritte Aufgabe

Objective: "Benachrichtigung versenden"

Action 1: outlook.composeAndSendEmailWithContext
Sendet E-Mail mit Ergebnis
💡 Wichtige Prinzipien:

3. Verfügbare Actions

🤖 Method: AI

ai

process

Parameter:

  • aiPrompt (required)
  • documentList (optional)
  • resultType (optional)

AI-Textverarbeitung mit optionalen Input-Dokumenten

ai

webResearch

Parameter:

  • searchQuery (required)
  • language (optional)

Web-Recherche mit AI-gestützter Zusammenfassung

ai

generateImage

Parameter:

  • imagePrompt (required)
  • style (optional)

AI-Bildgenerierung basierend auf Textprompt

📁 Method: SharePoint

sharepoint

findDocumentPath

Parameter:

  • connectionReference (required)
  • searchQuery (required)
  • site (optional)
  • maxResults (optional)

Sucht Dokumente und Ordner in SharePoint

sharepoint

readDocuments

Parameter:

  • documentList (required)
  • connectionReference (required)

Liest Dokumente aus SharePoint

sharepoint

uploadDocument

Parameter:

  • documentData (required)
  • targetPath (required)
  • connectionReference (required)

Lädt Dokumente in SharePoint hoch

sharepoint

listDocuments

Parameter:

  • folderPath (required)
  • connectionReference (required)
  • includeSubfolders (optional)

Listet Dokumente in einem Ordner auf

📧 Method: Outlook

outlook

readEmails

Parameter:

  • connectionReference (required)
  • folder (optional)
  • limit (optional)
  • filter (optional)

Liest E-Mails aus einem Postfach

outlook

searchEmails

Parameter:

  • connectionReference (required)
  • searchQuery (required)

Sucht E-Mails mit spezifischen Kriterien

outlook

composeAndSendEmailWithContext

Parameter:

  • connectionReference (required)
  • recipientEmail (required)
  • subject (required)
  • emailBody (required)
  • attachments (optional)

Erstellt und sendet E-Mail mit Kontext

4. Beispiel-Workflow: Spesenverarbeitung

🎯 Use Case: Automatische Spesenverarbeitung

Szenario: Ein Kunde lädt PDF-Spesenbelege in einen SharePoint-Ordner. Der Workflow liest täglich die neuen Belege, verarbeitet sie über die Microsoft-Verbindung, aktualisiert das Buchhaltungssystem und sendet eine Bestätigungsmail.

📍 Step 1: Trigger (Automated Mode)

Zeitgesteuerte tägliche Ausführung (z.B. 08:00 Uhr)

Workflow ID: workflow_spesen_daily

Mode: Automated (fix vordefiniert)

📋 Task 1: Dokumente identifizieren

Objective: "Finde alle neuen PDF-Belege im Spesen-Ordner"

Action 1.1: sharepoint.listDocuments
Parameters: {
"folderPath": "/Spesen/2024",
"connectionReference": "user_msft_connection",
"includeSubfolders": false
}

✓ Ergebnis: Liste aller PDF-Dateien

Action 1.2: sharepoint.readDocuments
Parameters: {
"documentList": ["docList:msg_123:Rechnung_1.pdf", "docList:msg_123:Rechnung_2.pdf"],
"connectionReference": "user_msft_connection"
}

✓ Ergebnis: PDF-Inhalte für AI-Verarbeitung

🤖 Task 2: Daten extrahieren und verarbeiten

Objective: "Extrahiere Spesendaten aus PDFs und strukturiere sie"

Action 2.1: ai.process
Parameters: {
"aiPrompt": "Extrahiere alle Ausgaben aus den Spesenbelegen. Erstelle eine strukturierte JSON-Liste mit: Datum, Betrag, Kategorie, Verwendungszweck.",
"documentList": ["docList:msg_124:pdf_content"],
"resultType": "json"
}

✓ Ergebnis: Strukturierte Spesendaten (JSON)

📊 Task 3: Buchhaltung aktualisieren

Objective: "Übertrage Spesendaten ins Buchhaltungssystem"

Action 3.1: sharepoint.uploadDocument
Parameters: {
"documentData": {"content": "{\"transactions\": [...]}", "mimeType": "application/json"},
"targetPath": "/Buchhaltung/Spesen/processed/2024-01-15.json",
"connectionReference": "trust_accounting_system"
}

✓ Ergebnis: Aktualisierte Buchhaltung

📧 Task 4: Bestätigung senden

Objective: "Versende Bestätigungsmail mit Übersicht"

Action 4.1: outlook.composeAndSendEmailWithContext
Parameters: {
"connectionReference": "user_msft_connection",
"recipientEmail": "user@company.com",
"subject": "Spesenverarbeitung abgeschlossen - 15.01.2024",
"emailBody": "Guten Tag,\n\nIhre Spesenbelege wurden verarbeitet...",
"attachments": ["docList:msg_125:summary.pdf"]
}

✓ Ergebnis: E-Mail erfolgreich versendet

✓ Workflow abgeschlossen

Status: completed

Verarbeitet: 5 Actions in 4 Tasks

Dauer: ~2 Minuten

Ergebnis: Spesenbelege verarbeitet, Buchhaltung aktualisiert, Bestätigung versendet

5. Technische Architektur

🔧 Core Components

Processing Core:

  • actionExecutor.py - Führt Actions aus
  • messageCreator.py - Erstellt Workflow-Nachrichten
  • taskPlanner.py - Plant Tasks
  • validator.py - Validiert Actions

Adaptive Features:

  • intentAnalyzer.py - Analysiert User-Intents
  • contentValidator.py - Validiert Inhalte
  • adaptiveLearningEngine.py - Lernt aus Feedback
  • progressTracker.py - Verfolgt Fortschritt

📊 Legende

Workflow/Mode Box: Hauptkomponenten der Engine
Task Box: Einzelne Aufgabe im Workflow
Action Card: Konkrete Action-Ausführung
Success Box: Erfolgreich abgeschlossener Schritt
⚠️ Wichtige Hinweise: