I have disconnected app (Delimited connector), once access submitted , it will go for two level approvals, on Manual actions i need to restrict creating workitem, instead Rest API call need to be triggered.
Do you have an end point to aggregate data. If Yes you can onboard this application using web services connector. Assuming you do not, you will have to use Integration Config mechanism to make sure you are able to use the APIs when a provisioning request is made. Following links has few details that may be helpful.
import sailpoint.api.Provisioner;
import sailpoint.object.Application;
import sailpoint.object.ProvisioningPlan;
import sailpoint.object.ProvisioningResult;
import sailpoint.tools.GeneralException;
// Create an empty result object
ProvisioningResult result = new ProvisioningResult();
// Get request info
Application app = arguments.get("application");
ProvisioningPlan plan = arguments.get("plan");
log.error(">>> Custom provisioning rule triggered for application: " + app.getName());
try {
// Prepare REST call
String endpoint = "https://your-api-endpoint.com/provision";
String method = "POST";
String payload = plan.toXml(); // or build your own JSON/XML as needed
// Example: Use HTTP client
sailpoint.tools.http.WebClient client = new sailpoint.tools.http.WebClient();
client.setContentType("application/xml");
client.setUrl(endpoint);
client.setMethod(method);
client.setBody(payload);
client.execute();
// Log response
log.error(">>> REST API triggered successfully. Response: " + client.getResponseBody());
// Mark result as success
result.setStatus(ProvisioningResult.STATUS_COMMITTED);
} catch (Exception e) {
log.error(">>> Error during external API call: " + e);
result.setStatus(ProvisioningResult.STATUS_FAILED);
result.addError(e.getMessage());
}
return result;
Prevent WorkItem creation–Use a Provisioning Rule on the disconnected application|
Trigger external REST API–Do it inside the provisioning rule using Java/Beanshell|
Track status–Return appropriate ProvisioningResult status