Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Setting the Number of Days to Retire Users

  1. Log in to OpenMRS.

  2. Set the global property GP_NUMBER_OF_DAYS_FOR_AUTO_RETIRING_USER:

    • Find global property GP_NUMBER_OF_DAYS_FOR_AUTO_RETIRING_USER.

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

    • Save the changes.

Running the Auto-Deactivating User Task

via the user interface.

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.

Note: Admin users (aka super users) will not be retired.

Implementation

...

.

...

Task

...

Configuration

  1. Set up configuration details for the task:

    • Name: Name of the task e.g. Auto Retire Users

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

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

  1. Schedule the task:

  • Start Time: Set the desired start time.

  • Repeat Interval: Set to

...

  • desired repeat interval.

  • Start on Startup: Set to true

...

  • if you want the schedule to start immediately after the

...

  • application starts.

...

  1. Set the global propertyusers.numberOfDaysToRetire and it’s value as numeric value e.g. 2 (if you want to auto-retire users after 2 days of inactivity).

  2. Save the

...

  1. configuration.

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

Code Block
languagexml
<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.