Global Time Off Requests (GTOR) Validation Rules
Note: This business process An organized flow of activities or tasks that achieves a business goal. An automated business process minimises the amount of paperwork and manual tasks to complete that process by way of automatic actions, online forms, and automatically generated messages. is an extension model that is developed outside the normal release schedule to meet specific customer needs. To request one of these models, you must submit a Salesforce Service Request to UKG. After the model is delivered to your tenant, you can edit it to meet your needs.
This Business Process Extension provides you with more options to validate whether Time-off Requests Request subtypes that employees use to request time off for vacation, illness or recovery, appointments, personal time, or other absences. Time-off requests can be configured to support many different employment scenarios. are in accordance with local regulations; minimum and maximum taking limits that apply to the entire request; and restrictions on combining certain absences in one contiguous period.
Global Time Off Request (GTOR) Validation considers the following rules:
- Clubbing Rules: Restrictions on combining certain absences
- Some leave types cannot be combined; that is, they cannot be clubbed together. For example: Sick Leave cannot be taken contiguously with Casual Leave.
- A configurable parameter can disallow any absence request clubbed with a non-working day.
- Clubbing rules are configured to use either basic or advanced rules.
Basic clubbing rule:
- Validation is based only on paycode A category of time or money that employees earn, for example, Regular Hours, Bonus, or Sick. type, such as Sick or Casual Leave.
- Symbolic duration checks cannot be edited.
Advanced clubbing rule:
Validation is defined for each paycode and combination of symbolic duration.
For example, the following paycodes should not be clubbed together:
Casual Leave First Half Day
Sick Second Half Day
- Clubbing paycodes can be maintained at the location level.
- Minimum and maximum Taking Limits validation for the entire request
- Some absence requests have a minimum taking of more than 1 day, while other requests have a maximum taking. For example, Personal Leave cannot be taken for a contiguous period which is shorter than 3 days.
- These limits cannot be enforced for the contiguous period because the Accrual Policy Defines how and when balances for accrual codes are credited and debited. taking limits are only being validated for each day taken.
- This rule, however, can be relaxed with a configurable parameter that allows non-working days as an interruption, thereby allowing the request. By using the configurable parameter, non-working days which occur within the leave request range are considered as an interruption, and the request is allowed.
- Taking limits can be validated using:
- Employee's location
- Employee's accrual profile
- Employee's location and accrual profile
- Enhanced Duplicate Request Validation: Restrictions on duplicate time-off requests for the same day.
- First Half Day Vacation and Second Half Day Personal Leave is allowed.
-
Mandatory Paycode Comment Validation: Validates the existence of a comment before time-off request submission.
-
Some time-off requests are configured to require the addition of a comment.
-
This validation workflow prevents submission of a GTOR by checking whether the paycode requires a comment. It then checks the appropriateness of the comment selection. When no comment or an incorrect comment is attached to the paycode in the GTOR, the system displays an error message and prevents the GTOR submission.
-

A validation Business Process is available through Request Subtypes Classifications of schedule requests from employees., which includes all three rules: Taking Limits, Clubbing, and Duplicate Requests.
Clubbing Rules
Four symbolic amounts Instead of entering a specific amount for a pay code, a symbolic amount lets users enter a value such as full day, which translates to the number of hours in your shift. Other default symbolic amounts include half day, 1st half day, and 2nd half day. are used in the validation: Half Day, First Half Day, Second Half Day, and Full day.
Note: The symbolic amount Half Day is treated the same way as First Half Day.
Clubbing rules scenarios
The following clubbing scenarios represent what is allowed or not allowed.
Interaction with non-working days and public holidays:
- Clubbing rules apply when the absences are separated by either a non-working day or a public holiday.
- These days do not interrupt the contiguous period and clubbing is applied.
However, to allow flexibility in defining what counts as non-working days, you can relax the rule by using the Include Non Working Day column in the GTOR_Validation_v4_SimpleClubbingValidate decision table.
Note: This scenario requires that you add an absence paycode of "Off” in the schedule to identify weekends or days off.
-
Clubbing rules validation can be qualified for the employee's location.
Minimum and maximum contiguous days taking limits
This subprocess contains a decision table that controls the number of taking limits for each absence paycode.
- You are not required to specify both minimum and maximum limits. They can be left empty when no limit applies.
- Absence paycodes that are not found in the decision table are not limited by the process (Accrual Policy taking limits might still apply).
- Taking limits can be qualified using employee's location, accrual profile or both.
Duplicate Requests
This subprocess eliminates the limitation in the current duplicate request validation process.
Note: Half Day and First Half Day are treated the same in the validation process.
For example: A same day request for First Half Day Vacation and Second Half Day Personal Leave is allowed.
Mandatory Paycode Comment
This subprocess prevents submission of an absence request when a required comment is not provided.
When submitting an absence request paycode that must be accompanied by a comment, the validation process intercepts the request and warns the employee if the request has an invalid or missing paycode comment.
Until the employee adds the comment by using the review + add comment action, the submit button remains inactive. After editing the request by adding one of the designated comments for the paycode, the request is routed to the manager for approval.

