Skip to content

Regulations

Jani Giannoudis edited this page Aug 29, 2023 · 18 revisions

Payroll Regulations

Regulation reduces the complexity of payroll software by splitting it up. Unlike networked architectures (e.g. microservices), the components of Payroll Engine are stacked in a layered model. Each layer contains models, calculations and evaluations. Object inheritance concepts allow this information to be overridden and extended.

Payroll Regulations

Regulations can be shared between tenants, which saves resources and greatly simplifies deployment. The Payroll Console can be used to import, export and test regulations. The Web Application supports editing of regulations taking into account the inheritance hierarchy.

Regulation Objects

The regulation consists of the following objects.

Regulation Objects

Object Description Features
Case Wage-relevant event of an employee 1) - Case availability
- Container for input fields
CaseField Data field of a case - Unique field name
- Data- and time type
- Control of user input
CaseRelation Relationship between two cases - Conditional relationship
- Relationship to cases in other regulations
Collector Aggregation of payrun results - Aggregation type (default: summary)
- Group collectors
- Custom results
WageType Wage type in the payrun - Wage types for wages, deductions and contributions
- Numbered processing sequence
- Custom results
Report Data evaluation and exchange - Dynamic report parameters
- Multilingual report templates
- Raw data reports
Lookup Data tables from external data 2) - Values by key
- Multilingual values
- Values for number ranges
Script Shared functionality in C# - Assignment to Functions
- Custom Actions

1) There are four case types: Employee, Company, National and Global.
2) External data should be kept in isolated regulations to ensure correct time data by means of versioning.

A regulation object has the following properties

  • Audit trail of changes
  • Object can be deactivated and is no longer considered
  • Extensible by user-defined attributes
  • Unique key for override

Clusters

A cluster is used to select or exclude regulation objects according to certain criteria. This is done using an advanced tagging mechanism with whitelist and blacklist tags. This can be used to

  • group and filter settlement objects, e.g. for cases and reports (see web application)
  • narrow down the available case data in the payroll run
  • optimize the results of retroactive accounting

Actions

Actions can be used to control data entry and verification without programming knowledge. As in Excel, an action is a predefined function that can also be executed conditionally, analogous to the Excel function IIf(). The action provides access to user input, previous case data, and lookup tables.

Case Actions.

Custom Actions are also possible as part of the Regulation.

Functions

The runtime behavior of the Payroll Engine is determined by functions. Each rule object provides corresponding functions, such as the Wage Type Value function from the Wage Type object. The function is described by C# code (script expression).

functions

C# scripts for the Case and Report functions can also be executed in the local debugger.

Provide Regulations

Regulations can be offered on platforms such as GitHub with the desired license. There are various options for commercialization, such as a private repository that is unlocked for a fee.

Regulation Deployment

A regulation consists of JSON, C# and report files that can be distributed as compressed zip files. Regulations with extended functions are distributed as NuGet packages. These contain the versioning of the package as well as the dependencies to other regulations.

Regulation Development

Various tools exist for the development of a regulation

  • Web App - Prototyping of a payroll solution with modern user interface
  • Payroll Console - Development of a payroll solution using JSON/C# files, incl. version management and tests
  • Visual Studio, VS Code - Development of a complex payroll solution in .NET projects, incl. version management, tests and debug support