Auto remove sn_hr_core.hrsm_new_hire role when a user has snc_internal role

amielalcala
Kilo Sage

Hi everyone,

 

We need to remove sn_hr_core.hrsm_new_hire if the user already have the snc_internal. Here is the business rule we used but is not working:

(function executeRule(current, previous /*null when async*/) {

	// Add your code here

	var hrp = new GlideRecord('sn_hr_core_profile');
	hrp.addQuery('active',true);
	hrp.query();
	while(hrp.next())
	{
	if(hrp.user.hasRole('snc_internal') && hrp.user.hasRole('sn_hr_core.hrsm_new_hire'))
		{
		var hrp_role = new GlideRecord('sys_user_has_role');
		hrp_role.addQuery('user', hrp.user.sys_id);
		hrp_role.query();
		if (hrp_role.next()) {
		hrp.setLimit(2);
		hrp_role.deleteRecord();
		}
		}
	}

})(current, previous);

 Is there anything that we missed?

 

Appreciate any help we can get.

1 REPLY 1

Maddysunil
Kilo Sage

@amielalcala 

 

(function executeRule(current, previous /*null when async*/) {

    // Add your code here

    var hrp = new GlideRecord('sn_hr_core_profile');
    hrp.addQuery('active', true);
    hrp.query();
    while (hrp.next()) {
        if (hrp.user.hasRole('snc_internal') && hrp.user.hasRole('sn_hr_core.hrsm_new_hire')) {
            var hrp_role = new GlideRecord('sys_user_has_role');
            hrp_role.addQuery('user', hrp.user.sys_id);
            hrp_role.addQuery('role', 'sn_hr_core.hrsm_new_hire');
            hrp_role.query();
            hrp_role.setLimit(1);
            if (hrp_role.next()) {
                hrp_role.deleteRecord();
            }
        }
    }

})(current, previous);

 

Please Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.

 

Thanks