Target reconciliation

Hi all,
I am performing Trget reconciliation (OID-OIM) here is the scenario
1. create User in OID.
2. Run Traget Reconciliation.
3. link should be established between xelsysadm and the OID account.
How to achive this ?
In the action rule od the OID Resource object i added the action NO MATCH FOUND = ASSIGN TO USER (xelsysadm) .
But i am not able to see the link. help me
thank you.

For your understanding - Typical Scenario of Target Recon
1) Process Matching
For this, you need to create mapping between RO attributes and Process Form fields in the Process Definition (Reconciliation Field Mapping) and define the key mappings for matching to take place. You can define multiple keys. This way the process matching takes place with the already provisioned resource or certain actions takes place as you define your object reconciliation rule.
2) Entity Matching
For this, you need to create a Reconciliation Rule where you map the RO Attributes with Entity Attributes.
In your case, you need to follow the Entity Matching scenario

Similar Messages

  • Trusted and Target Reconciliation

    Hi All,
    Can we do trusted and target reconciliation from the same resource.I have to get email id and few attributes from ad on user profile and I need to do target recon for existing AD ids for further reporting and attestation. Can any one make recommendation for best possible way.
    Regards
    Nitesh

    For trusted recon: do you only have to fetch some attributes from AD to be populated on the User Profile only one time for e.g. contracter end dates are normally stored in AD and after the users have been reconciled in OIM, the end dates need to be updated on the oim profile from AD for the users. Is this the scenario or do you need to do this on an on-going basis, meaning when those attributes change in AD you need it propagated in OIM?
    If it is a one time thingy all you need to do is write a ST that will be run only once, to populate the required fields on the oim user profile of all users after day 1 recon has been completed.
    if you need this on an ongoing basis, you can configure only an app recon and on recon update recd write an adapter to see what fields have changed on the process form, see if those are the fields that you need to propagate to the user form, if so then simply update the user form with the value that is there for that field on the process form.

  • OID target reconciliation error

    hi all.
    i am able to provision the USER to OID, even Trusted Reconciliation is working properly.But when i run Target reconciliation i am getting the following error please help me
    DEBUG,13 Apr 2011 13:32:19,062,[XELLERATE.DATABASE],select UD_OID_GR_key from UD_OID_GR where UD_OID_GRP_GROUP_NAME =? and UD_OID_USR_key=2407
    ERROR,13 Apr 2011 13:32:19,066,[XELLERATE.SERVER],Class/Method: tcReconciliationUtil/evaluateEvent encounter some problems: {1}
    com.thortech.xl.orb.dataaccess.tcDataAccessException
    at com.thortech.xl.dataaccess.tcDataAccessExceptionUtil.createException(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.createException(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.readPartialPreparedStatement(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.readPreparedStatement(Unknown Source)
    at com.thortech.xl.dataobj.PreparedStatementUtil.execute(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.matchChildTableData(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.matchChildTableData(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.getProcessMatches(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.evaluateEvent(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.checkDataSorted(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.eventPostUpdate(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.update(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.finishDataReceived(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.finishReconciliationEvent(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.execute(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.MessageProcessUtil.processMessage(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.ReconMessageHandlerMDB.onMessage(Unknown Source)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:466)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:327)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by [Nested Exception]:
    java.sql.SQLSyntaxErrorException: ORA-00904: "UD_OID_USR_KEY": invalid identifier
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1035)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1188)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3386)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3430)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
    at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:135)
    at com.thortech.xl.dataaccess.tcDataBase.readPartialPreparedStatement(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.readPreparedStatement(Unknown Source)
    at com.thortech.xl.dataobj.PreparedStatementUtil.execute(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.matchChildTableData(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.matchChildTableData(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.getProcessMatches(Unknown Source)
    at com.thortech.xl.dataobj.util.tcReconciliationUtil.evaluateEvent(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.checkDataSorted(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.eventPostUpdate(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.update(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.finishDataReceived(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.finishReconciliationEvent(Unknown Source)
    at com.thortech.xl.schedule.jms.reconOffline.ProcessOfflineReconMessages.execute(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.MessageProcessUtil.processMessage(Unknown Source)
    at com.thortech.xl.schedule.jms.messagehandler.ReconMessageHandlerMDB.onMessage(Unknown Source)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:466)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:327)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    DEBUG,13 Apr 2011 13:32:19,067,[XELLERATE.SERVER],Class/Method: tcDataBase/getError entered.
    thank you

    Hi,
    Were you able to solve this?

  • Error Active Directory Target Reconciliation

    Hi,
    I am trying to run target reconciliation for AD.
    I reconciled 8000 users successfully, but I have 22 users with errors.
    I want to know if the problem is with the AD user attributes or with the OIM.
    I'm getting the following exception:
    INFO,15 Apr 2011 11:22:53,229,[OIMCP.ADCS],com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask : setTaskSchedulerObjectName : Starting Active Directory Target Reconciliation
    ERROR,15 Apr 2011 11:22:53,687,[OIMCP.ADCS],====================================================
    ERROR,15 Apr 2011 11:22:53,687,[OIMCP.ADCS],com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask : processUserChange : null
    ERROR,15 Apr 2011 11:22:53,687,[OIMCP.ADCS],====================================================
    ERROR,15 Apr 2011 11:22:53,688,[OIMCP.ADCS],================= Start Stack Trace =======================
    ERROR,15 Apr 2011 11:22:53,688,[OIMCP.ADCS],com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask : processUserChange
    ERROR,15 Apr 2011 11:22:53,688,[OIMCP.ADCS],
    ERROR,15 Apr 2011 11:22:53,689,[OIMCP.ADCS],Description : null
    ERROR,15 Apr 2011 11:22:53,689,[OIMCP.ADCS],Thor.API.Exceptions.IllegalInputException
    at Thor.API.Operations.tcReconciliationOperationsClient.ignoreEvent(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)
    at Thor.API.Base.SecurityInvocationHandler.invoke(Unknown Source)
    at $Proxy73.ignoreEvent(Unknown Source)
    at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.processUserChange(Unknown Source)
    at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.processBatch(Unknown Source)
    at com.thortech.xl.integration.ActiveDirectory.tcADUtilLDAPController.searchResultPageEnum(Unknown Source)
    at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.performReconciliation(Unknown Source)
    at com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask.execute(Unknown Source)
    at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run(Unknown Source)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute(Unknown Source)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:178)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:477)
    ERROR,15 Apr 2011 11:22:53,689,[OIMCP.ADCS],================= End Stack Trace =======================
    INFO,15 Apr 2011 11:22:53,781,[OIMCP.ADCS],com.thortech.xl.schedule.tasks.ActiveDirectoryReconTask : execute : End of Active Directory Reconciliation....
    Thanks,
    Ariel

    "Thor.API.Exceptions.IllegalInputException" , this exception tells me that the data which you are reconciling has unsupported characters.
    Validate the data ..
    Thanks
    Suren

  • How to control user updates during trusted/target reconciliation

    Hi All,
    I am new bie to OIM.
    Currently working on OIM 11g R2.
    1. I have user type called 'blind' which is updated by OIM admin.
    2. when I do a trusted/taget recon, I should not update user whose oim user type is 'blind'.
    Note: User type 'blind' is updated by OIM admin. There is no user type called 'blind' in target system while doing trusted system all users will be in status 'alive' or 'dead'.
    Kindly suggest how we can add OIM filter to prevent 'blind' user accounts from being overwritten by trusted reconciliation.
    Appreciate your response

    Hi GP,
    Thank you for the response. Please excuse me for using the terms Live,Dead,Blind.
    But we are not receiving the user Type "blind" from the reconciliation data. We receive only the two states either "live" (active) or dead (disable). Blind is the User status which we set as OIM user type manually and we do not want this blind type user get updated by the reconciliation engine. More over this reconciliation is a GTC reconciliation from CSV feed.
    Please correct me if the recon is of type target reconciliation can I write a Pre-Process Event Handler which will
    a) Get the list of users in OIM whose type if blind
    b) compare the data with the recon data available through event handler, then skip the change.
    Is this possible.
    Regards
    Srinivas

  • Target reconciliation Process Form

    Hi,
    I had done target reconciliation for lotus notes and the users got linked with OIM. I did some changes in the process form (I added CompanyName field) now when i am going target reconciliation again it is not get the companyname field in the process forms for the users. I checked the database table it contains the values for companyname. So it is not showing me the new updated process form for the users.
    Thanks & regards,

    Hi,
    I gonna tell you my trade secret.Let me understand your problem first.
    1.You created the process form and did the reconciliation and user got linked.
    2.You updated the process form and did the reconciliation again ,event got linked but process form did not get updated.
    Problem:
    See this is very old scenario that we face,atleast in my 3 years of OIM career I did faced this issue.With every provisioned resource OIM keep the information of process form in respective UD_Process form Name .Along with that it also contain the process form version so when ever you create a new version of process form it works fine for new provisioned object but OIM does not update the process form version in UD_ table for old entries. Thats why when you view the process form it will not show you the latest modified field.
    Solution:
    Every problem has solution yes I agree so what you can do to resolve the problem.First always design in a such a way that you don't need to modify the form but if you already done this mistake so this is how you can solve the problem.
    1.Take one user and provisioned it to lotus note resource.
    2.Get the usr_key of this user.
    3. select orc_key from orc where usr_key= ?? (Key that you get in step 2.
    4.select * from UD_LOTUSFORM where orc_key=?? Key that you get in step3
    5.Now you will see a field called UD_LOTUSFORM_VERSION ..See what is the value of this version.
    6.Update UD_LOTUSFORM set UD_LOTUSFORM_VERSION=?? ( Value you get in step5) WHERE 1=1 (It will update all existing entry)
    7.Run the reconciliation again.
    You are done buddy.Let me know if you have any questions.
    Regards
    Nitesh

  • Custom Target Reconciliation with child form entries in OIM 11g

    Hello experts,
    I have developed custom scheduler code to reconcile users from target system to OIM. In this code I am using the API createReconciliationEvent(java.lang.String psObjectName, java.util.Map poData, boolean pbFinishEvent). If the reconciled user does not have any child form entries(like roles and groups) then the user account is linked to OIM user profile but if the user has child form entries then user is not getting reconciled to OIM. In the logs it says...
    oracle.iam.platform.utils.SuperRuntimeException: -104: Error occurred in XL_SP_RECONEVALUATEUSER while processing Event No 849 Error occurred in XL_SP_RECONREQDATACHECK while processing Event 849 'Event Received' is an invalid event status. Valid event states are Data Received,Data Validation Failed,Being Re-evaluated,Being Re-tried
    at oracle.iam.reconciliation.dao.ReconActionDao.executeUserMatch(ReconActionDao.java:393)
    at oracle.iam.reconciliation.impl.UserHandler.process(UserHandler.java:64)
    at oracle.iam.reconciliation.impl.ActionEngine.processEvent(ActionEngine.java:194)
    at oracle.iam.reconciliation.impl.ReconOperationsServiceImpl.processReconciliationEvent(ReconOperationsServiceImpl.java:982)
    at oracle.iam.reconciliation.api.ReconOperationsServiceEJB.processReconciliationEventx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy334.processReconciliationEventx(Unknown Source)
    at oracle.iam.reconciliation.api.ReconOperationsService_emc07d_ReconOperationsServiceRemoteImpl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
    Here is my code...
    public void reconCall(String ResourceObject, Hashtable mUserDetail)
    ReconOperationsService tcreconObj =null;
    EventAttributes eventattr= new EventAttributes();
    ArrayList roles=roleOfUser(mUserDetail.get("CommanName").toString(),mUserDetail.get("OrganizationUnit").toString());
    ArrayList groups=groupOfUser(mUserDetail.get("CommanName").toString(),mUserDetail.get("OrganizationUnit").toString());
    if((roles.size()==0)&& (groups.size()==0))
    eventattr.setEventFinished(true);
    else
    eventattr.setEventFinished(false);
    try
    LOGGER.info("In com.gapp.recon.tasks.ReconAllUsers reconCall()");
    LOGGER.info("Creating object of Thor.API.Operations.tcReconciliationOperationsIntf");
    tcreconObj = Platform.getService(oracle.iam.reconciliation.api.ReconOperationsService.class);
    LOGGER.info("Creating reconcilation event");
    long lnreckey = tcreconObj.createReconciliationEvent(ResourceObject, mUserDetail, eventattr);
    if(roles.size()==0)
    LOGGER.info("there are no roles for the user");
    if(roles.size()>0)
    tcreconObj.providingAllMultiAttributeData(lnreckey, "RoleName", true);
    LOGGER.info("Iterating roles");
    LOGGER.info(roles.toString());
    for(int k=0; k <roles.size(); k++)
    LOGGER.info("Iteration "+k);
    HashMap multiroles=new HashMap();
    LOGGER.info("Adding role to hashmap");
    multiroles.put("RoleName", roles.get(k));
    LOGGER.info(multiroles.toString());
    long j= tcreconObj.addMultiAttributeData(lnreckey, "RoleName", multiroles);
    LOGGER.info("addMultiAttributeData key "+j);
    if(groups.size()==0)
    LOGGER.info("There Are No Groups For This User");
    if(groups.size()>0)
    tcreconObj.providingAllMultiAttributeData(lnreckey, "GroupName", true);
    LOGGER.info("Iterating groups");
    LOGGER.info(groups.toString());
    for(int k=0; k <groups.size(); k++)
    LOGGER.info("Iteration "+k);
    HashMap multigroups=new HashMap();
    LOGGER.info("Adding group to hashmap");
    multigroups.put("GroupName", groups.get(k));
    LOGGER.info(multigroups.toString());
    long j= tcreconObj.addMultiAttributeData(lnreckey, "GroupName", multigroups);
    LOGGER.info("addMultiAttributeData key "+j);
    // LOGGER.info("executing processReconciliationEvent");
    tcreconObj.processReconciliationEvent(lnreckey);
    //LOGGER.info("executing finishReconciliationEvent");
    // tcreconObj.finishReconciliationEvent(lnreckey);
    // LOGGER.info("executing updateScheduletaskattribute");
    }Pls Help.
    Thanks

    You gotta specify your child table recon-field in the process definition mappings as a Key Field. Refer OOTB AD connector and check:
    Process Definition -> AD User ->Reconciliation Field Mappings -> memberOf

  • OIM EBS Target Reconciliation

    Hi all
    We have OIM 9101 with EBS UM 9043 connector. When we run the target recon, the target recon query fetches 12K user records but we can see only 2.5K user records in the Reconciliation manager. Ideally, all the users fetched by the connector query should be present in reconciliation manager. Please correct me if I am wrong.
    Does anyone of you have any idea about what's the missing piece here. Any help would be appreciated.
    Thanks

    Hi,
    All the recon event are placed in particualr table in database. As records are in huge it might be possible the table get flooded with so many records.
    Do below things:
    1. As you said there 2.5K records, just check if possible they are in sequence or randaom. If records are in sequence means table is flooded, increase the cache memeory of database and table size and try.
    2. IF records are random then there is some error in information just check that....
    Regards
    Alabhya Goel

  • Exception while performing Target Reconciliation

    My target is a CSV file which contains fields for empid (mapped as key field),firstname,lastname,emailid and status (mapped to OIM_OBJECT_STATUS)
    I can see the reconciliation data in Reconciliation event window in Design console but I am getting the following exception with Reconciiation Event status set to "Event Received":
    Data AccessException:com.thortech.xl.orb.dataaccess.tcDataAccessException: DB_READ_FAILEDDetail: SQL: select rpc.rpc_key, rpc.rcm_key, rcm.rcm_delete  from rcm rcm, rpc rpc where rpc.rcm_key=rcm.rcm_key and rcm.rcm_delete='1'  and rpc.rpc_parent_rpc_key is null and rcm.RCM_PARENT_RCM_KEY is null and rpc.rce_key= 166 and rpc.orc_key=710Description: O
    RA-00904: "RCM"."RCM_DELETE": invalid identifier
    SQL State: 42000Vendor Code: 904Additional Debug Info:com.thortech.xl.orb.dataaccess.tcDataAccessException
    at com.thortech.xl.dataaccess.tcDataAccessExceptionUtil.createException(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.createException(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataBase.readPartialStatement(Unknown Source)
    at com.thortech.xl.dataobj.tcDataBase.readPartialStatement(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
    at com.thortech.xl.dataaccess.tcDataSet.executeQuery(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.updateProcessData(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.linkToProcess(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.applyActionRules(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.checkDataSorted(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.eventPostUpdate(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.update(Unknown Source)
    at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
    at com.thortech.xl.dataobj.tcRCE.reapplyRules(Unknown Source)
    at com.thortech.xl.ejb.databeansimpl.tcRCEBean.reapplyRules(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
    Please help me resolve this issue.

    Click on Reapply matching rules , what is the error it throws when you click on re apply matching rules in Recon Manager
    Thanks
    Suren

  • OIM Target reconciliation - Applying logic on field used in reconciliation rule

    Hi All,
    I am working on OIM 11g R1. We are doing target accounts reconciliation from AD using OOTB connectors. samAccountName is the field used for reconciliation matching rules. Now my requirement is to apply some logic on this field(For ex: Removing whitespaces at the end of the field value or adding 0 as prefix) before the reconciliation rules are evaluated to find the match in OIM.
    Could someone help me on implementing this.
    Thanks.
    Rgds,
    Mounika

    This can be achieved creating a class for doing the data transformation and making an an entry in the ReconTransformation lookup against the field for which transformation is required. Please follow the link - http://docs.oracle.com/cd/E22999_01/doc.111/e20347/extnd_func.htm#CMSAD357

  • [OIM] error while target reconciliation

    I want to reconcile the users from the target oid to do account linking. We do not want to reconcile multi valued attributes so i have removed the multi valued group and role entries from object reconciliation profile, process definition and also from the recon lookup. But even after that i am facing the issue as mentiioned below.
    <Exception in OID:tcTskOIDUserReconciliation:reconcileUser() Oim Child Table Name is null based on child mapping UserRole>What could be causing this still ?

    First of all, let's get things working...
    Then we can do R&D on this error
    Let's follow step by step..
    First of all, undo everything and make it OOTB connector... No change from your side...
    Test for one user only..
    It works and child tables in process form are getting populated...
    Good... Then Remove ONLY Child Form mapping in the "Reconciliation Field Mappings"... Do NOT TOUCH ANYTHING ELSE...
    Create Reconciliation Profile (if using OIM 11G)
    Then again, for the same user, make some minor change, say in the first name in the target system, add 1... Just minor change...
    Then again execute recon for this user only... Keep the logs open...
    Ideally, every thing should happen smoothly... Event should be generated and the new first name is populated in the process form... That's it... Nothing should happen to the Child Form... No UserRole related issues should appear...
    If again the same issue appears, then something else in the OOTB connector has been tampered with...
    And if it is OIM 11G, and I have seen many issues regarding Create Reconciliation Profile NOT reflecting the new Reconciliation configuration, that would be entirely another issue..
    My point is:- Simply removing the Child Form mapping in the "Reconciliation Field Mappings" should be sufficient to fulfil your requirement...
    And if any other issue arising from connector tampering or inconsistent behavior of Create Reconciliation Profile appears, that's another point altogether...
    So, please first try what I have suggested...

  • OIM Target Reconciliation

    In OIM 9102 ,we are doing target recon
    on day 0 when reconciliation insert recieved , we need to put a check that if we user is disabled at target , we want to perform some task.
    Similarly from day 1 onwards when reconciliation update recieved , we need to put a check that if we user is disabled at target , we want to call a task.
    Please reply soon.
    Thanks
    Hina

    Should be Simple.
    - Create this task which checks the Object Status for the resource profile to be in a Disabled state and based on that do the required action
    - Attach this task to the response Event Processed for the 2 tasks Reconciliation insert received and Reconciliation Update received, so that it gets invoked every time reconciliation is run

  • Reconciliation for the deleted user accounts on Target Resource

    Hi,
    I am trying to run reconciliation on a DB Table as the target resource. It is linking the user accounts that are present in the target resource.
    But for the user accounts that are deleted on the target resource Reconciliation is not showing any action on the IdM user accounts under resource profile. The resource object link still shows the status "Provisioned".
    Ideally when the users are deleted on the target resource User's profile, Does it require any customizations to make the resource assignment status to "revoked" instead of "Provisioned".
    Any response would be of great help.
    Thanks in advance.

    See there could be two possibilities only:
    *1) User Status Recovery via trusted Reconciliation*
    Associated field in OIM responsible for it - Status field of OIM User Profile -> Check Process Definition for Xellerate User or any Trusted resource in "Reconciliation Field Mappings" section
    Valid values are : Active, Disabled and Deleted
    *2) Account Status Recovery via target Reconciliation*
    Associated field in OIM responsible for it - OIM_OBJECT_STATUS field from Process Data Field -> Check Process Definition for Your custom resource of DB App Table in "Reconciliation Field Mappings" section
    Valid values are : Enabled, Disabled and Revoked
    So you are trying to achieve the second part.
    Hope its clear.
    Thanks
    Sunny

  • Difference between Targeted vs. Trusted source reconciliation?

    Hello!
    Can someone please explain to me in a “for dummies sort of way” or “by example” what is the difference between
    Trusted source reconciliation and Targeted resource reconciliation??
    I found this explanation on Oracle, but I still don't understand the difference:
    Targeted resource reconciliation:
    occurs when the audit criteria reconciles the resource request or change against the actual resource provisioned insuring access or the lack thereof in a ad hoc query bases.
    Trusted source reconciliation:
    occurs when the audit criteria reconciles from a primary point of truth validating the resource access status against corporate policy.
    Thank you very much

    Trusted Source:
    Trusted sources are identified as your source of truth for employee information. It is a store of user information that hopefully will contain your entire employee list. The best example would be payroll. The information from payroll should be accurate for all employees, and also contain personal data that might be required. Your trusted source will map to a single user identity in OIM, which is the Xellerate User. When you perform a trusted reconciliation against this target, it will create your Xellerate User object for each user which is the unique identity within OIM. Also, when performing reconciliations against a trusted source, this is the only time a reconciliation event triggers an update to a field. You can propogate changes from a trusted reconciliation onto your targets by creating triggers.
    Target Reconciliation:
    Now that you have your unique identity, this Xellerate User can have user accounts that the end user will actually use. They can have multiple targets linked to their trusted profile (Xellerate User). So when you perform a target recon, it will match that target entity to the Xellerate User identity creating a 1 to many relationship. For every 1 Xellerate User object, you can have multiple target objects, but not the other way around. When you perform the target reconciliation for updates, there are no triggered changes to the process form. It is all an immediate change and you cannot have a trigger on these fields, wheras the trusted source will trigger a change that can be propagated to the targets.
    So you can think of it as Trusted is an identity or person, and Target is a user account or object that is actually used by the identity.
    -Kevin

  • OIM 11g DBAT connector - user update not working after target recon

    Hi,
    I have configured a resource (XSVR3) with the DBAT 9.1.0.5.0 connector to do provisioning and target recon to and from the same custom database table, following the example found on the connector guide. Now what happens is the following:
    - if I first provision the resource to the user everything works fine
    - if a resource is first assigned to a user as a result of a target recon, the connector then fails at propagating to the table any changes I make in the process form, returning the following error:
    <8-gen-2013 16.44.16 CET> <Error> <OIMCP.DATC> <BEA-000000> <Class/Method: DBFacade/updateParentRecord encounter some problems: Empty parent row cannot be updated. Please ensure to run reconciliation task to bring the systems in sync.>
    <8-gen-2013 16.44.16 CET> <Error> <OIMCP.DATC> <BEA-000000> <Class/Method: DBProvisioningTransportProvider/sendData encounter some problems: DB_UPDATE_EMPTY_RECORD_ERROR
    com.thortech.xl.gc.exception.DBException: DB_UPDATE_EMPTY_RECORD_ERROR
    at com.thortech.xl.gc.impl.common.DBFacade.updateParentRecord(Unknown Source)
    at com.thortech.xl.gc.impl.prov.DBProvisioningTransportProvider.sendData(Unknown Source)
    It looks like the connector is unable to find the record that needs to be updated. I've looked into the process form table of the resource on the DB (called UD_XSVR3), and I noticed that records resulting from target reconciliation have a null in the UD_XSVR3_ID column, while records resulting from a direct provisioning have the username in the same column. Updating manually the column in the first kind of records fixes the issue, but I need to know if/what have I missed in the connector configuration.
    thanks in advance
    Alex
    Edited by: Prorad on Jan 9, 2013 3:02 AM

    Hi, Prorad,
    We are having same issue. What's the resolution for the issue? Any hints will be great.
    Thanks,
    Vincent

Maybe you are looking for