Timecard Approval Validation
The Timecard Approval Validation attestation process offers granular control over timecard approval by a manager.
Manager access to an employee’s timecard depends on the employee group assignment. When the employee works for a manager at least one day during the selected time period, the manager has access to all days in the time period.
When you enable the Timecard Approval Validation function and the employee works on different contracts or has multiple primary locations and jobs that are not part of the manager’s employee group, the manager is prevented from approving the timecard on days when the employee reports to some other manager. This function is initiated by linking the attestation process to the manager timecard approve button.
Considerations and limitation
Ensure that the timecard automatically refreshes with updated information by selecting the confirmation button on the timecard approval form.
User experience
An organization enables the Timecard Approval Validation process and configures the process to display the timecard partial approval form.
A contract employee works on multiple short-term contracts for the organization.
For each new contract, updates are made to the employee's primary job in their People record that reflect the "home" location of each contract.
The employee works at two different locations during a particular week. Monday through Wednesday, the employee works at location A, and Friday through Sunday, at location B.
The manager at location A reviews the timecard for the entire week and then clicks the approve button. The workflow validation detects that validation conditions are not met and displays a workflow slider which informs the manager that the timecard is partially approved. Days on which the employee reports to another manager are listed on the form. The manager clicks the confirmation button to acknowledge the partial approval.
Before you start
Before you configure this business process, you must do the following:
-
Attestation condition: Create an attestation condition type of Always. See the Attestation Conditions topic.
-
Attestation buttons: Create an attestation button. Set the button type as Timecard Action and the button subtype as Approve. See the Attestation Buttons topic.
-
Attestation assignments: After you have deployed the Timecard Approval Validation model, create an attestation assignment. Select the appropriate attestation condition, attestation button, and business process model under Punch Button Workflow.
Add the assignment to the manager's attestation profile.
Note: You must add the Attestation Process to the Attestation Profile that is assigned to managers who use the Timecard Approval Validation business process.
Configure the Timecard Approval Validation business process model
- Migrate the process model to the tenant Migrate the Timecard Approval Validation process model to the customer tenant using Setup Data Manager (SDM).
-
Log in to the appropriate tenant.
-
Go to
. -
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 the Timecard Approval Validation decision tables
Note: Decision tables are configurable based on user requirements and can be changed accordingly. These tables are dynamic and can be updated at any time without redeployment of the process model.
-
Go to
. -
Select the TimecardApprovalValidation_v1 process and click tap Edit. The process model enters edit mode.
-
Select the Decision Tables tab.
-
Click Tap Everyone's, and then select the decision table to edit.
-
Click Tap Decision Table Editor to add or update the rows in the table.
-
Click Tap Save and close.
- Edit the following decision tables: Caution:
-
Values entered in the decision tables are case-sensitive, and must match configured values in the application.
-
Do not remove variables, variable names, or variable types from any decision table.
- TimecardApprovalValidation_v1_InternalParameters— Controls internal GTOR document attachment with DMP parameters.
Timecard Approval Validation — Internal Parameters decision table structure
Timecard Approval Validation — Internal Parameters decision table structure
Parameter name
Description
Default value
Admin
Admin user for API calls.
SERVICES-LEVEL3
ManagerPersonId
Name of the manager who approves the timecard.
originator
TimecardStartDate
Timecard start date.
tcStartDate
TimecardEndDate
Timecard end date.
tcEndDate
TimecardEditJson
Employee timecard JSON.
Timecard_edits
- TimecardApprovalValidation_v1_Parameter— Used to dynamically retrieve parameters.
Timecard Approval Validation — Parameter decision table structure
Timecard Approval Validation — Parameter decision table structure
Parameter name
Description
Default value
ShowPartialSummaryApprovalForm
Determines whether the approval form displays rejected dates.
Yes
— Display the form.No
— Do not display the form.Yes
EnableLaborCategoryValidation
Determines whether to enable labor category validation.
Yes
— Enable labor category validation.No
— Do not enable labor category validation.No
ValidateTransferredIn
Determines which job to reference during timecard approval validation when a transfer occurs on the In punch.
Primary Job
— Allows approval when the employee's primary job belongs to the manager's employee groupTransfer Job
— Allows approval when the employee's transfer job belongs to the manager's employee group.Note: Approval is NOT allowed when neither the employee's primary nor transfer jobs are part of the manager's employee group.Primary Job
ValidateTransferredOut
Determines which job to reference during timecard approval validation when a transfer occurs on the Out punch.
Primary Job
— Allows approval when the employee's primary job belongs to the manager's employee groupTransfer Job
— Allows approval when the employee's transfer job belongs to the manager's employee group.Note: Approval is NOT allowed when neither the employee's primary nor transfer jobs are part of the manager's employee group.Primary Job
DateListBulletSymbol
Identifies the symbol that precedes the date when a list of dates displays.
For example, if the DateListBulletSymbol
*
, a date list displays as:* Thurs 2/13
* Fri 2/14
Empty (blank)
- TimecardApprovalValidation_v1_Locale— Allows translation of business process messages and labels on the task form into different languages.
Timecard Approval Validation — Locale decision table structure
Timecard Approval Validation — Locale decision table structure
Parameter name
Description
Key
Key for which localization is defined.
LocalePolicy
Locale Policy.
You can use an asterisk (
*
) as a wildcard, but put the less-restrictive locale policy names at the bottom of the table because the integration scans cross-reference tables from the top.Message
Form label or message shown as the result of a processing error.
Note:- Localization of business process workflows remains optional, but is supported.
- You can translate some or all messages by adding lines to the table in their preferred translation for specific locales. Decision tables are scanned from top to bottom; therefore, place messages for the most commonly used Locale Policy at the top of the decision table and less-restrictive locale policies at the bottom.
- Text within tags ("<>") must not be changed.
- The decision table holds all messages represented with standard English labels; these apply to all locales when the Locale Policy is set to !=empty.
- Names of the parameters in the decision table column Parameter Name must be used as is. If any parameter value needs to be localized for a different Locale Policy, copy the Parameter Name with the !=empty Locale Policy, add a new row to the decision table with the appropriate Locale Policy, and then add the localized value in the Message column.
- Decision tables support operators like "Contains," "Starts with," "Ends with," and "Is Not Empty." You can achieve your preferred results by following these examples:
- To match any non-empty or any string (like *), use the "Is Not Empty" operator.
- To match a string starting with "ABC" (like "ABC*"), use the "Starts with" operator and set the value to "ABC".
- To match a string containing "English" as substring, use the "Contains" operator with the value "English".
- The last row in the decision table must remain empty ("!=empty".)
Timecard Approval Validation — Locale sample content
Timecard Approval Validation — Locale sample content
Key
LocalePolicy
Message
Error_API
!=empty
#APIError#
Caution: The custom tag is case-sensitive and must not be modified.Error_EmptyValidDates
!=empty
Timecard not approved.\n\n You do not have permission to approve the timecard because the employee did not work under your supervision for the selected date range.
Error_InvalidValidateLaborCategory
!=empty
Invalid value provided for parameter EnableLaborCategoryValidation.
Error_InvalidValidateTransferredIn
!=empty
Invalid value provided for parameter ValidateTransferredIn.
Error_InvalidValidateTransferredOut
!=empty
Invalid value provided for parameter ValidateTransferredOut.
Error_ReApproval
!=empty
The timecard has already been approved for the following date range:\n
Error_Script
!=empty
Script failure in #error_component# Script Task in Line Number #error_line#. Error Message: #error_message#
Caution: Custom tags are case-sensitive and must not be modified.Label_Close
!=empty
Close
Label_PartialApprovedHeaders
!=empty
You do not have permission to approve the following days:\n
Label_TimecardApproval
!=empty
Timecard Approval
Label_TimecardApprovedPartially
!=empty
Timecard partially approved.
Message_GenericErrorString
!=empty
Generic Runtime Error
Message_SysAdminErrorString
!=empty
Please contact the system administrator.
-
-
- Deploy the updated Timecard Approval Validation business process model
Process models must be redeployed every time changes are made to an existing model. Re-deployment is not required for decision table changes.
Follow these steps to deploy the process model. For detailed information, see the online help topic Deploy Business Process Models .
-
Go to
. - Select the TimecardApprovalValidation_v1 model and click tap Deploy
- On the Business Process page, configure the required parameters and deployment dates.
- (Optional) In Description, enter
Timecard Approval Validation
. - In Display Name, enter
TimecardApprovalValidation_v1
. - In Start Effective, select the effective start date.
- In End Effective, select Forever to make the Business Process available indefinitely.
- In Status, select Active.
- In Action List, select Hide.
- In Tile List, select Hide.
- In GoTo List, select Hide.
- From Template Categories, select Attestation.
- (Optional) In Description, enter
- Click Tap Save and then Return.
-
APIs
API name |
Type |
Resource path |
Description |
---|---|---|---|
GET |
/v1/commons/user_preferences |
Retrieve the manager’s locale. | |
GET |
/v1/timekeeping/timecard |
Retrieve employee’s timecard. | |
GET |
/v1/commons/persons/{extensionType} |
Retrieve employee’s primary job and primary labor categories. | |
GET |
/v2/commons/labor_categories |
Retrieve all labor categories. | |
POST |
/v1/commons/persons/manager_role_assignments/multi_read |
Retrieve manager’s manager role assignment. | |
GET |
/v1/commons/employee_groups/{id} |
Retrieve employee group details. | |
GET |
/v1/commons/labor_category_profiles/{id} |
Retrieve labor categories entry from labor category profile assigned in employee group. | |
GET |
/v1/commons/location_sets/ {id} |
Retrieve location and jobs from org set assigned in employee group. | |
POST |
/v1/timekeeping/timecard_approvals |
Approve the employee’s timecard as manager. |