Notification - the end of identity's last contract
The LRT LastContractEndNotificationTask sends an email notification to holders of a specified role and optionally the manager of a contract that a user's last contract is ending, i. e., the user is leaving. The recipients of the notification can be modified in the LRT setup and the notification template can be modified as well.
There are two different notifications this LRT can send:
- notification sent a specified number of days before the end of identity's last contract
- notification sent the day that identity's last contract ends
Each notification can use a different notification template (and must use a different topic).
This tutorial describes how to prepare this notification.
Prepare templates
The visual part of the notification can be configured since standard templates are used. Extras comes with two basic stub templates which can be used here.
To set it up, go the left panel, choose Notifications>Templates. Look for templates 'ContractEndInFuture' and 'ContractEndNow'. If you see them, you can edit them by clicking the magnifying glass if you want (see below).
If you don't see them, you will have to create them from the xml files with corresponding names. They can easily be found here.
You can create your own template by modifying the stubs. You have these objects available:
- user's full name (first name, last name, login, e. g., "Petra Šťastná, pstasna", String only)
- user's department from tree node (String only)
- the date of the end of the user's contract (String only)
- user's manager (full IdmIdentityDto)
- user (full IdmIdentityDto), since Extras 1.7.0
since version 3.2.3
- userIdentity - full IdmIdentityDto
- user - full name as String
- department - department from tree node as String
- ppvEnd - date of contract end as String
- manager - full IdmIdentityDto of user's manager
- identityUrl - URL to user's dashboard
- identityEav - user's EAV as list of IdmFormInstanceDto
- identityEavMap - user's EAV as Map of name of EAV and it's value as String
- identityContract - user's contract as IdmIdentitycontractDto
- rolesAllNames - list of all user's roles as names, sorted alphabeticaly
- rolesAllDto - list of all user's roles as IdmRoleDto
- rolesDirectNames - list of directly assigned user's roles as names
- rolesAutoNames - list of automaticly assigned user's roles as names
Configure topics
Next, we have to define the topics for the notification. In the left panel, click Notifications>Configuration and search topics extras:contractEnd and extras:contractEndInXDays.
If you don't find them, click the green button Add and fill them out as shown below:
You can specify additional recipients of the notification in the topic description.
Set up the Long running task (LRT)
Finally, we can set up the LRT. In the left menu, go to Settings>Task scheduler>Scheduled tasks and click the green button Add. Select the task type LastContractEndNotificationTask and specify the configuration of the LRT.
You can specify how many days before the contract's end the notification should be sent. If you set it to 0 the notification will be sent the day the contract ends and the extras:contractEnd topic will be used. If you write a positive integer x (1, 2, …) the notification will be sent x days before the contract ends and the extras:contractEndInXDays topic will be used.
You can select the role that the recipients of the notification will have assigned. You can only select one so if you need multiple ones, you have define multiple LRTs.
Since 3.2.0, you can also select whether the notification should be sent if the user is manually disabled. By default, this is set to true.
And finally, you can check the box and select whether the user's manager is to be notified as well. Only one manager will receive the notification!
Set up the Long running task (LRT) with technical identities
Finally, we can set up the LRT. In the left menu, go to Settings>Task scheduler>Scheduled tasks and click the green button Add. Select the task type LastContractEndNotificationTask and specify the configuration of the LRT.
You can specify how many days before the contract's end the notification should be sent.
* You can select the role that the recipients of the notification will have assigned. You can only select one so if you need multiple ones, you have defined multiple LRTs. * You can also check the box and select whether the user's manager is to be notified as well. Only one manager will receive the notification!
There is also support for technical identities. There are two options:
* If you provide prefix, then the task will look for username with this prefix (for identity whose contract is going to end). If some are found, then it sends the notification. * If you select a role in "Code of the role used for technical identities" then it will look if identity with ending contract has some subordinates with this role.
The last option (Send invalid contracts) is if you want to send only valid users or all. The reason for putting this option to this setting is this case: Task did not run a couple of days and some users are already not valid. So it admin can decide if those identities will be sent too.
Set up the Long running task (LRT) to notify owner of the contract
For notification of owner of the contract we can set up the LRT. In the left menu, go to Settings>Task scheduler>Scheduled tasks and click the green button Add. Select the task type LastContractEndNotificationTask and specify the configuration of the LRT.
IE. you can use this setup for sending extra notification directly to identity via sms (selected in notification topic).
You check "Should the owner of the contract receive the notification?" and you can fill name of the topic for notification. If you dont select any topic default will be selected.
Notification is set in the left panel, click Notifications>Configuration and search topics extras:contractEnd and extras:contractEndInXDays.
Notification is set for sending via SMS channel.
LRT setting from version 3.2.3
From version 3.2.3 there are additional options for this LRT.
- User type - You can select user type (projection). Only users of selected type will be processed. Leave it empty to process all users
- Account on system - If you want process only users with account on some system you can select one. Leave empty to process all users
- Tree node - Process users only in selected node (no recursion!)
Run the long running task (LRT)
The last thing remaining is to run the LRT using the green arrow button. You can user CRON to plan when the LRT should be run.