Query und QueryPrecalc System
Übersicht
Abschnitt betitelt „Übersicht“Das Query- und QueryPrecalc-System ermöglicht die Ausführung von SQL-Abfragen mit Parametern, die Vorberechnung langsamer Abfragen für bessere Performance und den Export von Ergebnissen nach Excel. Das System unterstützt sowohl Echtzeit-Abfragen als auch vorberechnete Daten über ein Blue-Green-Deployment-Muster.
Query (Abfrage)
Abschnitt betitelt „Query (Abfrage)“Eine Query definiert eine SQL-Abfrage mit Parametern, die von Benutzern eingegeben werden können.
Erstellen einer Query
Abschnitt betitelt „Erstellen einer Query“- Navigieren Sie zum Query-Objekt in der Objektstruktur
- Erstellen Sie ein neues Query-Objekt
- Konfigurieren Sie:
- Name: Anzeigename der Abfrage
- Query: SQL-Abfrage mit benannten Parametern (z.B.
@PeriodeFrom,@PeriodeTo) - Query Type: Typ der Abfrage (z.B. ‘SQL’)
- Query Precalc: Optional - Verknüpfung zu einer QueryPrecalc für vorberechnete Daten
Parameter definieren
Abschnitt betitelt „Parameter definieren“Parameter werden in der Query-Detailansicht unter “Parameter” definiert:
- Name: Muss mit dem SQL-Parameter übereinstimmen (ohne @)
- Typ: Art des Parameters (siehe unten)
- Reihenfolge: Bestimmt die Reihenfolge der Parameter
- Erforderlich: Ob der Parameter zwingend ausgefüllt werden muss
Parametertypen
Abschnitt betitelt „Parametertypen“Standard-Typen
Abschnitt betitelt „Standard-Typen“- Number: Numerische Werte
- String: Textwerte
- Date: Datumswerte
- DateTime: Datum und Uhrzeit
- Boolean: Wahr/Falsch-Werte
- UID: Objekt-Referenzen (mit Objekt-Picker)
Erweiterte Typen
Abschnitt betitelt „Erweiterte Typen“- NumberRange: Zahlenbereich (min/max)
- DateRange: Datumsbereich
- SingleSelect: Einzelauswahl aus vordefinierten Optionen
- MultiSelect: Mehrfachauswahl aus vordefinierten Optionen
SingleSelect/MultiSelect mit Presets
Abschnitt betitelt „SingleSelect/MultiSelect mit Presets“Für SingleSelect und MultiSelect können vordefinierte Optionen konfiguriert werden:
[ { "value": "1", "label": "Komplett innerhalb Periode" }, { "value": "2", "label": "Touchiert Periode" }, { "value": "3", "label": "Kursbeginn innerhalb Periode" }, { "value": "4", "label": "Kursende innerhalb Periode" }]Wichtig:
- Der
valuewird an die SQL-Abfrage übergeben - Der
labelwird in der Benutzeroberfläche angezeigt - Für numerische Optionen wird automatisch eine Konvertierung durchgeführt
SQL-Funktionen mit Labels
Abschnitt betitelt „SQL-Funktionen mit Labels“Wenn Sie SQL-Funktionen für Queries mit SingleSelect/MultiSelect-Parametern erstellen:
- Die Funktion erhält den
value(z.B. “1”, “2”, “3”, “4”) - Verwenden Sie CASE-Statements, um Labels im Ergebnis zurückzugeben:
CAST((CASE @PeriodeType WHEN 1 THEN 'Komplett innerhalb Periode' WHEN 2 THEN 'Touchiert Periode' WHEN 3 THEN 'Kursbeginn innerhalb Periode' WHEN 4 THEN 'Kursende innerhalb Periode' ELSE 'Unbekannt, Fehler'END) AS VARCHAR(50)) AS PeriodeFilterTypDie Labels müssen exakt mit den in den QueryParam-Optionen definierten Labels übereinstimmen.
QueryPrecalc (Vorberechnete Abfrage)
Abschnitt betitelt „QueryPrecalc (Vorberechnete Abfrage)“QueryPrecalc verwaltet vorberechnete Abfragedaten mit einem Blue-Green-Deployment-Muster für Updates ohne Ausfallzeiten.
Erstellen einer QueryPrecalc
Abschnitt betitelt „Erstellen einer QueryPrecalc“- Navigieren Sie zum QueryPrecalc-Objekt in der Objektstruktur
- Erstellen Sie ein neues QueryPrecalc-Objekt
- Konfigurieren Sie:
- Name: Anzeigename
- View Name: Name der VIEW, die zwischen Blue/Green-Tabellen wechselt
- Table Name Blue: Name der Blue-Tabelle
- Table Name Green: Name der Green-Tabelle
- Stored Procedure Name: Stored Procedure zur Berechnung
- Cron Schedule: Cron-Ausdruck für automatische Updates (z.B. ‘0 2 * * *’ für täglich um 2 Uhr)
Blue-Green-Deployment
Abschnitt betitelt „Blue-Green-Deployment“Das System verwendet zwei Tabellen (Blue und Green):
- Eine VIEW zeigt auf die aktive Tabelle
- Bei Updates wird die inaktive Tabelle befüllt
- Die VIEW wird auf die neue Tabelle umgeschaltet
- Die alte Tabelle kann optional gelöscht werden
Verknüpfung Query mit QueryPrecalc
Abschnitt betitelt „Verknüpfung Query mit QueryPrecalc“Eine Query kann mit einer QueryPrecalc verknüpft werden:
- Setzen Sie das Feld “Query Precalc” in der Query
- Die SQL-Abfrage sollte auf die QueryPrecalc VIEW verweisen
- QueryPrecalc-Informationen werden in der Query-Übersicht angezeigt
Abfrage ausführen
Abschnitt betitelt „Abfrage ausführen“Parameter eingeben
Abschnitt betitelt „Parameter eingeben“- Öffnen Sie die Query-Übersicht
- Geben Sie die erforderlichen Parameter ein
- Klicken Sie auf “Abfrage laden”
- Die Ergebnisse werden im Grid angezeigt
Ergebnisse exportieren
Abschnitt betitelt „Ergebnisse exportieren“Zwei Export-Optionen stehen zur Verfügung:
- “Aktuelle Ansicht als Excel”: Exportiert die aktuell angezeigten Daten (mit Filtern/Pagination)
- “Alle Daten als Excel”: Exportiert alle Daten, die den aktuellen Filtern entsprechen
Die Excel-Datei wird automatisch formatiert:
- Zahlen werden korrekt formatiert
- Datumswerte werden im Format dd.mm.yyyy angezeigt
- Währungen werden mit 2 Dezimalstellen angezeigt
- Spalten werden automatisch angepasst
Vorberechnete Abfragen
Abschnitt betitelt „Vorberechnete Abfragen“Status anzeigen
Abschnitt betitelt „Status anzeigen“In der Query-Übersicht werden folgende Informationen angezeigt:
- Name: Name der QueryPrecalc
- Status: Aktueller Status (Erfolgreich, Wird aktualisiert, Fehler)
- Letzte Aktualisierung: Zeitpunkt der letzten erfolgreichen Aktualisierung
- Laufzeit: Dauer der letzten Berechnung in Sekunden
Manuelle Aktualisierung
Abschnitt betitelt „Manuelle Aktualisierung“- Klicken Sie auf “Vorberechnung neu laden” in der Query-Übersicht
- Die QueryPrecalc wird manuell aktualisiert
- Der Status wird während der Aktualisierung angezeigt
Automatische Aktualisierung
Abschnitt betitelt „Automatische Aktualisierung“QueryPrecalc kann automatisch aktualisiert werden:
- Konfigurieren Sie den “Cron Schedule” für regelmäßige Updates
- Das System führt die Berechnung automatisch durch
- Updates erfolgen ohne Ausfallzeiten durch Blue-Green-Deployment
Best Practices
Abschnitt betitelt „Best Practices“SQL-Abfragen schreiben
Abschnitt betitelt „SQL-Abfragen schreiben“- Verwenden Sie benannte Parameter (z.B.
@ParameterName) - Parameter werden automatisch in Positionsparameter umgewandelt
- Verwenden Sie CASE-Statements für Labels bei SingleSelect/MultiSelect
Parameter konfigurieren
Abschnitt betitelt „Parameter konfigurieren“- Verwenden Sie aussagekräftige Parameternamen
- Setzen Sie die Reihenfolge korrekt (OrderNr)
- Markieren Sie erforderliche Parameter als “Erforderlich”
- Für SingleSelect/MultiSelect: Stellen Sie sicher, dass Labels in SQL und Options übereinstimmen
QueryPrecalc einrichten
Abschnitt betitelt „QueryPrecalc einrichten“- Erstellen Sie Blue- und Green-Tabellen
- Erstellen Sie eine VIEW, die auf die aktive Tabelle zeigt
- Erstellen Sie eine Stored Procedure für die Datenberechnung
- Konfigurieren Sie den Cron-Schedule
- Verknüpfen Sie die Query mit der QueryPrecalc
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Parameter werden nicht korrekt konvertiert
Abschnitt betitelt „Parameter werden nicht korrekt konvertiert“- Für numerische SingleSelect-Optionen: Stellen Sie sicher, dass der erste Wert numerisch ist
- Das System erkennt automatisch, ob eine Konvertierung nötig ist
Labels werden nicht im Excel-Export angezeigt
Abschnitt betitelt „Labels werden nicht im Excel-Export angezeigt“- Stellen Sie sicher, dass die SQL-Funktion Labels mit CASE-Statements zurückgibt
- Die Labels müssen exakt mit den Options übereinstimmen
Daten werden automatisch geladen
Abschnitt betitelt „Daten werden automatisch geladen“- Die Daten werden nur geladen, wenn “Abfrage laden” geklickt wird
requestsEnabledist standardmäßig auffalsegesetzt
Grid-Anzeigeprobleme
Abschnitt betitelt „Grid-Anzeigeprobleme“- Das Grid verwendet automatische Spaltenbreiten
- Horizontales Scrollen ist aktiviert
- Header und Inhalt werden automatisch synchronisiert