10 Replies Latest reply: Apr 10, 2013 9:49 AM by Fabio Luna RSS

    pre populate adapter in OIM 11gr2 not triggered in database

      Folowing is the steps for creation of pre populated adapter in OIM
      ** we have created one form in OIM which is provisioned to Database**
      · Installed GTC connector for Database Web App 9.*
      · Created new user and Table in Database
      · Created IT resource for Database
      · Created Sandbox, App Instance and Form, published sandbox
      · Started catalog synchronization job scheduler
      · Created user and and request account to app instance.
      * select application instance to catalog and checkout.

      ** we have created adapter as per the following link
      create a pre populated adapter that will populate the firstname of user in email using java class
      source code:
      public class AdapterClass{

      public String email( String fname )
      return fname;



      1) In the design console I have open the Adapter Factory and create a new adapter name :firstname
      adapter type: pre-populate rule generator
      click on save
      2) select variable list tab:
      variable name:Firstname
      Map to : Resolve at runtime
      click on save
      3) select Adapter Task tab
      * click add and select logical task
      * select SET VARIABLE and click continue
      * Operand Type:variable
      * Operand Qualifier : FIrstname
      click save and save the adapter
      4) compile the java class into jar file and move the jar file into OIM_HOME\server\JavaTasks
      5)Create a new Adapter with the following"
      Adapter name:Email
      Adapter type: Pre-populate rule Generator
      click save
      6) select variable list tab:
      variable name: var1
      Map to:Resolve at runtime and click save
      7) select Functional Task tab:"
      select java click continue
      select the following information:
      Task name:email
      Api source: JavataskJar:Adapterclass.jar( the jar file which you have create)
      application api: adapteclass
      click save
      8) In the Application method parameters,select the first input: String
      Cange Map to:Adapter variables
      Set the name to:var1 and click save
      9) select the output:STring
      change map to:Adapter variables
      set name to: return variable
      10) click save and save the adapter and click on Build
      Adapter is now build the next step isto join it to the form

      ** join the adapter to the form**

      1) click on form designer and search the related form which we have created
      2) In the respective form click on create a new version and create a new version
      3) and then click on Pre populate tab and click on ADD
      4)select adapter field to firstname
      Rule : default
      Adapter : Firstname
      and click on save
      5) In the adapter variable field click on firstname and fill the following
      map to: Process data
      Qualifier : firstname
      6) Repeat steps 3 to 5 to map the email adapter
      7) click on save.

      Now we have done with all the steps and now we have created one User submit the user
      we have click on request acounts ---> search the catalog and select the application instance (select the app instance "database provisioning") ---> add to cart ---> and check out ---> fill the form leaving email field --> ready to submit ---> submit

      now we have check this user in database but still pre populated fields are not reflected. since this not working so we have found the other three links

      Re: OIM 11gR2 - Prepopulate Field Empty Problem



      according to these links they mention to implements the prepopulationadapter interface into the java class and create the plugin.xml for the class which we have used in jar.
      so we prepared a plugin.xml
      <?xml version="1.0" encoding="UTF-8" ?>
      <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <plugins pluginpoint="oracle.iam.request.plugins.PrePopulationAdapter">
      <plugin pluginclass= "com.oracle.demo.iam.prepop.plugin.UserLoginPrePop" version="1.0" name="UserLoginPrePop">
      <metadata name="PrePopulationAdapater">
      <value> My_users::email</value>
      and the java class which implements "PrePopulationAdapter".

      they mention to put that jar into one directory named "lib"and paste the xml and lib folder into the OIM_HOME\server\plugin

      BUt we stuck on how to configure the adapter or what is the next steps for the above process. or there is something that we have missed in the process
      please do reply its urgent

      Tushar Palekar
        • 1. Re: pre populate adapter in OIM 11gr2 not triggered in database
          Use plug-in registration utility and register your plugin instead of pasting the xml and lib folder into the OIM_HOME\server\plugin.

          Before that create a directory in which u have to place your plugin xml file. Then in that create a lib folder inside which you have to place the jar. After that set env variables and run the plugin registration utility.

          Follow http://fusionsecurity.blogspot.com/2013/01/populating-request-attributes-in-oim.html#more for the prior steps like writing the code and creating plugin xml.

          Also Be careful in the name you give in the tag <value> inside plugin.xml . It is the name of the form you gave in UI when you created the app instance form for that resource.

          I followed these steps to pre-populate an attribute in app instance form of AD and it worked. Let me know if you are having any specific issues
          • 2. Re: pre populate adapter in OIM 11gr2 not triggered in database
            thanks for the reply,
            ok i'll follow your steps ,but i have doubt that should i have to create the adapter from design console and map to the field from form designer.I'm new in OIM please help.the link which u you send mention only the brief information about how to perform pre populate adapter but not in details.can you provide basic steps how to create adapter and how to map it,i'm using OIM 11gr2.

            Thanks in advance
            • 3. Re: pre populate adapter in OIM 11gr2 not triggered in database
              Go through the OIM 11gR2 developer's guide in case you are new to OIM 11gR2. It has explanation on all the topics.

              For your case where you are planning to pre-populate in the app instance form no need of creating an adapter, as you are writing a plugin to achieve your use case. In case you want know about how to create an adapter in OIM here is the document
              • 5. Re: pre populate adapter in OIM 11gr2 not triggered in database
                I was registering the plugin.xml usaing ant -f pluginregistration.xml register .it prompts the userid: xelsysadm.but after that is shows error.

                BUILD FAILED
                C:\yash\Oracle\Middleware\Oracle_IDM1\server\plugin_utility\pluginregistration.xml:74: Class not found: oracle.iam.platform.utils.ant.PasswordInputHandler

                please help,should i have to register this xml using importdata.bat script or i'm going correct way.

                thanks and regard
                Tushar Palekar
                • 6. Re: pre populate adapter in OIM 11gr2 not triggered in database
                  hii i have followed all your steps regarding the pre populated adapter ,but no luck.

                  java code :
                  package com.oracle.demo.iam.prepop.plugin;

                  import java.io.Serializable;

                  import oracle.iam.request.plugins.PrePopulationAdapter;
                  import oracle.iam.request.vo.RequestData;

                  public class Userfname implements PrePopulationAdapter {

                  public Serializable prepopulate(RequestData requestData){
                  String fname = "xyz";
                  System.out.println("Returning fname ==== " + fname );
                  return fname ;


                  2)i have create a jar for this code and paste it into lib folder.
                  3) i have create a plugin.xml

                  <?xml version="1.0" encoding="UTF-8" ?>
                  <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                  <*plugins pluginpoint="oracle.iam.request.plugins.PrePopulationAdapter">*
                  *<plugin pluginclass= "com.oracle.demo.iam.prepop.plugin.Userfname" version="1.0" name="Userfname">*
                  *<metadata name="PrePopulationAdapater">*

                  4)i register the plugin using ant -f  pluginregistration.xml register
                  5)i have restartthe oim server and then i create a user using the same app instatnce in which i have create the form(ie.register),and
                  request acount-->select app instance ---> add to cart
                  but the last name xyz as per the java code is not reflected in the dadbase table.

                  please help
                  tushar palekar
                  • 7. Re: pre populate adapter in OIM 11gr2 not triggered in database
                    Fabio Luna
                    I´m new to OIM and would like to return to this subject. For all I know, there are 2 ways to create Prepopulate adapters:
                    1. Using plug-ins
                    1.1: Implementing the oracle.iam.request.plugins.PrePopulationAdapter
                    1.2: Creating the plugin.xml file.
                    2. Using Design Console, as did Tushar.
                    Is this information correct?

                    • 8. Re: pre populate adapter in OIM 11gr2 not triggered in database
                      Rajiv Dewan
                      One more way is UI Customization using Mbeans if you are talking about Application Instance Form.
                      • 9. Re: pre populate adapter in OIM 11gr2 not triggered in database
                        can you please explain the process how to do that using UI customization ,actualy i'm new in OIM

                        • 10. Re: pre populate adapter in OIM 11gr2 not triggered in database
                          Fabio Luna
                          There is a link about this: http://fusionsecurity.blogspot.com.br/2013/01/populating-request-attributes-in-oim_28.html
                          For me, it is a completely crazy thing to do. I don´t believe that a product at 11 version need some thing so hardcore to make a simple change.