Hello experts,
I am getting below error on the rule execution. Not sure what is the issue. Appreciate your help here. Rule is not throwing any error for enable and disable operations but only for create and modify operations
import sailpoint.object.*;
import sailpoint.object.Identity;
import sailpoint.object.ProvisioningPlan;
import sailpoint.object.ProvisioningPlan.AccountRequest;
import sailpoint.object.ProvisioningPlan.AttributeRequest;
import sailpoint.object.ProvisioningPlan.Operation;
import sailpoint.tools.Util;
if(plan != null){
for(AccountRequest accountRequest : plan.getAccountRequests()){
if(accountRequest != null){
//Create Operation
if (accountRequest.getOperation().equals(ProvisioningPlan.AccountRequest.Operation.Create)){
log.info("Create Operation is getting executed");
for(AttributeRequest attrRequest : accountRequest.getAttributeRequests()){
if(attrRequest.getName().equalsIgnoreCase("ProfileId")){
String ProfileIdName = (String) attrRequest.getValue();
if(ProfileIdName.equalsIgnoreCase("00e4600")){
log.info("Request is for admin role");
accountRequest.add(new AttributeRequest("PermissionSet", ProvisioningPlan.Operation.Set, "LightningConsole"));
}else{
log.info("Request is for non-admin role");
accountRequest.add(new AttributeRequest("PermissionSet", ProvisioningPlan.Operation.Set, "Lightning_Console"));
}
}
}
log.info("Exiting from create operation");
}
//Modify Operation
else if(accountRequest.getOperation().equals(ProvisioningPlan.AccountRequest.Operation.Modify)){
boolean hasRemoveOperation = false;
log.info("Modify Operation is getting executed");
for(AttributeRequest attrRequest : accountRequest.getAttributeRequests()){
if(attrRequest != null){
ProvisioningPlan.Operation operation = attrRequest.getOperation();
if(operation.equals(ProvisioningPlan.Operation.Add) && attrRequest.getName().equalsIgnoreCase("ProfileId")){
log.info("Entering Modify Operation - Add attribute");
boolean isactive = idn.getAccountAttributeBool(accountRequest.getApplicationName(), accountRequest.getNativeIdentity(), "IsActive");
if(!isactive){
accountRequest.add(new AttributeRequest("IsActive", ProvisioningPlan.Operation.Set, "true"));
}
String valueExists = idn.getAccountAttribute(accountRequest.getApplicationName(), accountRequest.getNativeIdentity(), "ManagedPackage");
log.info("managedPackage value is" + valueExists);
if(valueExists == null || valueExists.isEmpty()){
accountRequest.add(new AttributeRequest("ManagedPackage", ProvisioningPlan.Operation.Set, "0504600"));
}
}
else if((operation.equals(ProvisioningPlan.Operation.Remove) || operation.equals(ProvisioningPlan.Operation.Revoke)) && attrRequest.getName().equalsIgnoreCase("ProfileId")){
log.info("Entering Modify Operation - remove attribute");
hasRemoveOperation = true;
break;
}
}
}
if(hasRemoveOperation){
//Remove modify account request
plan.remove(accountRequest);
//create and add a new disable request
//AccountRequest disableRequest = new AccountRequest();
//disableRequest.add(new AttributeRequest("ManagedPackage", ProvisioningPlan.Operation.Set, ""));
//disableRequest.setOperation(AccountRequest.Operation.Disable);
//disableRequest.setNativeIdentity(accountRequest.getNativeIdentity());
//plan.add(disableRequest);
accountRequest.add(new AttributeRequest("ManagedPackage", ProvisioningPlan.Operation.Set, ""));
accountRequest.setOperation(AccountRequest.Operation.Disable);
}
}
//Disable Operation
else if(accountRequest.getOperation().equals(ProvisioningPlan.AccountRequest.Operation.Disable)){
log.info("Entering disable Operation");
accountRequest.add(new AttributeRequest("ManagedPackage", ProvisioningPlan.Operation.Set, ""));
}
//Enable Operation
else if(accountRequest.getOperation().equals(ProvisioningPlan.AccountRequest.Operation.Enable)){
String valueExists = idn.getAccountAttribute(accountRequest.getApplicationName(), accountRequest.getNativeIdentity(), "ManagedPackage");
log.info("managedPackage value is" + valueExists);
if(valueExists == null || valueExists.isEmpty()){
accountRequest.add(new AttributeRequest("ManagedPackage", ProvisioningPlan.Operation.Set, "05046"));
}
}
else{
log.info("Other account request operation");
}
}
else{
log.error("AccountRequest is null");
}
}
}
else{
log.error("ProvisioningPlan is null");
}