--- alias: user-guide-timers description: "Timers are scheduled tasks that automatically trigger business rules at defined intervals, managing execution limits, error handling, and lifecycle management" --- # Timers :lock: Administration.**Timer** A **Timer** is an object in the Critical Manufacturing MES system that will trigger the execution of a **Rule** after a certain predefined amount of time has elapsed. A **Timer** is identified by a unique name and is defined by a specific recurrence and contains two **Rules**: * A **Rule** that will be executed when the recurrence time is reached. * An error **Rule** that will be run if the original **Rule** fails. Additional information can be viewed in each **Timer** page, including: * Start Date * Number of times the **Timer** has been executed * Expire Date * State * Recurrence information * Type * Frequency ## Browsing existing Timers The **Timers** page in the **Administration** menu lists all the available **Timers**. If you select a **Timer**, its **Details** page is open: ![Screenshot showing a list of existing timers.](images/timer_details.png) ## System Timers | Table | Description | Scope | |--|-----|--| | AutomaticClockOutCheckOut | This time will be run to automatically checkout and clockout employees. | General | | ClearNotifications | This timer will run automatic clear notifications. | General | | PurgeAttachmentsTemporaryFileShareTimer | This timer will be run to periodically purge the outdated files from the attachments temporary folder. | General | | RemindTasks | This timer will run remind tasks. | General | | RetryIntegrationEntry | This timer will be run to send Integration Entries to the processing queue again. | Integration Entry | | SapConnectionMonitor | This timer will be run to verify SAP connection status. | Integration Entry | | SynchronizeEmployeeQualificationsAndCertifications | This timer will run to synchronize qualifications and certifications. | General | | SynchronizePlanTimeFrames | This timer will run automatic plan synchronization. | General | | TemporaryFolderMonitorTimer | This timer will be run to periodically purge the temporary folder. | Geneal | | TerminateAutomationJobsInErrorTimer | This timer will be run to periodically terminate AutomationJobs that are left in error state for more than the configured amount of time. | General | ## Creating a Timer :lock: CmfTimer.**Create** To create a new **Timer**, select **Create** on the top ribbon of the **Timers** page and follow the information below. ### Step 1 - General data 1. Provide a Name for the **Timer**. 2. Optionally, provide a Description for the **Timer**. 3. Select whether the **Timer** is Enabled (default). 4. Select a Scope for the **Timer**. You can select from: * General * Integration Entry * Maintenance Management * Order Management * Planning * Time Constraints 5. Select a Start Date after which the **Timer** will be active. 6. Select the **Rule** that will run after the recurrence period is elapsed. 7. Select the number of times the **Timer** will be able to run. 8. Select the mode the **Timer** will follow upon terminating the execution of the **Rule**. Available options are: * Always - **Timer** execution is terminated after **Execution Times** is reached, regardless of the outcome of the **Rule**. * None - **Timer** will keep running even after the completion of the **Rule**. * On Success - **Timer** execution is terminated after **Execution Times** is reached only if the **Rule** is executed successfully. 9. Optionally, select a date for the **Timer** to expire and no longer be enabled. 10. Select the type of Recurrence to apply to the **Timer**, and set other mandatory value(s) as follows: * Daily - must provide Recurrence Frequency. * Defined Seconds - must provide Recurrence Frequency and Recurrence Seconds. * Monthly - must provide Recurrence Frequency. * One Time * Rule - must provide Rule, used to calculate the recurrence of the timer, matching use case pre-conditions (non-template Rule) and, may specify a well formatted JSON string to be passed to the Recurrence Rule in the Additional Information field, used to pass information for the DEE of the Rule, that may be required or needed, which will allow you to have a customizable recurrence. !!! note This rule must receive Additional Data that is provided by the RecurrenceRuleData input. This Rule must return a date that will be the next execution date of the Timer. ![Screenshot showing a timer rule configuration with error handling settings.](images/timer_rule.png) * Weekly - must provide Recurrence Frequency. * Yearly - must provide Recurrence Frequency. 11. Optionally, define a **Rule** to be executed in case of an error. If desired, a distribution list can be configured to receive an email notification of the error. 12. Select **Create** to complete the operation. !!! info If Execution Times is set to `0`, the Timer will run indefinitely (provided Recurrence is not set to One Time). ![Screenshot showing a UI with a button labeled "Create" selected to complete an operation.](images/create_timer.png) ## Editing a Timer :lock: CmfTimer.**Edit** A **Timer** can be edited from within the main details page by selecting the **Edit** button on the top ribbon. !!! warning Editing a Timer will only change future executions and it will not delete the historical data. ![Screenshot showing an edit timer interface.](images/edit_timer.png) ## Terminating a Timer :lock: CmfTimer.**Terminate** It is possible to terminate an existing **Timer** by selecting it from the list and then selecting the **Terminate** button. ## Unterminating a Timer :lock: CmfTimer.**Unterminate** It is possible to unterminate an existing **Timer** by selecting it from the list and then selecting the **Unterminate** button.