- This Business Process is only supported from desktop, mobile, or tablet devices. It is not supported on data-collection devices, such as timeclocks.

The following prerequisites must be configured before using this template.
Configure day off and public holiday paycodes
Create the paycodes that your business considers non-working days, such as Day Off and Public Holiday. This is not a combined paycode.
Configure holiday credit rules
Create holiday credit rules to capture credited hours for public holiday paycodes. Assign to all employees.

Migrate the process model to the customer tenant
Migrate the GTOR_Validation_v4 process model to the customer tenant using Setup Data Manager (SDM Set-up Data Manager moves and manages configuration data across software and hardware environments.).
-
Log in to the appropriate tenant.
-
Go to Main Menu > Administration > Setup Data Manager.
-
Select the Source tenant where the Process Model resides, and select the template to copy. It is a .zip file. A message appears in the Source column: Source: Import from <filename>.zip.
-
Click Tap Review and Publish. The Publish Summary panel appears.
-
Review the Publish Summary panel. It lists the items that were extracted from the migration file. If you approve, click tap Publish with Comment or just Publish.
-
Click Tap Go to Publish History at the bottom of the panel to view the status of the data transfer. The Publish History page contains a table that lists the items you have published. If there were errors during the transfer, the button under the Errors column for that row is black.
-
To view details, click tap the appropriate row and click tap View Selected.
-
On the History for publish run page, click tap Show all to view the setup data that you published, and the errors that occurred, if any, listed by item type and name.
Configure decision tables in the process model
Note: The process for configuring and deploying Business Process Extensions is the same as all Business Process models.
Decision tables are configurable based on user requirements. These tables are dynamic decision tables that can be modified without redeployment of the process model.
How to edit or view the decision tables
-
From the Main Menu, go to Administration > Application Setup > Business Processes Setup > Process Models.
-
Select GTOR_Validation and click tap Edit.
. -
Select the Decision Tables option and search for the decision table.
-
Select the decision table, then click tap View or Edit.
-
Edit parameters as required.
-
Click Tap Save and close.
GTOR_Validation_v4_Parameters — Controls the active validation processes in the workflow
Parameter name | Description | Default value |
---|---|---|
ValidationClubbing |
Enables clubbing rule validation. Yes — enables the validation. No — does not enable the validation. |
Yes |
ValidationTakings |
Enables takings validation. Yes — enables the validation. No — does not enable the validation. |
Yes |
ValidationOverlapping |
Enables overlapping validation. Yes — enables the validation. No — does not enable the validation. |
Yes |
SimpleClubbing |
Enables simple clubbing. Yes — enables the functionality. No — does not enable the functionality. |
Yes |
MandatoryPayCodeComment |
Enables mandatory paycode comment. Yes — enables the functionality. No — does not enable the functionality. |
Yes |
-
If ValidationClubbing=Yes and SimpleClubbing=Yes, then the Simple Clubbing validation rule is validated by the template.
-
If ValidationClubbing=Yes and SimpleClubbing=No, then the Advanced Clubbing validation rule is validated by the template.
GTOR_Validation_v4_InternalParameters — Controls internal GTOR validation parameters.
Parameter name | Description | Default value |
---|---|---|
DurationFullDay | ||
DurationHalfDay |
Half day symbolic value. |
|
DurationFirstHalfDay |
First half day symbolic value. |
|
DurationSecondHalfDay |
Second half day symbolic value. |
|
Admin |
Internal user; do not change. |
SERVICES-LEVEL3 |
ActivityVariableRequestItem | Internal value; do not change. | RequestItem |
GTOR_Validation_v4_TakingLimits_Configuration — Contains the minimum and maximum number of takings allowed for each paycode type.
Validation type | Description |
---|---|
Primary Job | Input parameter for primary job. |
Accrual Profile Name | Input parameter for accrual profile. |
Taking Pay Code Name | Input parameter for paycode. |
Minimum Taking | Input parameter for minimum value. |
Maximum Taking | Input parameter for maximum value. |
Taking Output Status | Output parameter. |
Include Non-Working Day |
Output parameter to include non-working days. Yes — include the non-working days. No — do not include the non-working days. When parameter =Yes, non-working days are counted as part of an absence and validated. |
- The taking validation template uses the accrual profile from People Information or the employment term. If an employment term is assigned to an employee and that employment term has an accrual profile, the validation uses the accrual profile found in the employment term.
- If an accrual profile is not found in people information or an assigned employment term, the template uses a non-empty value.
-
The taking validation template uses the accrual profile with the primary job location of the employee to validate rules. For single day leave requests, the accrual profile applicable on the leave day is used. For two or more days of leave requests, the accrual profile applicable on the first day of leave is used.
-
For example: An employee has a Part-time accrual profile from the beginning of time until 30 Nov 2021 and a Full-time accrual profile from 1 Dec 2021 through forever.
-
If the employee requests leave for 25 November 2021, the template uses the Part-time accrual profile for validation.
-
If the employee requests leave for 25 November 2021 — 2 December 2021, the template uses the Part-time accrual profile for validation.
-
If the employee requests leave for 1 December — 2 December 2021, the template uses the Full-time accrual profile for validation.
-
-
GTOR_Validation_v4_NonWorkingPaycodes — Contains the non-working paycodes required for taking and clubbing validations.
Validation name | Description |
---|---|
Serial number | Sequential numeric value which starts from 1. Serial number must always be in sequential incremental order without gaps. |
Non Working Pay Code Name | Non-working and public holiday paycode names which are configured in UKG Pro Workforce Management™. |
GTOR_Validation_v4_ComplexClubbingValidate — Contains the paycodes that cannot be clubbed together when choosing Advanced Clubbing validation.
Column name | Description |
---|---|
Primary Job | Primary job input parameters. |
Comparison Pay Code |
Comparison paycode input parameters. |
Comparison Duration |
Comparison paycode duration input parameters. Values include: FULL_DAY / HALF_DAY / FIRST_HALF_DAY / SECOND_HALF_DAY |
User Applied Pay Code | Applied paycode input parameters. |
User Applied Duration |
Applied paycode duration input parameters. Values include: FULL_DAY / HALF_DAY / FIRST_HALF_DAY / SECOND_HALF_DAY |
Clubbing Output |
Output parameter. Values include: Valid / Not Valid |
GTOR_Validation_v4_SimpleClubbingValidate — Contains the paycodes that can be clubbed together.
Column name | Description |
---|---|
Primary Job | Primary job input parameters. |
Simple Comparison Pay Code |
Comparison paycode input parameters. |
Simple User Applied Pay Code | Applied paycode input parameters. |
Clubbing Output Status |
Output parameter. Values include: Valid / Not Valid |
As a best practice, add all "Not Valid" paycode combinations to the Simple Clubbing Validate decision table.
Shared_MandatoryPayCodeComment — Contains a list of paycodes that require a comment and identifies the associated acceptable comments.
Column name | Description |
---|---|
Pay Code |
Identifies paycodes that require a mandatory comment. Each paycode must be configured in UKG Pro Workforce Management™ |
Comments |
A semicolon-separated list of comments that identifies the acceptable comments for the associated paycode. Each comment must be configured in UKG Pro Workforce Management™ |
Key Considerations Points
- All parameter values entered in decision tables are case-sensitive and must match the configured values in UKG Pro Workforce Management™.
- Always keep an empty "Default" line as the last entry in the decision tables. Without this last line, the decision tables do not work.
- As a best practice, insert new lines of data in decision tables above the empty "Default" line.
- Blank schedules are treated as working.
- Non-working days are treated as Full Day.
- The validation template considers non-working paycodes located in:
- Schedule Planner
- Timecard
- Holiday credit rules
- A wildcard entered in the Primary Job column of the decision tables is not supported; however, the behavior can be achieved by using the Is Not Empty and Starts With functions. For example:
- To configure a value for any match, use the Is Not Empty function.
- To configure a value for any match that starts with ABC, use the Starts With function.
- The primary job assignment in people information is treated as the location.
- The validation template considers visible and hidden paycodes utilized during the taking, clubbing and non-working day.
Deploy Process Model
- Deploy only the main process, do not deploy the subprocesses.
- Process models must be redeployed every time any changes are made to an existing model.
To deploy the process model:
- From the Main Menu, go to Application Setup > Business Process Setup > Process Models.
- Select the process and click tap Deploy
. - On the Business Process page, configure the required parameters and deployment dates.
- Select Validation from the Template Categories.
- Click Tap Save and Return.
For detailed information, see the online help topic Deploy Business Process Models.

