Which IIQ version are you inquiring about?
8.5
Hello Everyone,
I have updated the After Script in the Provisioning Approval Subprocess to mark the approval items as Rejected if the associated work item has expired. When I test this locally, it is working perfectly fine. However, in the QA environment, after the expiration occurs, the following error appears on the Access Request page:
“Error: This request timed out waiting for one or more items.”
Although the approval items get rejected and the IdentityRequest is marked as completed, this error still occurs.
Do you have any ideas why this might be happening?
Additional context / question:
Also, could you please provide insights on why this behavior is as expected in my local environment (where I am using Time Machine to simulate expiry) but not in the QA environment?
After Script:
import sailpoint.workflow.IdentityRequestLibrary;
import sailpoint.object.WorkItem;
import sailpoint.object.ApprovalItem;
import sailpoint.tools.Util;
import org.apache.log4j.Logger;
Logger workflowLogger = Logger.getLogger(“workflow.LCM.ProvisioningApprovalSubprocess”);
workflowLogger.debug(“Entering After Script”);
if (item == null)
return;
// Handle Expired work item before assimilation
if (WorkItem.State.Expired.equals(item.getState())) {
// Ensure all approval line-items gets rejected if workitem is expired
if (approvalSet != null) {
List aitems = approvalSet.getItems();
if (!Util.isEmpty(aitems)) {
for (Object obj: aitems) {
if (obj instanceof ApprovalItem) {
ApprovalItem aItem = (ApprovalItem) obj;
aItem.setState(WorkItem.State.Rejected);
}
}
}
}
}
assimilateWorkItemApprovalSet(wfcontext, item, approvalSet);
auditDecisions(item);
IdentityRequestLibrary.assimilateWorkItemApprovalSetToIdentityRequest(wfcontext, approvalSet);
workflowLogger.debug(“Exiting After Script”);