We can use a script in approvalScheme variable in workflow and return different values based on our requirement.
<Variable input="true" name="approvalScheme">
<Description>
A String that specifies how approvals should be generated for
this workflow there are three built-in modes
none - disabled approvals
manager - The user's current manager will get approvals
newManager - The newly assigned manager will get approvals when
manager transfers occur. Otherwise the user's manager
current manager will be the approver.
</Description>
<Script>
<Source>
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
private static Logger logger = Logger.getLogger("sailpoint.services.transfer");
logger.setLevel(Level.DEBUG);
if("Vendor Manager Transfer".equalsIgnoreCase(eventType) || "Vendor Enable".equalsIgnoreCase(eventType))
{
if(managerStatus)
{
logger.error("managerStatus"+managerStatus);
return "newManager";
}
else {
logger.error("else block of mgrtransfer::"+managerStatus);
return "manager"+","+"newManager";
}
}
else if("Vendor Create".equalsIgnoreCase(eventType))
{
logger.debug("Create Vendor::"+eventType);
return "manager";
}
else if("DeletePRVAccount".equalsIgnoreCase(eventType))
{
logger.debug("Create Vendor::"+eventType);
return "manager";
}
else if("Create Privilaged Account".equalsIgnoreCase(eventType))
{
logger.debug("Create Vendor::"+eventType);
return "manager";
}
else
{
logger.error("else block::"+managerStatus);
return "manager"+","+"newManager";
}
</Source>
</Script>
</Variable>
<Description>
A String that specifies how approvals should be generated for
this workflow there are three built-in modes
none - disabled approvals
manager - The user's current manager will get approvals
newManager - The newly assigned manager will get approvals when
manager transfers occur. Otherwise the user's manager
current manager will be the approver.
</Description>
<Script>
<Source>
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
private static Logger logger = Logger.getLogger("sailpoint.services.transfer");
logger.setLevel(Level.DEBUG);
if("Vendor Manager Transfer".equalsIgnoreCase(eventType) || "Vendor Enable".equalsIgnoreCase(eventType))
{
if(managerStatus)
{
logger.error("managerStatus"+managerStatus);
return "newManager";
}
else {
logger.error("else block of mgrtransfer::"+managerStatus);
return "manager"+","+"newManager";
}
}
else if("Vendor Create".equalsIgnoreCase(eventType))
{
logger.debug("Create Vendor::"+eventType);
return "manager";
}
else if("DeletePRVAccount".equalsIgnoreCase(eventType))
{
logger.debug("Create Vendor::"+eventType);
return "manager";
}
else if("Create Privilaged Account".equalsIgnoreCase(eventType))
{
logger.debug("Create Vendor::"+eventType);
return "manager";
}
else
{
logger.error("else block::"+managerStatus);
return "manager"+","+"newManager";
}
</Source>
</Script>
</Variable>
No comments:
Post a Comment