OIM 11g R1 - Modifying a Resource Erases Custom Process Task ???

I've created a Generic Resource in OIM that uses the Database Applications Table connector 9.1.0.5.0.
Then I add my own process tasks through Design Console under "Process Management -> Process Definitions". On each custom process task I've attached my own custom adapters, which I created through "Development Tools -> Adapter Factory" in Design Console. These custom adapters use methods from my Java code. My Java jar file is located in "Oracle_IDM1/server/JavaTasks".
Now here is the issue:
Whenever I modify this resource in OIM under "Configuration -> Manage Generic Connector" (E.g Changing reconciliation type from Full to Incremental), all my custom process tasks get deleted.
What is the reason for this? Is there a solution for this problem?

This is indeed a major flaw for GTC. Below I found this issue in a Oracle doc.
Doc Link: http://docs.oracle.com/cd/E14571_01/doc.1111/e14309/aptrouble.htm
Below is a description of this issue from the Oracle documentation
Summary:
Customization work done on objects of a generic technology connector would be overwritten if you perform a Manage Generic Technology Connector operation.
Description:
You can use the Design Console to customize connector objects that are automatically created during generic technology connector creation. However, after you customize connector objects, if you perform a Manage Generic Technology Connector operation, then all the customization done on the connector objects would be overwritten. Therefore, Oracle recommends that you to apply one of the following guidelines:
Do not use the Design Console to modify generic technology connector objects.
The exception to this guideline is the IT resource. You can modify the parameters of the IT resource by using the Design Console. However, if you have enabled the cache for the GenericConnector and GenericConnectorProviders categories, then you must purge the cache either before or after you modify IT resource parameters. See "Purging the Cache" in the Oracle Fusion Middleware System Administrator's Guide for Oracle Identity Manager for information about running the PurgeCache utility.
If you use the Design Console to modify generic technology connector objects, then do not use the Manage Generic Technology Connector feature to modify the generic technology connector.
Connector objects that are automatically created are not deleted even if the generic technology connector creation process fails.

