Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This guide explains how to create an auto-deactivating-user task in OpenMRS. The task involves setting the "number of days to retire users" via the user interface and then running the auto-deactivation task.

Setting the Number of Days to Retire Users

  1. Log in to OpenMRS.

  2. Set the global property number_of_days_to_auto_retire_users:

    • Find global property GP_NUMBER_OF_DAYS_FOR_AUTO_RETIRING_USER.

    • Enter the desired number of days of inactivity after which a user should be retired.

    • Save the changes.

Running the Auto-Deactivating User Task

The auto-deactivating user task is implemented as a scheduled task in OpenMRS. This task will automatically retire users who have been inactive for the specified number of days.

Implementation

The task is defined in the AutoRetireUsersTask class.

Steps to Schedule the Task:

  1. Fill in the details for the task:

    • Name: Auto Retire Users

    • Description: e.g Retires all active users that are inactive for XX number of days specified by the value of the global property 'users.numberOfDaysToRetire'.

    • Class: org.openmrs.scheduler.tasks.AutoRetireUsersTask

    • Start Time: Set the desired start time.

    • Repeat Interval: Set to 86400 (which represents 24 hours) to run daily.

    • Start on Startup: Set to true.

    • Started: Set to true to start the task immediately.

  2. Save the Task:

    1. Save the task configuration.

    2. The task will now be scheduled to run at the specified interval, automatically retiring inactive users based on the global property setting.

Example Database Changeset

<changeSet author="name (generated)" id="202405201900-1">
    <insert tableName="scheduler_task_config">
       <column name="task_config_id" valueNumeric="3"/>
       <column name="name" value="Auto Retire users"/>
       <column name="description" value="Retires all active users that are inactive for XX number of days specified by the value of the global property 'users.numberOfDaysToRetire'"/>
       <column name="schedulable_class" value="org.openmrs.scheduler.tasks.AutoRetireUsersTask"/>
       <column name="start_time" value="2024-05-22T23:59:59"/>
       <column name="start_time_pattern" value="MM/dd/yyyy HH:mm:ss"/>
       <column name="repeat_interval" valueNumeric="86400"/>
       <column name="start_on_startup" valueBoolean="true"/>
       <column name="started" valueBoolean="false"/>
       <column name="created_by" valueNumeric="1"/>
       <column name="date_created" value="2024-05-20T10:00:00"/>
       <column name="changed_by"/>
       <column name="date_changed"/>
       <column name="last_execution_time"/>
       <column name="uuid" value="02f598d9-e3bb-4f6f-94b6-182c6856413a"/>
    </insert>
</changeSet>

By following these steps, you can schedule and run the auto-deactivating user task in OpenMRS, ensuring that inactive users are retired after the specified period of inactivity.

  • No labels