Timecard Approval Validation

The Timecard Approval Validation attestation process offers granular control over timecard approval by a manager.

Note: This business process 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.

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

Note: The process for configuring and deploying this and other Business Process Extensions is the same as all Business Process models .
  1. Migrate the process model to the tenant Migrate the Timecard Approval Validation process model to the customer tenant using Setup Data Manager (SDM).
    1. Log in to the appropriate tenant.

    2. Go to Main Menu > Administration > Setup Data Manager.

    3. 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.

    4. Click Tap Review and Publish. The Publish Summary panel appears.

    5. 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.

    6. 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.

    7. To view details, click tap the appropriate row and click tap View Selected.

    8. 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.

  2. 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.
    1. Go to Main Menu > Administration > Application Setup > Business Process setup > Process Models.

    2. Select the TimecardApprovalValidation_v1 process and click tap Edit. The process model enters edit mode.

    3. Select the Decision Tables tab.

    4. Click Tap Everyone's, and then select the decision table to edit.

    5. Click Tap Decision Table Editor to add or update the rows in the table.

    6. Click Tap Save and close.

    7. 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 group

        Transfer 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 group

        Transfer 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.

  3. 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 .

    1. Go to Main Menu > Administration > Application Setup > Business Process setup > Process Models.

    2. Select the TimecardApprovalValidation_v1 model and click tap Deploy
    3. 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.
    4. Click Tap Save and then Return.

APIs

API Details

API Details

API name

Type

Resource path

Description

Retrieve User Preferences for Current User

GET

/v1/commons/user_preferences

Retrieve the manager’s locale.

Retrieve Timecard as Manager

GET

/v1/timekeeping/timecard

Retrieve employee’s timecard.

Retrieve Person by Extension

GET

/v1/commons/persons/{extensionType}

Retrieve employee’s primary job and primary labor categories.

Retrieve All Labor Categories

GET

/v2/commons/labor_categories

Retrieve all labor categories.

Retrieve Manager Role Assignments

POST

/v1/commons/persons/manager_role_assignments/multi_read

Retrieve manager’s manager role assignment.

Retrieve Employee Group by ID

GET

/v1/commons/employee_groups/{id}

Retrieve employee group details.

Retrieve Labor Category Profile by ID

GET

/v1/commons/labor_category_profiles/{id}

Retrieve labor categories entry from labor category profile assigned in employee group.

Retrieve Location Set by ID

GET

/v1/commons/location_sets/ {id}

Retrieve location and jobs from org set assigned in employee group.

Approve Timecard as Manager

POST

/v1/timekeeping/timecard_approvals

Approve the employee’s timecard as manager.