Similar Messages

  • Custom Process Task Adapter for AD OIM 11gR2

    Hi,
    Has anyone written a Custom Process Task Adpater for AD? We want to update bunch of attributes from a single task adapter and wondering how we can extend the OOTB ones?
    - Kaushik

    Thats the thing right, we are not able to get the API or appropriate connector classes to get AD Connections and other stuff.
    Consider the case where, you update the Manager's DN. How do we write an adapter using connector's api to fetch the dn?

  • OIM 11g - Reconciliation of Target Resource Status

    Hi,
    We're working with OIM 11.1.1.5.2 and connectors DBUM 9.1.0.4 and MSAD 9.1.1.7.
    Provisioning and reconciliation seem to be working correctly, but we found that the status of the resource is not getting reconciled on OIM console.
    For example, if we provision an user with an Oracle Database account, and then lock the account on the database, when we run reconciliation the event is generated and finished with "update succeded", we go to the UD_DB_ORA_U table and find that the field UD_DB_ORA_U_LOCK has a "LOCKED" value, then if we check the logs we can see that the connector is correctly mapping the resource status with the OIM object status:
    prepareTargetUsersRecordInOIMFormat : record value : LOCKED
    prepareTargetUsersRecordInOIMFormat : map : {OPEN=Enabled, 1=Disabled, YES=Disabled, 0=Enabled, EXPIRED & LOCKED=Disabled, NO=Enabled, LOCKED=Disabled}
    prepareTargetUsersRecordInOIMFormat : roValue : TEMPORARY_TABLESPACE_QUOTA
    prepareTargetUsersRecordInOIMFormat : Temp RO value : null
    prepareTargetUsersRecordInOIMFormat : reconData : [{Default Tablespace=27~USERS, Authentication Type=PASSWORD, Password=Dummy, Default Tablespace=27~USERS, Authentication Type=PASSWORD, Password=Dummy, Default Tablespace Quota=, Profile Name=27~USUARIOS, IT Resource=Oracle, User Name=USPRUEBA65, Temporary Tablespace=27~TEMP, Account Status=LOCKED, Status=Disabled, Global DN=, Privilege List=[], Role List=[{Role Admin Option=NO, Role Name=}], Temporary Tablespace Quota=}]
    prepareTargetUsersRecordInOIMFormat:: FINISHED
    But, even though the reconciliation has succeded the administrative console shows the account on "Enabled" status, and when I check the OIU table i can see that the OIM object status is still enabled.
    I found some threads related to this issue, the most similar was this one: Reconciliation for the deleted user accounts on Target Resource but everything there do not seem to be of much help because all tasks described are already done by the connector installation (at least in msad and dbum connectors).
    This problem is happening both for Active Directory and Oracle Database Users, maybe we're missing something but based on the documentation for both connectors we thought it was an OOTB functionality. Is there some system property or connector parameter we need to configure to make this work?
    Thanks.
    Edited by: fmc on Jul 26, 2012 12:53 PM

    Hi Pallavi,
    Well, you were right after all, we were mixing 2 totally different problems here and it got us confused.
    The problem with the DBUM connector was exactly what you said, a bug in the connector, just needed to modify the connector task object to status mapping. We were checking the Reconciliation Update Received task on AD and we thought it would be the same, and it was obviously not. Well, in this case teh recon event was being generated but nothing happened, after we changed the process task it worked like a charm.
    On the other hand, the problem with the AD reconciliation was that our search filter on the recon job was configured to ommit accounts with the disabled status (!(userAccountControl=66050)), it was certainly a silly problem, never thought we had that in the filter (it's a huge filter and we didn't pay attention to that clause the first time around) but everything is working now, thanks!

  • OIM 11g+Database Application Tables Resource Connectors+ MS SQL Server 2008

    Hello Experts:
    I installed DBAT 9.1.0.5.0 Resource Adapter on Linux 64 bit server using OIM 11g, I try to create Generic Connectors to configure Target Resource for MS SQL Server 2008 and after entering all the information on the second screen and click continue the screen gets stuck. This does not throw any kind of error nor any error msg are written to Log files. It's been difficult to debug the problem or know the root cause since there is no error msg thrown. No data is written from the sql server.
    I can ping to the sql server and port are open.
    Do we have to do any kind of setting on sql server to make this work?
    Does any one have ideas? Did any one face any issues like this before?
    Has any one worked with OIM connections with SQL server?
    Just throwing all these question as I am running out of ideas.
    Much help appreciated.
    Thanks.
    Edited by: 886912 on Dec 8, 2011 5:09 PM

    Thanks Rajiv for the quick reply.
    I did try local oracle server and there was no issue. And i even tried all kinds of browsers for SQL server and still the same issue.
    And also can you explain a bit more on the these enabling logs
    Also enable your logs like XELLERATE.WEBAPP and GTC related logs like
    Xellerate.GC.StartUp
    Xellerate.GC.ProviderRegistration
    Xellerate.GC.ImageGeneration
    Xellerate.GC.FrameworkProvisioning
    Xellerate.GC.Provider.ProvisioningFormat
    Xellerate.GC.Provider.ProvisioningTransport
    Xellerate.GC.FrameworkReconciliation Xellerate.GC.Provider.Reconciliation
    Format
    Xellerate.GC.Provider.Validation
    Xellerate.GC.Provider.Transformation
    Xellerate.GC.Model
    Xellerate.GC.Server
    I have done it the DBAT. How to do on these?
    Thanks

  • OIM 11g - Email Notification with direct link to Approval Task Details

    Hi,
    We wanted to send email notifications to approver with direct link to the approval task details screen from which the user can either approve or reject the request. In OIM 11g OOTB Notification templates such as Request Creation contains the direct link to Request Detail screen which is something like
    http://localhost:14000/oim/faces/pages/Self.jspx?OP_TYPE=LOOKUP;E_TYPE=MY_REQUEST&T_ID=65
    Wondering if there is something similar for Approval Task Details screen as well.
    Any kind of help or suggestion is greatly appreciated.
    Thanks,
    Deepa

    If at all you cannot get the direct link for approve/reject then try the actionable email from SOA. Once you have that configured the emails gets approver/reject links so that approvers can directly approve/reject the task from email. If that works for you then you can look at the format of those links in the email and deduce what you need the url as.
    HTH,
    BB

  • OIM 11g R2: Setting target attribute dependend on process type (create, update, disable)

    Hi,
    I try to set an attribute ("Action") of users on a target system (Lotus Notes) dependend on the type of process that was carried out:
    When the user is created in Lotus Notes by oim, "Action" should be set to the value "create".
    When the user is updated in Lotus Notes by oim, "Action" should be set to the value "update".
    When the user is disabled in Lotus Notes by oim, "Action" should be set to the value "disable".
    What would be the easiest way to achieve that? And how exactly would I have to set that up? (I have tried reading the documentation on Adapter Tasks, however I wasn't able to get that to working...).
    Thank you!
    M

    Hi J,
    thanks for your reply. I had some troubles trying to follow your description, but this is what I did:
    1) Create one field in your process form as "Action".
    I used the pre-existing field "RoamSubdir"
    2) Create a new Process Task in Lotus Notes Process Defn for "Action Updated" (You can use OOTB adapter for mapping purpose)
    DesignConsole: Process Management > Process Definition > "Lotus User", Add: "RoamSubdir Updated"
    3) Create a new Process Task Adapter which populates which takes input as input1 and return the input.
    Development Tools: Adapter Factory > Adapter Name "RoamSubdirAction", Adapter Type: "Process Task" > Tab "Variable List", Add "Name: input1, Type: String, Mapped As: Resolve at runtime", Tab "Adapter Tasks" > Add "Logic Task", "Set Variable", Variable Name "Adapter return value", Operand Type "Variable", Operand Qualifier "input1"; Click "Build".
    4) Create 3 Process Tasks in Lotus Notes Process Defn . One for each action. For example: Update Action As Enable, Update Action As Disable, Update Action As Create. In each process tasks, pass input as Enable,Disable and Create respectively.
    Process Management > Process Definition > "Lotus User", Add: Task Name: "Update SubRoamdir As create", Tab "Integration", Add, "Adapter", adpROAMSUBDIRACTION. Edit "2|N|input1|input", Map To: Literal, String, create; Edit "1|N|AdapterReturnValue|ReturnVariable", Map To: Process Data, Qualifier: RoamSubdir
    5) Map each tasks created at step 4 to success of Create User, Enable User, Disable user respectively.
    Process Definition > Edit "Create User" > Task Dependency, Dependent Tasks,  Assign "Update RoamSubdir as create"
    However, this does NOT work. When provisioning a new user on Lotus, looking into the resource history I can see that "Update RoamSubdir as create" is NEVER called.
    Did I do something wrong?
    Thanks for your help,
    M

  • OIM 11g - Change 'Modify Self Profile'

    Hi,
    i want to change the access policy for 'modify self profile'
    1. By default there are some attributes (mail, firstname...) which can be modified by a user.
    I want to disable some attributes. How do i modify these access policy?
    2. This access policy 'modify self profile' has by default a request initiated. I think the 'manager' must confirm this request.
    I want, that the user can modify their attribute without a request. No manager must approve a change.
    Is this possible to configur? If so, where are the settings?
    Thanks in advance for helping

    Hi,
    @1: for these attributes is set: Read Only Value = No
    I cannot change this field.
    @2: i will try to edit the templates.
    I did restriction for some attributes, but i still can edit some field.
    For example:
    I did telephonenumber to restricted field: Do not allow users to enter values for this attribute.
    But the user can still edit telephonenumber attribute. A request will created.
    I want, that no request will created. I select for template 'modify self profile' the request template default/DefaultRequestApproval!1.0, but without success
    If request template is blank (no selected) a request will anyway created.
    Edited by: 935899 on Jun 25, 2012 9:57 AM

  • OIM 11g: Access Denied searching usr_emp_no in post process event handler

    I am logging in as xelsysadm and creating a new user. I have populated a UDF called Manager Employee Number with a value of 12345 and I have a corresponding user with the Employee Number populated with that same value.
    When I create the user, my code searches for a corresponding user in OIM with that employee number. The problem is that i am getting an access denied error searching use_emp_no. Ironically, in a different post process event handler, I have access to decrypting the user's password.
    I tried searching by Employee Number rather than use_emp_no (which is what is returned with AttributeName.EMPLOYEE_NUMBER.getId()) but that did not find any users. It did seem to attempt the search though.
    Here is the code and the error:
    //get the manager object and retrieve the user login and user key of the manager
    mgrRetAttrs.add("USER_LOGIN");
    mgrRetAttrs.add("USER_KEY");
    List<User> mgrList = searchUsr(mgrEmpNo, mgrRetAttrs);
    logger.finest("Retrieved " + mgrList.size() + " managers with that employee number.");
    private List<User> searchUsr(String mgrEmpNo, Set<String> mgrRetAttrs) throws AccessDeniedException, UserSearchException{
    logger.finest("************Entering BBTMgrIDPostProcEventHandler#searchUser()***********");
    logger.finest("This is the manager emp no we are searching: " + mgrEmpNo);
    SearchCriteria srchCriteria =
    new SearchCriteria(AttributeName.EMPLOYEE_NUMBER.getId(), mgrEmpNo, SearchCriteria.Operator.EQUAL);
    logger.finest("This is the search criteria: " + srchCriteria.toString());
    logger.finest("Exiting BBTMgrIDPostProcEventHandler#searchUser()");
    return getUserManager().search(srchCriteria, mgrRetAttrs, null);
    private UserManager getUserManager() {
    logger.finest("Enter BBTMgrIDPostProcEventHandler#getUserManager()");
    if (this.userMgr == null) {
    this.userMgr = Platform.getService(UserManager.class);
    logger.finest("Exit BBTMgrIDPostProcEventHandler#getUserManager()");
    return this.userMgr;
    Entering BBTMgrIDPostProcEventHandler#execute()
    oracle.iam.platform.authz.exception.AccessDeniedException: You do not have permission to search the following user attributes: usr_emp_no.
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.search(UserManagerImpl.java:1699)
    at oracle.iam.identity.usermgmt.api.UserManagerEJB.searchx(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 $Proxy328.searchx(Unknown Source)
    at oracle.iam.identity.usermgmt.api.UserManager_nimav7_UserManagerRemoteImpl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
    at oracle.iam.identity.usermgmt.api.UserManager_nimav7_UserManagerRemoteImpl.searchx(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 weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
    at $Proxy196.searchx(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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
    at $Proxy318.searchx(Unknown Source)
    at oracle.iam.identity.usermgmt.api.UserManagerDelegate.search(Unknown Source)
    at com.oracle.iam.bbt.eventhandler.BBTFindMgrID.searchUsr(BBTFindMgrID.java:244)
    at com.oracle.iam.bbt.eventhandler.BBTFindMgrID.executeEvent(BBTFindMgrID.java:189)
    at com.oracle.iam.bbt.eventhandler.BBTFindMgrID.execute(BBTFindMgrID.java:114)
    at oracle.iam.platform.kernel.impl.OrchProcessData.runPostProcessEvents(OrchProcessData.java:1168)
    at oracle.iam.platform.kernel.impl.OrchProcessData.runEvents(OrchProcessData.java:710)
    at oracle.iam.platform.kernel.impl.OrchProcessData.executeEvents(OrchProcessData.java:227)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.resumeProcess(OrchestrationEngineImpl.java:674)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.resumeProcess(OrchestrationEngineImpl.java:705)
    at oracle.iam.platform.kernel.impl.OrhestrationAsyncTask.execute(OrhestrationAsyncTask.java:108)
    at oracle.iam.platform.async.impl.TaskExecutor.executeUnmanagedTask(TaskExecutor.java:100)
    at oracle.iam.platform.async.impl.TaskExecutor.execute(TaskExecutor.java:70)
    at oracle.iam.platform.async.messaging.MessageReceiver.onMessage(MessageReceiver.java:68)
    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.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 $Proxy331.onMessage(Unknown Source)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:574)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:477)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:379)
    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:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: oracle.iam.identity.exception.SearchAttributeAccessDeniedException: You do not have permission to search the following user attributes: usr_emp_no.
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.search(UserManagerImpl.java:1696)
    ... 76 more
    Thanks,
    Ruth

    This is what fixed the problem:
    Instead of the following:
    //get the manager object and retrieve the user login and user key of the manager
    mgrRetAttrs.add("USER_LOGIN");
    mgrRetAttrs.add("USER_KEY");
    I needed to do this instead:
    mgrRetAttrs.add(UserManagerConstants.AttributeName.USER_LOGIN.getId());
    mgrRetAttrs.add(UserManagerConstants.AttributeName.USER_KEY.getId());
    Then I changed the searchCriteria back to the following:
    SearchCriteria srchCriteria =
    new SearchCriteria("Employee Number", "12345", SearchCriteria.Operator.EQUAL);
    This did the trick.
    Ruth

  • Custom tabs under userprofile - resources in OIM 11g

    Currently in OIM 11g user's available resource accounts are shown as a list under resources tab.
    Is there any way we can customize this page to display one more layer of tabs below it, and fliter the resource accounts to be disaplyed under each sub-tab?

    For OIM 11g R2, we don't have any composer and all. You need to understand the OIM UI then you need to proceed with Customization.
    Steps:
    http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/oim/oim_11g/customize_oim_ui_selfservice_tabs/customize_oim_ui_selfservice_tabs.htm
    Pointers: http://docs.oracle.com/cd/E23943_01/doc.1111/e14309/uicust.htm#BABIGCJA

  • How to Deploy the Scheduler Task OIM 11g

    Hi.
    I have deployed the scheduler task in OIM 11g and also I have configured the Scheduler task in OIM Admin Console. The Java Scheduler class was not invoked when I run the Scheduler task.
    I have done the following configuration to develop and deploy the scheduler task in OIM.
    1) Developing the Java Class File.
    package edu.sfsu.oim11g.scheduler;
    import java.util.HashMap;
    import oracle.iam.scheduler.vo.TaskSupport;
    import edu.sfsu.oim11g.logger.SfsuLogger;
    public class SfsuTrustedSourceReconciliation extends TaskSupport {
         //private Logger logger= Logger.getLogger(SfsuTrustedSourceReconciliation.class);
         private SfsuLogger logger= new SfsuLogger("SFSU-LOGGER");
         private String className=this.getClass().getCanonicalName();
         private String methodName="";
         public SfsuTrustedSourceReconciliation() {
              methodName="SfsuTrustedSourceReconciliation";
              debug("SfsuTrustedSourceReconciliation() Called");
         @Override
         public void execute(HashMap arg0) throws Exception {
              // TODO Auto-generated method stub
              methodName="execute";
              debug("SfsuTrustedSourceReconciliation Arguments "+arg0);
         @Override
         public HashMap getAttributes() {
              // TODO Auto-generated method stub
              return null;
         @Override
         public void setAttributes() {
              // TODO Auto-generated method stub
         private void debug(Object message)
              logger.info(className+" : "+methodName+" : "+message);
    2) Custom Scheduler XML File
    This file is located in
    /home/oracle/confg_files/schedulers/db/SfsuTrustedSourceReconciliation.xml
    <scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
         <task>
         <name>SfsuTrustedSourceReconciliation</name>
              <class>edu.sfsu.oim11g.scheduler.SfsuTrustedSourceReconciliation</class>
              <description>Reconciliation IDSync Data</description>
              <retry>5</retry>
              <parameters>
                   <string-param required="true" encrypted="false" helpText="Source Data Source">Source Resource Data Source Name</string-param>
                   <string-param required="true" encrypted="false" helpText="Config Data Source">Config Resource Data Source Name</string-param>
                   <string-param required="true" encrypted="false" helpText="Reconciliation Type is Full Or Cincremental. Default is Incremental">Reconciliation Type</string-param>
                   <number-param required="true" encrypted="false" helpText="Max Records" >Max Records</number-param>
              </parameters>
         </task>
    </scheduledTasks>
    3) Plugin File Configuration.
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="edu.sfsu.oim11g.eventhandlers.SfsuPostProcessEventHandler" version="1.0" name="SfsuPostprocessExtension"/>
    </plugins>
    <plugins pluginpoint="oracle.iam.scheduler.vo.TaskSupport">
    <plugin pluginclass="edu.sfsu.oim11g.scheduler.SfsuTrustedSourceReconciliation" version="1.0" name="SfsuTrustedSourceReconciliation"/>
    </plugins>
    </oimplugins>
    The event handler is successfully deployed and working fine without any issue.
    4) making the scheduler jar file.
    5) Making the scheduler zip with the following directory format.
    plugin.xml
    lib/scheduler.jar
    6) Registering the Schedule task and event handler as a Plugin.
    ant -f pluginregistration.xml register
    7) Importing the SfsuTrustedSourceReconciliation.xml file into the MDS.
    7.1) weblogic.properties
    wls_servername=oim_server1
    application_name=oim
    metadata_from_loc=/home/oracle/configfiles/schedulers
    7.2) Running the weblogicImportMetadata.sh file
    It imported the SfsuTrustedSourceReconciliation.xml file into the MDS Schema and it is available in the MDS_PATH table in MDS schema
    Path_Name : SfsuTrustedSourceReconciliation.xml
    PATH_FULL : /db/SfsuTrustedSourceReconciliation.xml
    8) Imported the EventHandlers.xml file into the MDS Schema.
    9) Run the PurgeCache.sh file
    10) Restarted the OIM Server.
    11) Loggin into the OIM Admin Console and Created the Scheduler job based on the SfsuTrustedSourceReconciliation listed in the scheduler.
    12) Run the Scheduler job and log file entries are not logged into the log file. My Log File Configuration
    <log_handler name='sfsu-handler' level='FINEST' class='oracle.core.ojdl.logging.ODLHandlerFactory'>
    <property name='logreader:' value='off'/>
    <property name='path' value='/u01/app/wl-10.3.5.0/Oracle/Middleware/user_projects/domains/oim_domain/servers/oim_server1/logs/sfsu-connector.log'/>
    <property name='format' value='ODL-Text'/>
    <property name='useThreadName' value='true'/>
    <property name='locale' value='en'/>
    <property name='maxFileSize' value='5242880'/>
    <property name='maxLogSize' value='52428800'/>
    <property name='encoding' value='UTF-8'/>
    </log_handler>
    <logger name="SFSU-LOGGER" level="FINEST" useParentHandlers="false">
    <handler name="sfsu-handler"/>
    <handler name="console-handler"/>
    </logger>
    Is there any special configuration Do i need to do invoke my Scheduler Java Class File.
    Help is Greatly Appreciated.

    Seems like you did it all right but just piece which if you can modify and test. The plugin.xml has two artifacts eventhandler and the schduler. Can you try creating separate plugin.xml with one for the scheduler zipped up with /lib/scheduleClass.jar and test it?
    Just deregister everything before trying it and let us know how it goes.
    Also the logger as I see is a custom logger, so it is extending the OOTB Logger? Just put some sysouts in the code and check for those in the server out file to be sure.
    Edited by: bbagaria on Jul 22, 2011 5:15 PM

  • Modify Disconnected Resource SOA composite to assign tasks to group

    Hi,
    In OIM 11g R2 by default OOTB DisconnectedProvisioning composite assigns tasks to xelsysadm. We are modifying this composite to assign tasks to a group. For this we are updating the business rules as follows.
    IF
    ManualProvisioningTaskPayloadType.appInstanceName contains ("AppInstanceName")
    THEN
    call CreateResourceList(users:null, groups: "AppAdminGrp", approles:null, responseType:ResponseType.Required, ruleName:null, lists:Lists)
    AppAdminGrp is already created in OIM and users are added to the group. Now when provisioning in invoked for the disconnected resource, the task gets assigned to the group. But we want the tasks to be assigned to individual users in the group which is not happening.
    Please suggest me how the business rule should be modified to assign tasks to individual users in group.
    Thanks
    Deepa

    Hi,
    In OIM 11g R2 by default OOTB DisconnectedProvisioning composite assigns tasks to xelsysadm. We are modifying this composite to assign tasks to a group. For this we are updating the business rules as follows.
    IF
    ManualProvisioningTaskPayloadType.appInstanceName contains ("AppInstanceName")
    THEN
    call CreateResourceList(users:null, groups: "AppAdminGrp", approles:null, responseType:ResponseType.Required, ruleName:null, lists:Lists)
    AppAdminGrp is already created in OIM and users are added to the group. Now when provisioning in invoked for the disconnected resource, the task gets assigned to the group. But we want the tasks to be assigned to individual users in the group which is not happening.
    Please suggest me how the business rule should be modified to assign tasks to individual users in group.
    Thanks
    Deepa

  • Create user request from api OIM 11g r2

    Hi,
    I need to read a database and raise a request for creating uses. After  approval the user needs to be created in OIM 11g R2.
    I want to write a scheduled task which will read database columns and rasie a request to create users.
    I dont want to use UnauthenticatedSelfService api.
    Please suggest a way to achive that. any pointer / sample coede / suggestion  is helpful.

    Here are links to creating a request for a role and a resource.  https://java.net/projects/openptk/sources/svn/show/branches/Oracle/OIM11g/examples/java/OIMClient/src/oim/client/request?rev=1402
    I would suggest you start with these and modify the parameters to be for a user.  You will have to try some trial and error to get it working, unless someone already has it available.  And so far, no one who is posting does.  Give it a shot.  You can always create an SR with oracle and ask for assistance.
    -Kevin

  • OIM 11g - Modification of GTC Connector not working

    Hi,
    We're using OIM 11.1.1.5.2, with the 9.1.0.5 Database Application Tables connector.
    Sometime ago we created the connector from the OIM advanced administrative console to run Full Reconciliation, because at that moment the users table did not have a field with the timestamp of the update for each user. Now, we're using a date field that was unused before as the modification date field, we even created a trigger on the target database to make sure all modifications are recorded.
    We went to the OIM advance administrative console again, manage connector, searched for our connector, then "Edit Parameters" and changed the "Timestamp Attribute" attribute to the date field, and we changed "Reconciliation Type" to "Incremental" on the same page. After that we saved the changes and the compilation of the connector ended without errors. I'm pretty sure it was modified because i had to re attach all prepopulate adapters and create are custom process task...
    The problem is, we ran the reconciliation after that, and it still runs the full recon. OIM still generates events for all users. Is there anything else we should do to change the reconciliation type? Are there any files needed to be edited or any table or lookup to make sure it changed? I couldn't find the place were the reconciliation query is kept for this connector.
    Thanks.

    Anyone's got any idea? I'll be happy with finding out which table or xml on the mds keeps the connector parameters, i know it has to get it somewhere because i doubt it is hardcoded on the jar when i create the connector.
    But i still can't find the place were they're stored, and even though i can see the timestamp attribute on the edit connector page, when i run the recon, the incrementalReconAttribute is null.
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: driver - Value: oracle.jdbc.driver.OracleDriver
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: url - Value: jdbc:oracle:thin:@idmgr11g:1521:mrdb
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: username - Value: test1
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: password - Value: *******
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: customizedQueries - Value:
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: useNativeQuery - Value: false
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: parentContainerName - Value: TEST1
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/convertCSVToArraylist entered.
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/convertCSVToArraylist: providerParams: TEST2
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/convertCSVToArraylist left.
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: childContainerTableNames - Value: [TEST2]
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: parentContainerUniqueKey - Value:
    *APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: incrementalReconAttribute - Value:*
    APP: oim#11.1.1.3.0] [SRC_METHOD: debug] Class/Method: DBReconTransportProvider/initialize - Data: dbDateFormat - Value: yyyy/MM/dd HH:mm:ss z

  • Schedule task - manager updation for user in oim 11g

    Hi,
    I am in the way of writing a custom schedule task to update manager for the user created in oim.
    I know the procedure of custom scedule task
    I want the code snipet to be written in the execute() method of java class to update the manager for the user
    Could anybody help me with this!

    Hi Gyanprakash,
    How will you retrieve the user detail ..?? i am getting null pointer exception error
    public void execute(HashMap taskParameters) {
    System.out.println("inside the Execute methode");
    System.out.println("Schedule task Arguments "+taskParameters);
    String userId = (String)taskParameters.get("User Login");
    System.out.println("===========input=============== "+userId);
    String passwordex=taskParameters.get("usr_pwd_expire_date").toString();
    System.out.println("===========input=============== "+passwordex);
    String passwordwar=taskParameters.get("usr_pwd_warn_date").toString();
    System.out.println("===========input=============== "+passwordwar);
    Thanks,
    Edited by: Srivatsa.kashyap on May 25, 2012 6:00 AM

  • Process tasks of "Xellerate User"'s  modified

    Hi Experts,
    In our env, Maapng info of all custom process tasks was updated to unmapped. Its happend for only Xellerate User resource object. we dont know, how it happend. Can ay one tell, any reason behind it. Last change in OIM is, installation of RACF connector into OIM. How ever, we are not sure, is this effects the Xellerate user's process task's adapter mapping information.
    Please suggest.
    Thanks,
    ravi.

    Hi Kevin,
    Yes, It was unmapped, We are looking for root cause of it. You meant to say, This unmapped thing was happend due to RACF connector installation?.
    Thanks.

Maybe you are looking for

  • "...does not support this type of alias."

    I just reinstalled the OS 10.4 onto my G5 using the erase and install function. The drive is formatted as a Mac OS Extended (Journaled), which is an HFS+ format. I'm trying to copy some files onto the main hard drive from a DVD. I keep getting an err

  • Report name for services where used in task lists

    plz let me know report name for services  where used in task lists.

  • Data sync to external SQL from Access Web App

    Hi all Am I dreaming or does creating a table in an Access Web app based on an external SQL Azure database table (not the intrinsic one) end up being an import not a sync?  It doesn't even seem to update when i open the external table and refresh it?

  • Is it possible to store your itunes library in two separate locations?

    I currently have my entire iTunes library on a My Passport external hard-drive but I would also like to store my iTunes library on a separate My Book external hard-drive. The My Book is 2TB and I essentially wanted to store the movies on that externa

  • How to repair corrupted PDF-File  ?

    Hi there ! I am having problems with a couple of PDF-files which got damaged due to a hard drive break down / file recovery action. Neither can i open them ("...not supported") nor have several attempts in repairing them (by using Pdf-repair software