I have a jdbc application. By provisioning rule I want to target integrate another application. This is the rule I have written but not working.
import sailpoint.api.Provisioner;
import sailpoint.object.Application;
import sailpoint.object.ProvisioningPlan;
import sailpoint.object.ProvisioningPlan.AccountRequest;
import sailpoint.object.Identity;
import sailpoint.object.ProvisioningResult;
import sailpoint.tools.util;
public ProvisioningResult provision(ProvisioningPlan plan, Identity identity){
ProvisioningResult result=new ProvisioningResult();
if(plan==null||Util.isEmpty(plan.getAccountRequests())){
return result;
}
ProvisioningPlan bmcPlan= new ProvisioningPlan();
for(AccountRequest accreq:plan.getAccountRequests()){
ProvisioningPlan.AccountRequest bmcReq= new ProvisioningPlan.AccountRequest();
bmcReq.setApplication("TargetApplicationName");
bmcReq.setNativeIdentity(identity.getName());
bmcReq.setOperation(ProvisioningPlan.Operation.Create);
bmcReq.addArgument("RequestedEntitlement", accreq.getNativeIdentity());
bmcReq.addArgument("Description","Access request for"+ accreq.getApplication());
bmcPlan.add(bmcReq);
}
sailpointContext context =plan.getContext();
Provisioner provisioner = new Provisioner(context);
result = provisioner.provision(bmcPlan);
if(result !=null){
log.error("Provisioning Status: "+ result.getStatus());
}
return result;
}
In Provisioning Transaction I have to get like this
<AccountRequest application="JdbcApplication" op="Create" targetIntegration="Target Application">