We have seen many time to send the Expiry Notification , when the Access Review is Expired , ie no action is taken CertificationAutomaticClosingRule can be used to send the notification , here is the sample code for using this Rule.
import sailpoint.object.Identity; import sailpoint.object.EmailOptions; import sailpoint.object.EmailTemplate; import sailpoint.object.Certification; import org.apache.commons.logging.Log; import sailpoint.object.SignOffHistory; import org.apache.commons.logging.LogFactory; System.out.println("Entering Certification Auto closing rule."); List toAddresses = Arrays.asList(""); List certifiers = certification.getCertifiers(); Identity certifier = context.getObjectByName(Identity.class,certifiers.get(0).toString()); System.out.println("certifier : " + certifier); if(null != certifier){ toAddresses = Arrays.asList(certifier.getEmail()); System.out.println("toAddresses : " + toAddresses); } String tplName = "Certification Expired Notification"; EmailTemplate template = context.getObjectByName(EmailTemplate.class, tplName); if (null == template) { System.out.println("Could not find email template [ " + tplName + "]"); return; } Map args = new HashMap(); args.put("certification", certification); args.put("ownerName", certifier.getDisplayName()); System.out.println("certification : " + certification); System.out.println("ownerName : " + certifier.getDisplayName()); certification.addSignOffHistory((Identity)context.getObjectByName(Identity.class, "spadmin")); //Send Notifciation of Expiry System.out.println("Exiting Certification Auto closing rule"); return ;