Configure Request Subtype Transition
Define request transitions to suspend a request between state transitions, such as pending and approved, while a business process completes a task.
- Go to the Main Menu > Administration > Application Setup > Employee Self Service > Request Subtype Transitions Suspends a request between state transitions, such as pending and approved, while a business process completes a task. Example: Pause a process until a manager completes and submits a form..
- Click Tap New and enter a Name.
- (Optional) Enter a Description.
- Create Validation Action From State and To State combinations for the employee requests and manager approvals. Example From State and To State combinations include:
- Draft > Approved
- Draft > Submitted
- Submitted > Approved
- Pending > Approved
- Submitted > Pending
- Select the business process to execute before transitioning (Pre-Processing).
- Click Tap Save.
For detailed information, see the online help topic Request Subtype Transitions.
Note: Because edits can affect pending requests, create new request subtype transitions rather than editing current transitions.
Attach the Request Subtype Transition to the Request Subtype
Define request transitions to suspend a request between state transitions, such as pending and approved, while a business process completes a task.
- Go to the Main Menu > Administration > Application Setup > Employee Self Service > Request Subtypes.
- Open the appropriate Request Subtype.
- Scroll to the Request Subtype Transition and select your newly created Request subtype transition, for example, GTOR validation.
For detailed information, see the online help topic Request Subtypes.
Customize error translation
Translate or customize the errors in the user interface using a language or terminology that is familiar to your users.
- Identify the content to modify
- Language — Select the language
- Country — Select the country
- Domain — Select one or more domains (such as Scheduling or Timekeeping) to export. Depending on the domain or domains selected, the corresponding properties are listed in the Group field.
- Group — Select the applicable property files from the list. If you leave the top field blank, all property fields are selected.
- Export the property files.
- Edit the Excel file.
- Import the Excel file.
- Verify the changes and save the Excel file.
For detailed information, see the Translation — User Interface topic.
Sr. No. | Error Code | Error Message | Scenario |
---|---|---|---|
1 | WFP-01155.MESSAGE |
Your request conflicts with a previously approved request. Please check the request information and resubmit. |
Overlapping |
2 | WFP-01125.MESSAGE |
Your request conflicts with a minimum or maximum taking rule. Please check the request information and resubmit. |
Takings |
3 | WFP-01132.MESSAGE |
Your request conflicts with an absence clubbing rule. Please check the request information and resubmit. |
Clubbing |
4 | WFP-01135.MESSAGE |
Request processing failed. Please contact System Administrator. |
Custom Message |
5 | WFP-01178.MESSAGE | Invalid or missing Pay Code Comment . | Mandatory Pay Code Comment |

Use the following APIs for this business process.
API Name | Type | Resource Path | Description |
---|---|---|---|
RequestAPI | GET | Request API | Retrieve employee time-off requests. |
Retrieve Timecard Totals | POST | /v1/timekeeping/timecard_metrics Measures and tracks workforce performance by comparing planned with actual workload or coverage, or by showing variances at any organizational level./multi_read | Retrieve the timecard totals. |
Retrieve Employee Time Off Requests | POST | /v1/scheduling/employee_timeoff/ multi_read | Retrieve employee time-off requests. |
Retrieve employee info | POST | /v1/commons/persons/extensions/multi_read | Retrieve person details. |
Retrieve employment term | GET | /v2/timekeeping/setup/employment_terms/${ID} | Retrieve the employment term. |
Retrieve Paycodes | POST | /v1/timekeeping/setup/pay_codes/multi_read | Retrieve the paycode based on ID. |
Retrieve Comment | GET | /v1/commons/comments?id=1 | Retrieve the comment based on ID. |