-
-
Notifications
You must be signed in to change notification settings - Fork 19
PayrollModel
The payroll model contains objects for the following functional areas:
- Basic — Base and infrastructure objects
- Case Management — Objects for capturing business data
- Payrun — Objects for processing payroll data
- Report — Objects for transforming output data
The following overview shows the static topology and the runtime behavior control via scripts and actions:
The multi-tenant payroll service provides the following objects to define a tenant with its organizations, employees and users:
| Object | Description |
|---|---|
Tenant |
Contains all tenant data. All tenant objects reference this object. |
Calendar |
The payroll calendars of the tenant. |
Division |
Subdivides the company into organizational units. Each tenant has at least one division. |
Employee |
Employees assigned to one or more divisions. |
User |
System users. |
Task |
User tasks. |
Log |
Tenant-specific log entries. |
With the exception of shared regulations, all domain objects described below are assigned to the tenant.
The Payroll object combines multiple regulations into a virtual payroll model using a layered approach. The following objects are involved:
| Object | Description |
|---|---|
Payroll |
Groups multiple regulation layers into a single payroll and is assigned to a division. |
Payroll Layer |
Defines the priority and processing order of the regulations. |
The payroll provides a consolidated view across all regulation layers.
The evaluation order of regulations is determined by the level (primary sort) and priority (secondary sort) in each Payroll Layer. The number of layers is unlimited.
Objects from lower payroll layers can be overridden using the override key. The values of all layers are dynamically merged into a single composed object, including:
- Localizations
- Attributes
- Clusters
- Case slots, lookups and actions
- Text fields
Clusters group regulation objects by arbitrary criteria. This can be used to:
- Filter API queries, e.g. to group cases
- Optimize the payrun by reducing case data scope
- Restrict payroll results
Each cluster object can have multiple cluster names (analogous to tags). Querying uses a Cluster Set containing the clusters to include (whitelist) or exclude (blacklist). Combining whitelist and blacklist clusters further narrows the selected objects.
The following Cluster Sets are defined in the Payroll object and can be used in the payrun:
| Cluster Set | Description |
|---|---|
Case Cluster Set |
Available input cases |
Case Field Cluster Set |
Available case data in the payrun |
Collector Cluster Set |
Available collectors in the payrun |
Collector Retro Cluster Set |
Available collectors in the retroactive payrun |
Wage Type Cluster Set |
Available wage types in the payrun |
Wage Type Retro Cluster Set |
Available wage types in the retroactive payrun |
Wage Type Period Cluster Set |
Generate period results from case data |
Case Value Cluster Set |
Available case data for additional results in the payrun |
The Scripting API controls the runtime behavior for specific payroll objects (see Automation). Scripts are evaluated according to the processing order defined in the Payroll Layer.
When a scripting function returns an undefined value (null), processing is delegated to the underlying regulation. Object attributes, however, are evaluated in reverse — allowing values to be overridden by a higher-level regulation.
- Regulations
- Regulation Design guidelines
- Case Model design guidelines
- Payrun Model design guidelines
🤝 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