-
-
Notifications
You must be signed in to change notification settings - Fork 18
Regulations
Regulierung sind ein Lösungsansatz um die Komplexität von Lohnsoftware durch Aufteilung zu reduzieren. Im Gegensatz zu vernetzten Architekturen (z.B. Micro Services), werden die Komponenten der Payroll Engine in einem Schichtenmodell geführt. Jede Schicht beinhaltet Modelle, Berechnungen und Auswertungen. Mit Konzepten der Objektvererbung lassen sich diese Informationen übersteuern und erweitern.

Die Web Application unterstützt das Editieren der Regulierung unter Berücksichtigung der Vererbungshierarchie.
Regulierungen können zwischen Mandanten geteilt werdem, was Ressourcen schont und das Deployment stark vereinfacht. Mit der Payroll Console lassen sich Regulierungen importieren, exportieren und testen.
Die Regulierung besteht aus folgenden Objekten:
| Object | Description | Eigenschaften |
|---|---|---|
Case |
Mutation eines Mitarbeiters 1) | Behälter für Eingabelder Verfügbarkeit der Mutation Kann mit anderen Fällen in Abhängigkeit stehen |
CaseField |
Datenfeld eines Mitarbeiters | Eindeutiger Feldname Daten- und Zeittypen Steuerung der Benutzeringaben |
CaseRelation |
Beziehung zwischen zwei Fällen | Bedingte Beziehung Bezihung zu Fällen in anderen Regulierungen |
Collector |
Datensammlung während dem Lohnlauf | Summieren und andere Operationen Gruppieren von Kollektoren Benutzerdefinierte Resultate |
WageType |
Lohnart im Lohnlauf | Lohnarten für Löhne, Abzüge und Beiträge Nummerierte Verarbeitungsreihenfolge Benutzerdefinierte Resultate |
Report |
Datenauswertung und Austausch | Dynamsiche Reportparameter Mehrpsrachige Report-Templates Rohddaten Reports |
Lookup |
Datentabellen von Fremddaten 2) | Werte nach Schlüssel Mehrsprachige Werte Werte für Zahlenbereiche |
Script |
Geteilte Funktionalität in C# | Zuordnung zu Funktionen Custom Actions |
1) Es bestehen vier Fallarten: Mitarbeiter, Unternehmen, National und Global.
2) Fremddaten sollten in isolierten Regulierungen geführt werden, um mittels Versionierung korrekte Zeitdaten zu gewährleisten.
Ein Regulierungsobjekt besitzt folgende Eigenschaften:
- Audit Trail der Modifikationen
- Erweiterbar mit benutzerdefinierten Attributen
- Besitzt eine Identifikation, welcher als Schlüssel zur Überlagerung dient
Mittels Cluster können Regulierungsobjekte nach freien Kriterien ausgewählt oder ausgeschlossen werden. Der Cluster bietet einen erweiterten Tagging-Mechanismus mit White- und Black-List Tags. Dies kann genutzt werden zur
- Gruppierung und Filtern von Regulierungsobjekten wie z.B. für Cases und Reports (siehe Web Applikation)
- Eingrenzung der verfügbaren Falldaten für den Lohnlauf
- Eingrenzung von Payroll Resultate
- Optimierung von Rückrechnungsläufen
Mit Actions wird die Dateneingabe und Überprüfung ohne Programmierkentnisse gesteuert. Ein Action ist wie bei Excel eine vordefinierte Funktion welche auch bedingt ausgeführt werden kann, analog zur Excel Funktion IIf(expression, true, false). Die Action hat Zugriff auf die Benuterzereingaben, vorangegangene Falldaten und Lookuptabellen.

Es sind auch benutzerdefinierte Actions als Bestandteil der Regulierung möglich.
Das Laufzeitverhalten der Payroll Engine wird durch Funktionen bestimmt. Jedes Regulierungsobjekt bietet entsprechende Funktionen an, zum Beispiel das Object Wage Type die Funktion Wage Type Value. Mit C# Code (Script Expression) wird die Funktion vervollständigt.
Payroll Engine Funktionen:

C# Scripts für die Case und Report Funktionen können auch im lokalen Debugger ausgeführt werden.
Eine Regulierung besteht aus JSON, C# und Report Dateien, welche als komprimierte Zipdateien verteitlbvar sind. Regulierungen mit geteiltem Scriptcode werden als NuGet-Pakete verteilt, inklusive der Versionierung und weiteren Abhängigkeiten.
Für die Entwicklung einer Regulierung bestehen verschiedene Hilfsmittel:
- Web App - Prototyping einer Lohnlösung mit zeitgerechter Bedieneroberfläche
- Payroll Console - Entwicklung einer Lohnlösung mittels JSON/C# Dateien, inkl. Versionsmanagement und Tests
- Visual Studio, VS Code - Entwicklung einer komplexen Lohnlösung in .NET Projekten, inkl. Versionsmanagement, Tests und Debug-Support
🤝 Thank you for supporting this project with a donation.
⚡ This is a pre-relase version of the initial development, please read the restrictions.
- Payroll Engine