Reconciliation of disconnected system account is same as reconciling a connected system account. The main difference lies in the source of reconciliation. In case of a connected system, a connection is established with the actual target system and data is pulled to OIM. Where as in case of a disconnected system, the data is made available to OIM using a CSV, Flat File or a database table. Reconciliation on both these types of systems look same in case of initial load. Some implementations make data available externally during initial load for all types of target systems.
In any type of System's reconciliation, including IT Resource attribute among the RO attributes and recon data is mandatory. In case this information(IT Resource in the recon data) is missed in the recon data when submitting reconciliation event, the reconciliation event is created and linked successfully. The status on the recon event shows 'Creation Succeeded'. However, when navigated to the 'Accounts' tab or 'My Access' tab, the resource is not shown. The reconciliation rules are evaluated, the event gets linked, but the resource doesn't appear on the user's resource profile. Yes, you read it correctly.
Also, when another recon event is created for the same account, the event shows 'Update Succeeded' , but again no resource is seen is the user's resource profile.
The code snippet for submitting a simple recon even is here:
ReconOperationsService reconOp = client.getService(ReconOperationsService.class); System.out.println("reconOp="+reconOp); Map<String,Object> roDataMap = new HashMap<String,Object> (); roDataMap.put("User Name","name"); roDataMap.put("Email","name@xyz.com"); roDataMap.put("IT Resource","ITR"); - This is most important try { EventAttributes ea=new EventAttributes(); ea.setEventFinished(true); long eventKey = reconOp.createReconciliationEvent(RESOURCE_OBJECT, roDataMap , ea); reconOp.processReconciliationEvent(eventKey); System.out.println("eventKey="+eventKey); } catch (Exception e) { e.printStackTrace(); } |