OIM 11g: Event Handler "Data Object"

Is there any way in the OIM 11g Users event handler model (pre-insert) to get a "data object" type structure of the column names and values which will be inserted into the database (i.e USR_FIRST_NAME = "John"). This would be similar to what the legacy 9.1x event handler model provided via the getDataObject() method.
I know how to get the data from the orchestration parameters, but for our requirements we need the data to be keyed by database column name ("USR_FIRST_NAME") and not field name as in the orchestration params ("First Name").
OIM must do this conversion at some point (field name -> database column name). Can we somehow leverage this same function?
Thanks.

You can accomplish through if statements in your event handler to check for the attributes that determine the logic. For example, if your user's last name changes, you can check the orchestration.getParameters() to see if it contains a key for "UserManagerConstants.AttributeName.LAST_NAME.getId()" and if it does, then perform your logic to update the user.
You could also come up with a lookup that can be referenced for these and have your own custom java code that outputs information based on the values in the lookup. Just think creatively and anything is possible.
Or you can get a connection to the database, and have a constants file that translates the metadata names back to database fields and continue to use your existing code.
Lots of options.
-Kevin

Similar Messages

  • OIM 11g: Event Handler Packaging/Deployment

    Need some advice/guidance on best practices for packaging/deploying Event Handlers in OIM 11g.
    In our OIM 9.1 environment, we organized all of our custom code by "functional area" so we have JAR's named oim-common.jar, oim-ad.jar, oim-oid.jar, etc. Within each one of these JAR's we have all adapter code, scheduled tasks, and 10g event handlers related to that area. This approach was done to promote code reuse and make unit testing easier.
    From what I've read on 11g Event Handlers, it sounds like each event handler needs to be packaged as a plugin along with it's own JAR so that we'd have one JAR per event handler. So, if we have 100 event handlers, we'd need 100 JAR's? Is this required or can our plugin ZIP files just contain the XML definitions as long as the referenced classes are on the classpath?

    Gyanprakash Pandey wrote:
    You should have a separate plugin package for each event handler. Practically we should have number of event-handlers as less as possible. If there are more event-handlers we must modify the design as event handler cause performance issues.
    Regards,
    GPHi Gyanprakash,
    I'm going to use event handlers in my project, so I'm interested very much in hearing about the performance issues.
    Besides, I do not see why I shall package every handler separately. Is this intended behavior or because of some bugs in OIM?
    Regards,
    Vladimir

  • OIM 11g R1: Exporting data object permissions

    Hi all,
    Does anyone know if there is anyway to export/import data object permissions on roles?
    They don't seem to be exported with the role, or with role and organization metadata. Have I missed something?
    Thanks!

    What kind of DataObject permissions are you exporting ?
    Permissions are always associated with some OIM Components. When you export that component then it will be exported Automatically.

  • OIM 10g Event Handler : Integrated with User Groups.User Members

    I have created custom event handler and integrated it with User Groups.User Members data object.
    here is my code od event handler class:
    public class GroupEventHandler extends tcBaseEvent {
         public GroupEventHandler() {
              this.setEventName("Event Handler Sample");
         protected void implementation() throws Exception {
              System.out.println("============@@@@@@@@ IN EVENT HANDLER ");
              try
              String groupKey = this.getDataObject().getString("Groups.Key");
              writeToFile(groupKey);
              catch (Exception e)
                   e.printStackTrace();
    But I am getting this exception :
    ERROR [ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.SERVER - Class/Method: tcTableDataObj/getString encounter some problems: Column 'GROUPS.KEY' not found
    com.thortech.xl.dataaccess.tcDataSetException: Column 'GROUPS.KEY' not found
         at com.thortech.xl.dataaccess.tcDataSet.getColumnIndex(Unknown Source)
         at com.thortech.xl.dataaccess.tcDataSet.getString(Unknown Source)
         at com.thortech.xl.dataobj.tcTableDataObj.getString(Unknown Source)
         at oim.GroupEventHandler.implementation(GroupEventHandler.java:19)
         at com.thortech.xl.client.events.tcBaseEvent.run(Unknown Source)
         at com.thortech.xl.dataobj.tcDataObj.runEvent(Unknown Source)
         at com.thortech.xl.dataobj.tcDataObj.eventPostInsert(Unknown Source)
         at com.thortech.xl.dataobj.tcUSG.eventPostInsert(Unknown Source)
         at com.thortech.xl.dataobj.tcDataObj.insert(Unknown Source)
         at com.thortech.xl.dataobj.tcDataObj.save(Unknown Source)
         at com.thortech.xl.dataobj.tcTableDataObj.save(Unknown Source)
         at com.thortech.xl.ejb.beansimpl.tcGroupOperationsBean.addMemberUsers(Unknown Source)
         at com.thortech.xl.ejb.beans.tcGroupOperationsSession.addMemberUsers(Unknown Source)
         at com.thortech.xl.ejb.beans.tcGroupOperations_ejm77u_EOImpl.addMemberUsers(tcGroupOperations_ejm77u_EOImpl.java:1671)
         at Thor.API.Operations.tcGroupOperationsClient.addMemberUsers(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 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 $Proxy66.addMemberUsers(Unknown Source)
         at com.thortech.xl.webclient.actions.UserGroupMembersAction.assignMemberUsers(Unknown Source)
         at com.thortech.xl.webclient.actions.UserGroupMembersAction.assignGroupMembers(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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
         at com.thortech.xl.webclient.actions.tcLookupDispatchAction.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcActionBase.execute(Unknown Source)
         at com.thortech.xl.webclient.actions.tcAction.execute(Unknown Source)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at com.thortech.xl.webclient.security.SecurityFilter.doFilter(Unknown Source)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)

    Anyone have idea about why "Groups.Key" not found exception thrown here..
    I have assigned this event handler at postinsert event of User Groups.User Members Data Object.

  • Event handling in objects

    hello friends,
                        i want to use the event RAISE_LINK_CLICK for single click.
    but i dont want 2 use this event for alv table.
                       i am displaying vendor name in my top of page,if the user click of the vendor name a new window should pop-up displaying the vendor details.
            my code for top of page is
                      DATA: lr_grid TYPE REF TO cl_salv_form_layout_grid,
              lr_grid_1 TYPE REF TO cl_salv_form_layout_grid,
              lr_flow TYPE REF TO cl_salv_form_layout_flow,
              lr_label TYPE REF TO cl_salv_form_label,
              lr_text TYPE REF TO cl_salv_form_text,
              l_text TYPE string.
        CREATE OBJECT lr_grid.
        lr_grid_1 = lr_grid->create_grid( row = 1 column = 1 ).
        lr_text = lr_grid_1->create_text( row = 1 column = 1 colspan = 2 text = <b>vendor_name</b> ).
        lr_grid_1 = lr_grid->create_grid( row = 2 column = 1 ).
        lr_flow = lr_grid_1->create_flow( row = 2 column = 1 ).
        lr_text = lr_flow->create_text( text = 'Reconcillation Statement'(t02) tooltip = 'Reconcillation Statement'(t02) ).
        alv->set_top_of_list( lr_grid ).
            do uc the VENDOR NAME in bold,wen the user clicks on it the pop should appear.
            so how to use the event RAISE_LINK_CLICK for this purpose,or is there another way through

    hello friends,
                        i want to use the event RAISE_LINK_CLICK for single click.
    but i dont want 2 use this event for alv table.
                       i am displaying vendor name in my top of page,if the user click of the vendor name a new window should pop-up displaying the vendor details.
            my code for top of page is
                      DATA: lr_grid TYPE REF TO cl_salv_form_layout_grid,
              lr_grid_1 TYPE REF TO cl_salv_form_layout_grid,
              lr_flow TYPE REF TO cl_salv_form_layout_flow,
              lr_label TYPE REF TO cl_salv_form_label,
              lr_text TYPE REF TO cl_salv_form_text,
              l_text TYPE string.
        CREATE OBJECT lr_grid.
        lr_grid_1 = lr_grid->create_grid( row = 1 column = 1 ).
        lr_text = lr_grid_1->create_text( row = 1 column = 1 colspan = 2 text = <b>vendor_name</b> ).
        lr_grid_1 = lr_grid->create_grid( row = 2 column = 1 ).
        lr_flow = lr_grid_1->create_flow( row = 2 column = 1 ).
        lr_text = lr_flow->create_text( text = 'Reconcillation Statement'(t02) tooltip = 'Reconcillation Statement'(t02) ).
        alv->set_top_of_list( lr_grid ).
            do uc the VENDOR NAME in bold,wen the user clicks on it the pop should appear.
            so how to use the event RAISE_LINK_CLICK for this purpose,or is there another way through

  • OIM 11g: Event Handlers/Plugins Classpath

    We have a number of custom utility libraries that we use for OIM development which are currently uploaded to the OIM database OIMHOME_JARS table.
    Ideally, we'd like to reference classes from these JARs in our plugins/event handlers. During initial testing, it looks like the plugin code doesn't consider the uploaded JARs and we get a bunch of NoClassDefFoundError errors.
    Is there no way to get the plugin code to be able to use the uploaded utilities? or is the solution to also deploy the utility JARs within the plugin zip file itself (not ideal).
    Thanks.

    Not always true. In most of the cases you would find that it reads the helper jars from within the lib directory inside the plugin but in some special cases it does't behave that simple.
    UploadJars definitely doesn't work. I had to put the jar in the weblogic startup script to set classpath for this to work. This script is *<domain_home\bin\setDomainEnv.cmd\>*
    So its a bit dubious.

  • OIM 11g R2 -Request Data

    Hi,
    We have users being reconciled from a flat file and we have a post eventhandler that raise a resource request (AD, Exchange) for all the users being on-boarded. Now the requester is coming in as OIMINTERNAL instead of the user, where should we change in OIM to say the actual requester is the user instead of OIMINTERNAL?//
    Thanks.

    It seems that you are using Platform.getService to get RequestService. It will give you OIMINTERNAL only.
    If you want to use some other user then you'll have to use external method to get UtilityFactory or Request Service i.e. PrivateKey, UserName/Password etc but that is not recommended.

  • OIM 11g LDAP sync from different LDAP containers

    Hi,
    I have been setting up OIM 11g R2 (11.1.2) to use LDAP Sync to OID.
    As of now the sync works (both ways) for this container:
    cn=users,cn=oracleAccounts,dc=mycompany,dc=com (configured while doing the OIM config)
    Would it be possible to sync users in other containers as well? For example:
    cn=users,cn=otherAccounts,dc=mycompany,dc=com
    cn=users,cn=moreAccounts,dc=Otherstuff,dc=com
    By editing the file LDAPContainerRules.xml I can setup where the users are created when I create them through IDM.
    But that will not make the sync work for those containers.
    Any ideas where I should start to accomplish the above?
    Thanks & Regards,
    Henrik

    Okay, I think I have found an answer to how to sync users from different OU:s in my OID to different OIM organizations.
    Hopefully this will help others.
    We can use a PostProcess Event handler like this:
    1. Implement the method --> public BulkEventResult execute()
    This is used during recon actions.
    2. Get the user hashmap with attributes and set the "act_key" value with the OIM organizations ID.
    You also needs to build the logic to fetch the users "LDAP DN", which is also fetched from the map.
    From that attribute we can decide which Organization to put the user in.
    This is the best solution we have found yet..
    Docs & tips:
    http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/oper.htm#CCHFBGAA
    http://fusionsecurity.blogspot.se/2011/09/oim-11g-event-handler-example.html (thank you Daniel Gralewski)
    Regards,
    Henrik

  • Get IT Resouce  details in OIM 11g class

    Hi All,
    I'm new to OIM 11g and I need to get IT Resource Details in event handler code.In Earlier oim 9x version,I used to get this by using
    Hashtable hashtable = tcUtilXellerateOperations.getITAssetProperties(dataProvider, itResourceName);
    Same need to know in OIM 11g
    one more doubt,In oim 11g assets Event hanlder xml is like below and Postprocess-hanlder defined.
    <?xml version='1.0' encoding='UTF-8'?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
    *<postprocess-handler* class="oracle.iam.assets.eventhandlers.ContractorIDPostProcEventHandler" entity-type="User" operation="CREATE" name="ContractorIDPostProcEventHandler" stage="postprocess" sync="TRUE" order="100"/>
    </eventhandlers>
    in a blog http://fusionsecurity.blogspot.in/2011/09/oim-11g-event-handler-example.html, action-handler mentioned.
    <?xml version="1.0" encoding="UTF-8"?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
    *<action-handler* class="oracle.iam.demo.eventhandlers.UserDirectorEventHandler" entity-type="User" operation="CREATE" name="UserDirectorUpdate" stage="postprocess" order="1000" sync="FALSE"/>
    </eventhandlers>
    Which one we need to use while developing event handler.
    Thanks in advance
    Regards,
    Krish

    I'm new to OIM 11g and I need to get IT Resource Details in event handler code.In Earlier oim 9x version,I used to get this by using
    Hashtable hashtable = tcUtilXellerateOperations.getITAssetProperties(dataProvider, itResourceName);
    Same need to know in OIM 11gThis might help
    Thor.API.Operations.tcITResourceInstanceOperationsIntf itr = Platform.getService(Thor.API.Operations.tcITResourceInstanceOperationsIntf.class);
    HashMap hashmap = new HashMap();
    hashmap.put("IT Resources.Name", itresourcename);
    tcResultSet rss = itr.findITResourceInstances(hashmap);
    Long ll = rss.getLongValue("IT Resource.Key");
    System.out.println("IT Resource key***************** "+ ll);
    tcResultSet itResourceParams = itr.getITResourceInstanceParameters(ll);
    int count = itResourceParams.getRowCount();
    for(int i=0; i<count; i++)
    itResourceParams.goToRow(i);
    System.out.println("Parameter Name:::::: "+ itResourceParams.getStringValue("IT Resources Type Parameter.Name"));
    System.out.println("Parameter Value:::::: "+ itResourceParams.getStringValue("IT Resource.Parameter.Value"));
    //Compare the IT Resource parameter name and get the parameter value

  • How to Deploy the Event Handlers OIM 11g

    Hi
    I have developed the code for post process event handler using OIM 11 G API. The OIM not invoking the EventHandlers while updating the users attribute or creating the users attribute.
    I have done the following task to develop and deploy the OIM 11g Event handlers. They are
    1) Implementing the PostProcessHandler interface and provide the implementation of execute method.
    Sample Class
    public class SamplePostProcessEventHandler implements PostProcessHandler {
         private Logger logger=Logger.getLogger("TEST-LOGGER");
         public SfsuPostProcessEventHandler()
              logger.debug("Invoking Event Handler Plugin");
         @Override
         public boolean cancel(long arg0, long arg1,
                   AbstractGenericOrchestration arg2) {
              // TODO Auto-generated method stub
              return false;
         @Override
         public void compensate(long arg0, long arg1,
                   AbstractGenericOrchestration arg2) {
              // TODO Auto-generated method stub
         @Override
         public EventResult execute(long processid, long eventid, Orchestration orchestration) {
              // TODO Auto-generated method stub
              logger.debug("Operation "+orchestration.getOperation());
              logger.debug("Parameters "+orchestration.getInterEventData());
              logger.debug("Parameters "+orchestration.getParameters());
              EventResult result=new EventResult();
              return result;
         @Override
         public BulkEventResult execute(long arg0, long arg1, BulkOrchestration arg2) {
              // TODO Auto-generated method stub
              return null;
         @Override
         public void initialize(HashMap<String, String> arg0) {
              // TODO Auto-generated method stub
    2) Create the Jar File SamplePostProcessEventHandler.jar
    3) Create the Plugin.xml file
    Sample File
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="test.eventhandlers.SamplePostProcessEventHandler" version="1.0" name="SamplePostProcessEventHandler">
    </plugin>
    </plugins>
    </oimplugins>
    4) Create the directory lib and copy the SamplePostProcessEventHandler.jar file into this directory
    5) Creating the Zip file with the following directory structure.
    plugin.xml
    lib/SamplePostProcessEventHandler.jar
    6) Register the plugin
    ant -f pluginregistration.xml register
    7) Creating the Custom Events xml file called EventHandlers.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <eventhandlers>
    <action-handler class="test.eventhandlers.SamplePostProcessEventHandler" entity-type="User" operation="CREATE" name="SamplePostProcessEventHandler" stage="postprocess" order="LAST" sync="TRUE"/>
    <action-handler class="test.eventhandlers.SamplePostProcessEventHandler" entity-type="User" operation="MODIFY" name="SamplePostProcessEventHandler" stage="postprocess" order="LAST" sync="TRUE"/>
    </eventhandlers>
    8) Importing the Above XML into the MDS Schema Using the weblogicImportMetadata.sh file
    Directory Structure of the Event Handler Schema File
    /home/oracle/eventhandler/db/EventHandlers.xml
    weblogic.properties file parameters
    wls_servername=oim_server1
    application_name=oim
    metadata_from_loc=/home/oracle/eventhandler
    9) Finnally Running the PurgeCache.sh All
    10) Restarted the OIM Server.
    11) Testing
    I have logged into the OIM Admin Console >> Search the User > Update the First Name. The event handlers are not invoked any create or update operation. I am not able to see the log entries into the log file.
    My Log Entry Configuration.
    log File Configuration :
    /u01/app/wl-10.3.5.0/Oracle/Middleware/user_projects/domains/oim_domain/config/fmwconfig/servers/oim_server1/logging.xml
    <log_handler name='test-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/test-event.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'/>
    <logger name="TEST-LOGGER" level="FINEST" useParentHandlers="false">
    <handler name="test-handler"/>
    <handler name="console-handler"/>
    </logger>
    Is there anything is missing while deploying the event handlers.
    Help is Greatly appreciated.

    Change as per the following :
    1. Put the event hander in the /home/oracle/eventhandler /metadata/metadata directory and
    2. Change the following in the weblogic properties
    application_name=OIMMetadata
    metadata_from_loc to =/home/oracle/eventhandler/metadata
    This will work.

  • Can  DISABLE preProcess Event Handler add to the Orchestration parameters?

    I have a DISABLE pre-process event handler defined on the User object. I need to set the current date on a USR UDF attribute whenever the user is disabled or enabled or created. The CREATE handler works and the date value shows up on the user profile. However, when I try to set this attribute on the pre-process DISABLE or ENABLE event handlers, the new date does not show up. Here is the code I am using in my DISABLE/ENABLE event handler:
    Date currentTime = new Date(System.currentTimeMillis());
    orchestration.addParameter(USER_STATUS_DATETIME_ATTR_NAME, currentTime);
    Where the orchestration object is from the execute() parameter list.
    Any ideas as to why this is not working? Is adding to the orchestration not allowed for DISABLE or ENABLE event handlers? I know my handler is getting calls as I am logging the orchestration.getOperation() value.
    Thanks for any suggestions.
    -Dave
    Edited by: user552098 on Nov 12, 2012 1:56 PM

    When you update the field, make sure you are using the field label name, and not the UDF value.
    -Kevin

  • OIM 11g Entity Adapters

    Hi all,
    I have developed an Entity Adapter using Oracle Identity Manager Design Console which generates different account user ids against a user defined field on Process Form.
    Here I'll provide more details about my scenario.
    SCENARIO*
    a. OIM version: 11.1.1.5.0
    b. Process Form fields (Siebel Process Form):
    - User ID
    - First Name
    - Last Name
    .... [any other out of the box Siebel Connector field]
    - Anonymous Flag (this is a user defined field on Siebel Process Form)
    c. Entity Adapter
    - this adapter has an input variable which is Process Form user defined field "+Anonymous Flag+"
    - if "+Anonymous Flag+" is checked (true) then the adapter sets the return value to "*Anonymous*"
    - else if "+Anonymous Flag+" is uncheked (false) then the adapter sets the return value to "*NOT Anonymous*"
    - the adapter return variable is mapped to Process Form "+User ID+"
    - NOTE: the adapter return values are only for testing pourpose. In the future, the adapter should return two different syntax for User ID.
    For example in case of Anonymous Flag checked, account User ID should be +<surname>+ + "+_+" + +<name>+ + +<random_number>+; while in case of Anonymous Flag unchecked, account User ID should be <+company_name+> + <+random_number+>
    d. Access Policies
    - an access policy "+AP_for_Anonymous+" linked with a role "+ROLE_for_Anonymous+" that sets "+Anonymous Flag+" to checked (true)
    - an access policy "+AP_for_NOT_Anonymous+" linked with a role "+ROLE_for_NON_Anonymous+" that sets "+Anonymous Flag+" to unchecked (false)
    RESULTS*
    Assigning one of roles "+ROLE_for_Anonymous+" or "+ROLE_for_NON_Anonymous+", on Process Form, user defined field "+Anonymous Flag+" is valorized correctly, but Entity Adapter doesn't seems to work. In fact Process Form User ID remains empty.
    QUESTIONS*
    1. Are Entity Adapters associated with accounts supported in OIM 11g? I found a couple of posts that assert that Entity Adapters don't exist in OIM 11g (Event handlers are not getting invoked in oim 11g. or that state Entity Adapters are not supported with the User Form (Issue in adapters mapping in OIM 11g About this I found Entity Adapter Oracle documentation (http://docs.oracle.com/cd/E21764_01/doc.1111/e14309/creadp.htm#BABDHECI)
    2. If Entity Adapters are not applicabile to my scenario, can I use Event Handlers? If yes, what are the entity types that I can specify in event handler metadata xml file? For "event handler metadata xml file" I mean the following
    <action-handler class="com.test.sample" entity-type=????? operation="CREATE" name="Sample" stage="postprocess" order="1007" sync="TRUE"/>3. If Entity Adapters are not applicabile to my scenario, what are the operations that I can specify in event handler metadata xml file?
    Thank for your help,
    Daniele

    Entity Adapter still exist in 11g. Yes, you can use Event Handler .
    But why don't you use Process task/prepopulate adapter for your scenario. Try below
    1. You have some condition on which role is assigned. Based on same condition populate this Anonymous/ Not Anonymous(true/false) at user profile.
    2. write a pre-populate adapter to generate User ID. pass parameters Anonymous flag along with other user profile attribute(first name, last name..etc.) . Here based on flag you will be able to decide User ID.
    3. attach this pre-populate with process form.
    4. already you have two access policy which is fine. just edit both and remove the Anonymous flag value else can leave it as it is.
    Note: for populating Anonymous flag on user profile create a new UDF and try to populate in trusted recon.else write post process event handler for same which will execute before access policy. I mean the order of evethandler should be between 1003 to 1008
    If you have doubt let me know
    --nayan                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Creating approver only field in OIM 11g R2

    Hi,
    I need to create some fields in OIM 11g R2 request data set, so that those field will be visible only to approvers and they can only enter the data into it.
    In 11g R1 I know how to create those field, but I don't know how to create the same type of field in OIM 11g R2.
    Please help

    Hi ,
    Thanks for your reply .. I am able to understand the scenario what you are trying to explain .. I tried to do the same ...but in my scenario ,this is the problem that I am facing ..
    1)When a user modifies only his First Name then it works fine and gets auto approved .
    2)When a user modifies only his Last Name then it works fine and goes for approval and waits till it gets approved.
    3)Now the problem is when a user modifies both his First Name and Last Name and submits as a single request , how to handle this ? In this case the First Name should get committed and the Last Name should not get committed .. But he has submitted only a single request .. so how to handle this scenario ?How to divide a single request into two to commit one attribute and not commit another one ?

  • Events in Abap Objects

    What are events. how to create and handle this events.

    HI,
    By triggering an event, an object or a class announces a change of state, or that a certain state has been achieved.Events link objects or classes more loosely than direct method calls do. Method calls establish precisely when and in which statement sequence the method is called. However, with events, the reaction of the object to the event is determined by the triggering of the event itself.
    Events are most often used in GUI implementations.Other external object models, such as COM, ActiveX Controls etc, also provide events.
    At the moment of implementation, a class defines its instance events (using the statement EVENTS) and static events (using the statement CLASS-EVENTS)
    Classes or their instances that receive a message when an event is triggered at runtime and want to react to this event define event handler methods.
    Statement : (CLASS-)METHODS  | FOR ALL INSTANCES.
    Every object that has defined events has an internal table: the handler table. All objects that have registered for events are entered in this table together with their event handler methods.Objects that have registered themselves for an event that is still “live” also remain “live”. The methods of these objects are called when the event is triggered, even if they can no longer be reached using main memory references.
    If several objects have registered themselves for an event, then the sequence in which the event handler methods are called is not defined, that is, there is no guaranteed algorithm for the sequence in which the event handler methods are called.
    If a new event handler is registered in an event handler method for an event that has just been triggered, then this event handler is added to the end of the sequence and is then also executed when its turn comes.
    If an existing event handler is deregistered in an event handler method, then this handler is deleted from the event handler method sequence.
    Events are also subject to the visibility concept and can therefore be either public, protected or private. Visibility establishes authorization for event handling :
         all users
         only users within that class or its subclasses
         only users in that class.
    Event handler methods also have visibility characteristics. Event handler methods, however, can only have the same visibility or more restricted visibility than the events they refer to.
    The visibility of event handler methods establishes authorization for SET-HANDLER statements: SET HANDLER statements can be made
         anywhere
         in that class and its subclasses
         only in that class
    Regards,
    Balaji Reddy G
    **Rewards if answers are useful

  • Event Handler Error while Creating User

    Hi,
    I am not able to create users in OIM 11gR1 - " Event handler DemoNotificationEventResolver implemented using class/plug-in nrma.DemoNotificationEventResolver could not be loaded."
    I have deleted this plugin from the "plugins" table in the database. What else am I supposed to do?

    Hi,
    I have deleted it from the MDS Schema. Now I am getting a different error.
    <Dec 20, 2012 5:24:57 PM EST> <Error> <oracle.iam.identity.usermgmt.impl> <IAM-3050030> <An exception occurred while performing the operation.
    java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key IAM-301094
    at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
    at java.util.ResourceBundle.getObject(ResourceBundle.java:371)
    at java.util.ResourceBundle.getObject(ResourceBundle.java:371)
    at java.util.ResourceBundle.getObject(ResourceBundle.java:371)
    at java.util.ResourceBundle.getString(ResourceBundle.java:334)
    at oracle.iam.ldapsync.impl.util.LDAPSyncUtil.createValidationFailedException(LDAPSyncUtil.java:700)
    at oracle.iam.ldapsync.impl.util.LDAPSyncUtil.generateAndValidateRDN(LDAPSyncUtil.java:824)
    at oracle.iam.ldapsync.impl.eventhandlers.user.RDNPreProcessHandler.execute(RDNPreProcessHandler.java:68)
    at oracle.iam.platform.kernel.impl.OrchProcessData.runPreProcessEvents(OrchProcessData.java:898)
    at oracle.iam.platform.kernel.impl.OrchProcessData.runEvents(OrchProcessData.java:634)
    at oracle.iam.platform.kernel.impl.OrchProcessData.executeEvents(OrchProcessData.java:227)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.resumeProcess(OrchestrationEngineImpl.java:664)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.process(OrchestrationEngineImpl.java:435)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.orchestrate(OrchestrationEngineImpl.java:381)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.orchestrate(OrchestrationEngineImpl.java:334)
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.create(UserManagerImpl.java:653)
    at oracle.iam.identity.usermgmt.api.UserManagerEJB.createx(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)

Maybe you are looking for

  • Cannot locate Java class oracle.tip.adapter.db.DBWriteInteractionSpec

    I have created a BPEL process in which i have used DB Adapter when i try to deploy the soa suite coposite i am getting the following error. [09:36:10 PM] Error deploying archive sca_TicketBooking_rev1.0.jar to partition "default" on server soa_server

  • Do I need to tune the base query of my materialized view ?

    Hi gurus, We implement materialized view (FAST REFRESH ON COMMIT) on base table used in OLTP system. In fact the MV itself is also queried by the OLTP system itself, interactively. Currently user complain that after they input transaction, they see t

  • System calls in Java

    Any suggestions how one would perform a UNIX call inside a C++ or Java program? Student who needs help.

  • Is it possible to enable Subpixel rendering on iPad Mini?

    Hi, is it possible to enable Subpixel rendering of text on the iPad mini?  That would make text easier to read at small sizes. http://en.wikipedia.org/wiki/Subpixel_rendering

  • Help with my rotate code

    Im having trouble getting my rotate code to work. I load an swf into a movieClip and I want to attach a movieClip that contains my rotation code.but I think I have tomany on press functions going on. I don't understand what I am doing wrong. Can some