For JDBC connector we are defining the provisioning policy to create new accounts. I can see in UI we have options to select values for attributes. So still do we need provisioning rule? If yes what code to be written in create operation section.
if ( AccountRequest.Operation.Create.equals( account.getOperation() ) )
Though you have provisioning policy in the UI, you still need to write the provisioning rule for jdbc , at first you have to create a connector rule through beta collections for JDBC provisioning and add that rule to your source through update source partial api in v3 collections. I hope the below attachment helps you. IdentityNow JDBC configuration.docx (718 KB)
I got one more question here. In the create operation, data is being written only to users table but not the userscapabilities table. Here the account the being created while I raise entitlement request for user in Sailpoint so we need entitlement data to be written in userscapabilities table as well but my below code is failing to do that. We need both user table and usercapabilities table to be updated fir the forst time in create operation.
if (AccountRequest.Operation.Create.equals(account.getOperation())) {
// Ideally we should first check to see if the account already exists.
// As written, this just assumes it does not.
statement = connection.prepareStatement("insert into accounts(EmpID,EmpName,AccountID) values (?,?,?)");
statement.setString(1, (String) account.getNativeIdentity());
statement.setString(2, getAttributeRequestValue(account, "EmpName"));
statement.setString(3, getAttributeRequestValue(account, "AccountID"));
statement.executeUpdate();
result.setStatus(ProvisioningResult.STATUS_COMMITTED);
List<AttributeRequest> mod_attr_requests1 = account.getAttributeRequests();
if (mod_attr_requests1 != null) {
for (AttributeRequest req1 : mod_attr_requests1) {
if (req1.getName().equals("EmpID")) {
if (ProvisioningPlan.Operation.Add.equals(req.getOperation())) {
statement1 = connection.prepareStatement("INSERT INTO sailpoint.groups (EmpID, EntName) values (?, ?)");
statement1.setString(1, (String) account.getNativeIdentity());
statement1.setString(2, req1.getValue());
statement1.executeUpdate();
result.setStatus(ProvisioningResult.STATUS_COMMITTED);
}
}
}
}
Do you know the syntax for ‘nofiltering=true’? We have read-only access to application database table so write to an alternate table that the application then imports. The problem is that null values are being written if the data already matches that field. We are using aliases as mentioned by ‘bilal’ in this article but then we can’t turn on attribute sync for those attributes. There are a lot of articles for IIQ and workflow but not ISC JDBC Provisioning Rules.