OIM 11g - Multi Valued attribute reconciliation of a child form
- by user604275
This topic gives a brief description on how we can do reconciliation of a child form attribute which is also multi valued from a flat file .
The format of the flat file is (an example):
ManagementDomain1|Entitlement1|DIRECTORY SERVER,EMAIL
ManagementDomain2|Entitlement2|EMAIL PROVIDER INSTANCE - UMS,EMAIL VERIFICATION
In OIM there will be a parent form for fields Management domain and Entitlement.Reconciliation will assign Servers ( which are multi valued) to corresponding Management Domain and Entitlement .In the flat file , multi valued fields are seperated by comma(,).
In the design console, Create a form with 'Server Name' as a field and make it a child form .
Open the corresponding Resource Object and add this field for reconcilitaion.While adding , choose 'Multivalued' check box. (please find attached screen shot on how to add it , Child Table.docx)
Open process definiton and add child form fields for recociliation. Please click on the 'Create Reconcilitaion Profile' buttton on the resource object tab.
The API methods used for child form reconciliation are :
1. reconEventKey = reconOpsIntf.createReconciliationEvent(resObjName, reconData,
false);
· ‘False’ here tells that we are creating the recon for a child table .
2. 2. reconOpsIntf.providingAllMultiAttributeData(reconEventKey, RECON_FIELD_IN_RO, true);
RECON_FIELD_IN_RO is the field that we added in the Resource Object while adding for reconciliation, please refer the screen shot)
3. reconOpsIntf.addDirectBulkMultiAttributeData(reconEventKey,RECON_FIELD_IN_RO, bulkChildDataMapList);
bulkChildDataMapList is coded as below :
List<Map> bulkChildDataMapList = new ArrayList<Map>();
for (int i = 0; i < stokens.length; i++) {
Map<String, String> attributeMap = new HashMap<String, String>();
String serverName = stokens[i].toUpperCase();
attributeMap.put("Server Name", stokens[i]);
bulkChildDataMapList.add(attributeMap);
}
4 4. reconOpsIntf.finishReconciliationEvent(reconEventKey);
5. reconOpsIntf.processReconciliationEvent(reconEventKey);
Now, we have to register the plug-in, import metadata into MDS and then create a scheduled job to execute which will run the reconciliation.