OIM 11gR2 Add combo box UDF on Create User Form

Hi.
We have created a new UDF on user form. It is a lookup field and has the following lookup associated: "Lookup.Users.Continente"
"Lookup.Users.Continente" has two values, both of them checked as Enabled.
From the form designer all the values are displayed when selecting one default value so it is reading correctly from the lookup.
We published the sandbox after this.
Then we created a new sandbox and tried to add that field to the Create User Page. We went to "Create User Page", customize it and add content from "Data Component - Catalog" -> "userVO" -> Select the UDF, clicked on "Add" and selected "ADF Select One Choice".
A new combobox is added but no values are shown. We have plublished the sandbox, restarted OIM, purged cache, etc... but it still shows an empty combo box. We have also tried adding it as "ADF Input List of values" but it does not add the field to the create user page.
Any ideas of what are we doing wrong?
The idea is very simple, just create a field with the same behaviour as, for example,  "User Type" field. A combobox that displays the enabled values from a lookup...
We have also tried creating the UDF cheking the searchable option, searchable picklist and all the possible combinations.
Thanks in advance!!

oim version is oim 11gR2 with BP4

Similar Messages

  • Want to add a prepopulated User defined field in create user form

    Hi,
    I have an entity adapter which will perform a pre-insert check on the user group of the user logged in to the oim.
    If the logged in user belongs to a group say "IT ADMIN", another validation check will be imposed on the create user action performed by him.
    If not from "IT ADMIN" group then create user action will be handled normally.
    Now the catch is, how would I determine the group name of the user logged in from the adapter code I have written?
    I decided to keep an User defined field "Created by" in the create user form which will be non-editable and auto-prepopulated with the group name of the logged in user. This way I will be able to map the variable field from the User definition drop down list while mapping the adapter variables.
    May you please guide me how I can achieve this?
    Would highly appreciate suggestion/inputs.

    Thanks for all your replies!
    However I am still in dark.
    I tried to retrieve the groupname using tcUSerOperationsIntf. But iit tries to retrieve the group name of the user getting created.
    Please note, the group name I want is not of the user yet to get created, but that of the user creating it i.e., the logged in user.
    My requirement is to have this created_by field in the create user form already prepopulated with the group name of the logged in user.
    So that I can put a check based on this field value in the netity adapter.
    If the group is IT ADMIN then proceed with the validation.
    Else no validation required.
    In short, I want to know,how can I auto-prepopulate a UDF in Create USer form?

  • Restrict list of Organizations on Create User form

    Running OIM 11.1.1.5.0.
    We have a couple of companies using our OIM for delegated administration. In the Create User form, if the user searches for an organization they see a list of all of our organizations not just the ones that they can place a user in.
    If they place a user in an organization that is not in their auth policy they receive an error:
    "You are either not authorized to create user in XXX organization or not authorized to create user in XXX organization without specifying a value for manager."
    Is there any way to restrict the list of organizations in the search to the list in their auth policy?

    I have have this:
    Company A
    -- Department A1 (although these are actually set as Organization type Company in OIM)
    -- Department A2
    Company B
    -- Department B1
    User Management Auth Policy for AdminA:
    -- Data Constraint - Users who are members of Department A1, A2
    But when AdminA uses Create User he gets a list of all Company and Department names in the Organization search popup.
    Do I take it from your reply that this is supposed to work and it's something that I have setup incorrectly then?
    Edited by: Ewan on May 4, 2012 7:37 AM

  • Add combo box into table pagination

    I want to add combo box into JavaFX table with pagination. Something like that:
    import javafx.application.Application;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
    import javafx.scene.Node;
    import javafx.scene.Scene;
    import javafx.scene.control.Pagination;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.AnchorPane;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    public class MainApp extends Application
       final ObservableList<Person> data = FXCollections.observableArrayList(
       new Person("1", "Joe", "Pesci"),
       new Person("2", "Audrey", "Hepburn"),
       new Person("3", "Gregory", "Peck")
       private Pagination pagination;
       public static void main(String[] args) throws Exception
      launch(args);
       public int itemsPerPage()
       return 1;
       public int rowsPerPage()
       return 5;
       public VBox createPage(int pageIndex)
       int lastIndex = 0;
       int displace = data.size() % rowsPerPage();
       if (displace > 0)
      lastIndex = data.size() / rowsPerPage();
       else
      lastIndex = data.size() / rowsPerPage() - 1;
       VBox box = new VBox(5);
       int page = pageIndex * itemsPerPage();
       for (int i = page; i < page + itemsPerPage(); i++)
       TableView<Person> table = new TableView<>();
       TableColumn numCol = new TableColumn("ID");
      numCol.setCellValueFactory(
       new PropertyValueFactory<Person, String>("num"));
      numCol.setMinWidth(20);
       TableColumn firstNameCol = new TableColumn("First Name");
      firstNameCol.setCellValueFactory(
       new PropertyValueFactory<Person, String>("firstName"));
      firstNameCol.setMinWidth(160);
       TableColumn lastNameCol = new TableColumn("Last Name");
      lastNameCol.setCellValueFactory(
       new PropertyValueFactory<Person, String>("lastName"));
      lastNameCol.setMinWidth(160);
      table.getColumns().addAll(numCol, firstNameCol, lastNameCol);
       if (lastIndex == pageIndex)
      table.setItems(FXCollections.observableArrayList(data.subList(pageIndex * rowsPerPage(), pageIndex * rowsPerPage() + displace)));
       else
      table.setItems(FXCollections.observableArrayList(data.subList(pageIndex * rowsPerPage(), pageIndex * rowsPerPage() + rowsPerPage())));
      box.getChildren().add(table);
       return box;
       @Override
       public void start(final Stage stage) throws Exception
      pagination = new Pagination((data.size() / rowsPerPage() + 1), 0);
       // pagination = new Pagination(20 , 0);
       //pagination.setStyle("-fx-border-color:red;");
      pagination.setPageFactory(new Callback<Integer, Node>()
       @Override
       public Node call(Integer pageIndex)
       if (pageIndex > data.size() / rowsPerPage() + 1)
       return null;
       else
       return createPage(pageIndex);
       public static class Person
       private final SimpleStringProperty num;
       private final SimpleStringProperty firstName;
       private final SimpleStringProperty lastName;
       private Person(String id, String fName, String lName)
       this.firstName = new SimpleStringProperty(fName);
       this.lastName = new SimpleStringProperty(lName);
       this.num = new SimpleStringProperty(id);
       public String getFirstName()
       return firstName.get();
       public void setFirstName(String fName)
      firstName.set(fName);
       public String getLastName()
       return lastName.get();
       public void setLastName(String fName)
      lastName.set(fName);
       public String getNum()
       return num.get();
       public void setNum(String id)
      num.set(id);
    I suppose that this can be done with StackPane but I need some other more universal way to do this because I want to expand the table size. I need to place there the combo box always in a fix position.
    Ref http://stackoverflow.com/questions/21147261/add-combo-box-into-table-pagination

    Hi. You can do it using an AnchorPane:
    AnchorPane.setBottomAnchor(comboBox, 40.0);
    AnchorPane.setLeftAnchor(comboBox, 12.0);
    The complete  example :
    import java.util.List;
    import javafx.application.Application;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.collections.FXCollections;
    import javafx.collections.ListChangeListener;
    import javafx.collections.ListChangeListener.Change;
    import javafx.collections.ObservableList;
    import javafx.scene.Scene;
    import javafx.scene.control.Pagination;
    import javafx.scene.Node;
    import javafx.scene.control.ComboBox;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.TextArea;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.AnchorPane;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    public class TablePager extends Application {
        final ObservableList<Person> data = FXCollections.observableArrayList(
                new Person("1", "Joe", "Pesci"),
                new Person("2", "Audrey", "Hepburn"),
                new Person("3", "Gregory", "Peck"),
                new Person("4", "Cary", "Grant"),
                new Person("5", "De", "Niro"),
                new Person("6", "Katharine", "Hepburn"),
                new Person("7", "Jack", "Nicholson"),
                new Person("8", "Morgan", "Freeman"),
                new Person("9", "Elizabeth", "Taylor"),
                new Person("10", "Marcello", "Mastroianni"),
                new Person("11", "Innokenty", "Smoktunovsky"),
                new Person("12", "Sophia", "Loren"),
                new Person("13", "Alexander", "Kalyagin"),
                new Person("14", "Peter", "OToole"),
                new Person("15", "Gene", "Wilder"),
                new Person("16", "Evgeny", "Evstegneev"),
                new Person("17", "Michael", "Caine"),
                new Person("18", "Jean-Paul", "Belmondo"),
                new Person("19", " Julia", "Roberts"),
                new Person("20", "James", "Stewart"),
                new Person("21", "Sandra", "Bullock"),
                new Person("22", "Paul", "Newman"),
                new Person("23", "Oleg", "Tabakov"),
                new Person("24", "Mary", "Steenburgen"),
                new Person("25", "Jackie", "Chan"),
                new Person("26", "Rodney", "Dangerfield"),
                new Person("27", "Betty", "White"),
                new Person("28", "Eddie", "Murphy"),
                new Person("29", "Amitabh", "Bachchan"),
                new Person("30", "Nicole", "Kidman"),
                new Person("31", "Adriano", "Celentano"),
                new Person("32", "Rhonda", " Fleming's"),
                new Person("32", "Humphrey", "Bogart"));
        private Pagination pagination;
        public static void main(String[] args) throws Exception {
            launch(args);
        public int itemsPerPage() {
            return 1;
        public int rowsPerPage() {
            return 5;
        public VBox createPage(int pageIndex) {
            int lastIndex = 0;
            int displace = data.size() % rowsPerPage();
            if (displace > 0) {
                lastIndex = data.size() / rowsPerPage();
            } else {
                lastIndex = data.size() / rowsPerPage() - 1;
            VBox box = new VBox();
            int page = pageIndex * itemsPerPage();
            for (int i = page; i < page + itemsPerPage(); i++) {
                TableView<Person> table = new TableView<Person>();
                TableColumn numCol = new TableColumn("ID");
                numCol.setCellValueFactory(
                        new PropertyValueFactory<Person, String>("num"));
                numCol.setMinWidth(20);
                TableColumn firstNameCol = new TableColumn("First Name");
                firstNameCol.setCellValueFactory(
                        new PropertyValueFactory<Person, String>("firstName"));
                firstNameCol.setMinWidth(160);
                TableColumn lastNameCol = new TableColumn("Last Name");
                lastNameCol.setCellValueFactory(
                        new PropertyValueFactory<Person, String>("lastName"));
                lastNameCol.setMinWidth(160);
                table.getColumns().addAll(numCol, firstNameCol, lastNameCol);
                if (lastIndex == pageIndex) {
                    table.setItems(FXCollections.observableArrayList(data.subList(pageIndex * rowsPerPage(), pageIndex * rowsPerPage() + displace)));
                } else {
                    table.setItems(FXCollections.observableArrayList(data.subList(pageIndex * rowsPerPage(), pageIndex * rowsPerPage() + rowsPerPage())));
                box.getChildren().addAll(table);
            return box;
        @Override
        public void start(final Stage stage) throws Exception {
            ObservableList<String> options =
                    FXCollections.observableArrayList(
                    "Opt1",
                    "Opt2",
                    "Opt3");
            final ComboBox comboBox = new ComboBox(options);
            pagination = new Pagination((data.size() / rowsPerPage() + 1), 0);
            //   pagination = new Pagination(20 , 0);
            pagination.setStyle("-fx-border-color:red;");
            pagination.setPageFactory(new Callback<Integer, Node>() {
                @Override
                public Node call(Integer pageIndex) {
                    if (pageIndex > data.size() / rowsPerPage() + 1) {
                        return null;
                    } else {
                        return createPage(pageIndex);
            AnchorPane anchor = new AnchorPane();
            AnchorPane.setTopAnchor(pagination, 10.0);
            AnchorPane.setRightAnchor(pagination, 10.0);
            AnchorPane.setBottomAnchor(pagination, 10.0);
            AnchorPane.setLeftAnchor(pagination, 10.0);
            Scene scene = new Scene(anchor, 400, 250);
            AnchorPane.setBottomAnchor(comboBox, 40.0);
            AnchorPane.setLeftAnchor(comboBox, 12.0);
            anchor.getChildren().addAll(pagination, comboBox);
            stage.setScene(scene);
            stage.setTitle("Table pager");
            stage.show();
        public static class Person {
            private final SimpleStringProperty num;
            private final SimpleStringProperty firstName;
            private final SimpleStringProperty lastName;
            private Person(String id, String fName, String lName) {
                this.firstName = new SimpleStringProperty(fName);
                this.lastName = new SimpleStringProperty(lName);
                this.num = new SimpleStringProperty(id);
            public String getFirstName() {
                return firstName.get();
            public void setFirstName(String fName) {
                firstName.set(fName);
            public String getLastName() {
                return lastName.get();
            public void setLastName(String fName) {
                lastName.set(fName);
            public String getNum() {
                return num.get();
            public void setNum(String id) {
                num.set(id);

  • OIM 11gR2 : Deletion of Custom UDFs

    Hello Experts,
    I want to delete some custom UDFs from my User Form.
    1. From the front end, i am able to do the same by exporting the sandbox and then deleting the UDFs from the user xml files and then again importing the sandbox.
    *2. How may i delete the UDFs from the backend. Is there some utility provided by OIM 11gR2 for the same ? Kindly help *

    currently there is no such utility available in r2 which will delete UDF from backend.
    You have to do the workaround. what you have done is right but something more to do if you have attached udf on user form.
    1. export user.xml(metadata) using deployment manager
    2. export sandbox
    3. remove entries from user.xml
    4. goto sandbox exported files and locate UserVo.xml,UserEo.xml,UserVo.xml.xml, UserEO.xml.xml...etc and remove entries from these file for the udf attribute and save it.
    5. import user.xml using deployment manager
    6. import sandbox and activate same
    above steps will do your job.

  • Add user validation in create user form during Configure User Object Classe

    Hi friends,
    I like to add a user validation code (javaScript or PL/SQL) into create user form during Configure User Object Classes.
    Is any way to pick user information and role assignment for validation in Portal side?
    or pre event in OID provisioning befor loading LDAP?
    We like to make a rols assignment validation. But portal does not have this function.
    TOM, Any suggestion?
    Thanks!!

    after study, portal form --LOVGroupSearch take a  role search and display user name  for select role.
    Who know we are can find system object LOVGroupSearch in portal or OID?
    the source SCR as /oiddas/ui/oracle/ldap/das/search/LOVGroupSearch?title=Role%3Fredirect=/oiddas/ui/oracle/ldap/das/search/LOVGroupSearch%3Ftitle=Role
    When we search a role and added it. selected role appears in form Search and Select:.
    When click role name in Search and Select form. system will display Group Members and group owner.
    Who can find behind codes for this form or samilar pl/sql codes?
    Thanks!!

  • Gaps appear in IE 6 browser window for hidden fields in Create User form

    Hi,
    I need an urgent input on this one.
    I hid an OIM default attribute for users in the 'Create User' form by modifying clear_all_fields.js
    The field is hidden from the 'Create User' page fine!
    But if I open the page from Internet Explorer 6 it shows a gap in the place of the hidden field.
    For Mozilla 3.0.5 the gaps are not appearing.
    I tried removing these gaps by deleting the tags and the field in the clear_all_fields.js
    or, by reducing the dimension of the spacer.gif in GenerateCreateUserForm.jsp.
    But it reflected no change in the form look n feel.
    The requirement is to hide the fields and not remove them.
    Any suggestion as to what may be the way out?

    Thanks for the update Leonard. This would be an extremely useful plugin. I've been looking for it on http://labs.adobe.com/technologies/ under the plug-ins tab but have been unable to find it. It wasn't even there in the Pre-Release Programs. Is it located somewhere else or with a different name? Please let me know.
    Meanwhile, I've been trying to write my own VB script to get the button clicked. Here's what I've come up till now-
    FindText
    HiliteList.Add->CreateWordHilite->SetTextSelect->GetBoundingRect->PointToDevice
    The last function seems to be deprecated. Also there's nothing to connect the text highlighted by findtext with HiLiteList.Add. I guess
    I may have to use the JSO word search method.
    Any advice, as always, would be much appreciated.

  • How to avoid special charecters in create user form

    Hi all,
    I am new to Sun IDM.Please u people have to help me in giving the solution.
    Actually,in create user form ,we have first name and last name text fields.These two fields accept any special charecters.I want these fields to accept only alphabets.Do i need to create new rule for it?Please tell me the steps to be done to allow only alphabetic charecters in this fields.Thanks in advance,
    regards,
    suresh

    Hi,
    I should thank for the quick response u have done.But,still my problem was not solved.I did wat u hav said in the last reply...Now iam getting "1" in that create user form.I have send the XML code of the "isAlpha" and "Firstname"..Please check whether i have done any mistake..waiting for ur reply.
    <Rule name='isAlpha'>
    <Description>Tests to see if testStr is comprised of only alpha characters.</Description>
    <RuleArgument name='testStr' value='testStr'/>
    <block>
    <defvar name='testList'>
    <appendAll>
    <rule name='Alpha Numeric Rules:AlphaCapital'/>
    <rule name='Alpha Numeric Rules:AlphaLower'/>
    </appendAll>
    </defvar>
    <containsAll>
    <ref>testList</ref>
    <rule name='Alpha Numeric Rules:stringToChars'>
    <argument name='testStr' value='$(testStr)'/>
    </rule>
    </containsAll>
    </block>
    </Rule>
    <Field name='global.firstname'>
    <Display class='Text'>
    <Property name='title' value='_FM_FIRSTNAME'/>
    <Property name='size' value='32'/>
    <Property name='maxLength' value='128'/>
    </Display>
    <Validation>
    <rule name='Alpha Numeric Rules:isAlpha'>
    <argument name='global.firstname'/>
    </rule>
    </Validation>
    </Field>

  • Mandatory Attributes in Create User Form

    Hi All
    i want to make the mandatory fields in create user form (ie Organization name) as optional.
    For this i edited the FormMetada.xml file by making optional as true. (in the attribute reference for Organization field in User management section), as mentioned in the docs.
    Now when i try creating user, it shows me 'You do not have permissions to perform this operation' error.
    while when i give some value in the organization field, then it creates the user.
    please provide some pointers in this regard.
    Thanks.

    You MUST provide an organizatation name. There is a system entity adapter on the Users data object. You cannot avoid populating this.
    -Kevin

  • Why doesn't default CREATE USER form show a "Check"  Page before submitting

    Hi
    Interesting question.
    When I create a User (using my Customized Create User Form), and I press SAVE, the Form is submitted immediately. There is no "stop-and-check" page, which allows one to review the entries made BEFORE submitting the form itself.
    For example : when EDITING or UPDATING a User, and you press "Save", the form is not submitted right away. Instead, a new page opens, where you can review the changes you made, to ensure that they are correct. In fact, at the bottom of this new page, there are 4 standard buttons : SAVE...........RETURN TO EDIT............CANCEL
    This is a very good system, because it allows you to check your entries, and make sure they are correct, before pressing SAVE again to submit.
    However, the "Create User" form does not have this same arrangement.
    Is there any way to customize the Form, so that, when creating a User, and you press SAVE, a "check-page" first shows up (just like when updating/editing a user) ?
    Thanks

    Hi
    Interesting question.
    When I create a User (using my Customized Create User Form), and I press SAVE, the Form is submitted immediately. There is no "stop-and-check" page, which allows one to review the entries made BEFORE submitting the form itself.
    For example : when EDITING or UPDATING a User, and you press "Save", the form is not submitted right away. Instead, a new page opens, where you can review the changes you made, to ensure that they are correct. In fact, at the bottom of this new page, there are 4 standard buttons : SAVE...........RETURN TO EDIT............CANCEL
    This is a very good system, because it allows you to check your entries, and make sure they are correct, before pressing SAVE again to submit.
    However, the "Create User" form does not have this same arrangement.
    Is there any way to customize the Form, so that, when creating a User, and you press SAVE, a "check-page" first shows up (just like when updating/editing a user) ?
    Thanks

  • Cannot create user form portal

    Hi
    We have installed NW 2004 server on windows SPS9
    While creating user form portal , i am getting the following error:
    ##0#0#Error#1#/System/Security#Java###An exception was thrown in the UME/ABAP user management connector. Message: . --> #2#BAPI_USER_CREATE1@QSACLNT000: ID=01, NUMBER=491, MESSAGE=You are not authorized to create users in group#BAPI_USER_CREATE1@QSACLNT000: ID=01, NUMBER=491, MESSAGE=You are not authorized to create users in group#
    #1.5#000C295F1EB3004900000003000000B80004346CD09B385F#1183541868109#com.sap.security.core.persistence.datasource.imp.R3Persistence#sap.com/irj#com.sap.security.core.persistence.datasource.imp.R3Persistence.createPrincipalDatabag()#J2EE_ADMIN#313##pun45idmqa45vm1_QSA_5696050#Guest#104e58202a1211dcab81000c295f1eb3#Thread[PRT-Async 0,5,PRT-Async]##0#0#Error#1#/System/Audit#Java###An exception was thrown in the UME/ABAP user management connector. Message: . --> #2#BAPI_USER_CREATE1@QSACLNT000: ID=01, NUMBER=491, MESSAGE=You are not authorized to create users in group#com.sap.security.core.persistence.datasource.PersistenceException: BAPI_USER_CREATE1@QSACLNT000: ID=01, NUMBER=491, MESSAGE=You are not authorized to create users in group
                at com.sap.security.core.persistence.datasource.imp.R3PersistenceBase.handleBapiRet2Table(R3PersistenceBase.java:3136)
                at com.sap.security.core.persistence.datasource.imp.R3Persistence.doBapiUserCreateChange(R3Persistence.java:5265)
                at com.sap.security.core.persistence.datasource.imp.R3Persistence.doDispatchWrite(R3Persistence.java:3622)
                at com.sap.security.core.persistence.datasource.imp.R3Persistence.createPrincipalDatabag(R3Persistence
    Any clue what has to be dome to make it working
    Best Regards
    Manoj

    Hi Manoj,
    Looks like your Portal uses the ABAP backend system QSACLNT000 as the
    UME. Please ensure that the user being used to create other users in the portal
    has sufficient permissions in the backend system also.
    Regards
    Srikishan

  • How to populate the combo boxes that are created dynamically in jsp

    Hi,
    I am using JSP.
    I am creating combo boxes dynamically (based on the num selected by the user). These dynamically created combo boxes need to have A-Z as options (each box) . Now, when the user chooses the option A in any of the combo-boxes,the rest should not have this option. so on..
    how do i achieve this.Kindly help.

    You'll need to use JavaScript...I have a complicated example and a simple example, however, I cannot really understand the complex example but I know how it works. The looping is too complex for me.
    First you'll need to populate a server side variable...depending on how often the data is updated you may want this to run each time a new session is created...this example is run each time Tomcat is started and the application context is initialized:
    package kms.web;
    // Servlet imports
    import javax.servlet.ServletContextListener;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContext;
    // utility imports
    import java.util.Map;
    // domain imports
    import kms.domain.LocationService;
    import kms.domain.DeptService;
    import kms.domain.PatentService;
    * This listenter is used to initialize
    * the Maps of Locations, Patents & Depts used to populate
    * pulldown lists in JSPs
    public class InitializeData implements ServletContextListener {
        * This method creates the Maps.
       public void contextInitialized(ServletContextEvent sce) {
          ServletContext context = sce.getServletContext();
          LocationService lServ = new LocationService();
          // Create the Maps
          Map campuses = lServ.getCampuses();
          Map buildings = lServ.getBuildings();
          Map floors = lServ.getFloors();
          Map locs = lServ.getLocations();
          // And store them in the "context" (application) scope
          context.setAttribute("campuses", campuses);
          context.setAttribute("buildings", buildings);
          context.setAttribute("floors", floors);
          context.setAttribute("locs", locs);
          DeptService dServ = new DeptService();
          Map depts = dServ.getDepts();
          context.setAttribute("depts", depts);
          PatentService pServ = new PatentService();
          Map patents = pServ.getPatents();
          context.setAttribute("patents", patents);
          //I did this one myself
    /*    CodeService cServ = new CodeService();
          Map masterMks = cServ.getCodes();
          context.setAttribute("masterMks", masterMks);
        * This method is necessary for interface.
       public void contextDestroyed(ServletContextEvent sce) {
       // I have no clue what the heck this is for???
       // Let me know if you do!
    }So now we travel into the PatentService method called 'getPatents();' which in turn calls a PatentDAO method
    Map patents = pServ.getPatents();
    Below is the code for the PatentService object:
    package kms.domain;
    import kms.util.ObjectNotFoundException;
    import java.util.*;
    * This object performs a variety of dept services, like retrieving
    * a dept object from the database, or creating a new dept object.
    public class PatentService {
       * The internal Data Access Object used for database CRUD operations.
      private PatentDAO patentDAO;
       * This constructor creates a Dept Service object.
      public PatentService() {
        patentDAO = new PatentDAO();
    public Map getPatents() {
          Map patents = null;
          try {
            patents = patentDAO.retrieveAll();
          // If the dept object does not exist, simply return null
          } catch (ObjectNotFoundException onfe) {
            patents = null;
          return patents;
    }It may be useful for you to see the code of the Patent class:
    package kms.domain;
    /*** This domain object represents a dept.
    public class Patent implements java.io.Serializable {
      private int codeGgm;
      private String name = "";
      private String description = "";
      private int creator;
      private String creationDate = "";
      private int used;
       * This is the full constructor.
      public Patent(int codeGgm, String name, String desc, int creator, String creationDate, int used) {
        this.codeGgm = codeGgm;
        this.name = name;
        this.description = desc;
        this.creator = creator;
        this.creationDate = creationDate;
        this.used = used;
      public Patent() { }
      public int getCodeGgm() {
          return codeGgm;
      public void setCodeGgm(int codeGgm) {
           this.codeGgm = codeGgm;
      public String getName() {
        return name;
      public void setName(String name) {
          this.name = name;
      public String getDesc() {
        return description;
      public void setDesc(String desc) {
          this.description = desc;
      public int getCreator() {
          return creator;
      public void setCreator(int creator) {
             this.creator = creator;
      public String getCreationDate() {
          return creationDate;
      public void setCreationDate(String creationDate) {
             this.creationDate = creationDate;
      public int getUsed() {
           return used;
      public void setUsed(int used){
           this.used = used;
    }And here is the Database table which stores the Patents:
    DESC PATENT:
    CODE_GGM NUMBER(3)
    NAME VARCHAR2(15)
    DESCRIPTION VARCHAR2(250)
    CREATOR NUMBER(10)
    CREATION_DATE DATE
    USED NUMBER(1)
    So, we then travel into the code of the PatentDAO to see how the DAO object executes the DB query to get all of the Data we need for the select list:
    package kms.domain;
    import javax.naming.*;
    import javax.sql.*;
    import java.util.*;
    import java.sql.*;
    import kms.util.*;
    * This Data Access Object performs database operations on Patent objects.
    class PatentDAO {
       * This constructor creates a Patent DAO object.
       * Keep this package-private, so no other classes have access
    PatentDAO() {
    * This method returns a Map of all the Dept names
    * The key is the Dept id
    Map retrieveAll()
           throws ObjectNotFoundException {
          Connection connection = null;
          ResultSet results = null;
          // Create the query statement
          PreparedStatement query_stmt = null;
          try {
            // Get a database connection
          Context initContext = new InitialContext();
           DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/keymanOracle");
           connection = ds.getConnection();
            // Create SQL SELECT statement
            query_stmt = connection.prepareStatement(RETRIEVE_ALL_NAMES);
            results = query_stmt.executeQuery();
            int num_of_rows = 0;
          Map patents = new TreeMap();
             // Iterator over the query results
            while ( results.next() ) {
                patents.put(new Integer(results.getInt("code_ggm")), results.getString("name"));
             if ( patents != null ) {
                      return patents;
                    } else {
                      throw new ObjectNotFoundException("patent");
           // Handle any SQL errors
         } catch (SQLException se) {
            se.printStackTrace();
           throw new RuntimeException("A database error occured. " + se.getMessage());
        } catch (NamingException se) {
          throw new RuntimeException("A JNDI error occured. " + se.getMessage());
          // Clean up JDBC resources
          } finally {
            if ( results != null ) {
              try { results.close(); }
              catch (SQLException se) { se.printStackTrace(System.err); }
            if ( query_stmt != null ) {
              try { query_stmt.close(); }
              catch (SQLException se) { se.printStackTrace(System.err); }
            if ( connection != null ) {
              try { connection.close(); }
              catch (Exception e) { e.printStackTrace(System.err); }
    private static final String RETRIEVE_ALL_NAMES
          = "SELECT code_ggm, name FROM patent ";
    }Now when you wish to use the 'combo box' (also called select lists), you insert this code into your jsp:
    <TR>
    <%@ include file="../incl/patent.jsp" %>
    </TR>
    depending on how your files on your server are organized, the "../incl/patent.jsp"
    tells the container to look up one directory from where the main jsp is to find the 'patent.jsp' file in the 'incl' directory.
    I need some help creating multi-level select lists with JavaScript:
    Can anyone explain this code:
    <%@ page import="java.util.*,kms.domain.*" %>
    <jsp:useBean id="campuses" scope="application" class="java.util.Map" />
    <TR><TD ALIGN='right'>Campus: </TD>
    <TD>
    <select name="campus" size="1" onChange="redirect(this.options.selectedIndex)">
    <option value="0" selected>No Campus</option>
    <% LocationService ls = new LocationService();
       Iterator c = campuses.keySet().iterator();
       Map[] bm = new Map[campuses.size()];
       Map[][] fm = new Map[campuses.size()][0];
       Map[][][] lm = new Map[campuses.size()][0][0];
       int i2 = 0;
       int j2 = 0;
       int k2 = 0;
       int jj = 0;
       int kk = 0;
       while (c.hasNext()) {
          Integer i = (Integer)c.next();
          out.print("<OPTION ");
          out.print("VALUE='" + i.intValue()+ "'>");
          out.print( (String) campuses.get(i) );
          out.print("</OPTION>");
          bm[i2] =  ls.getBuildingsByCampus(i.intValue());
          fm[i2] = new Map[bm[i2].size()];
          lm[i2] = new Map[bm[i2].size()][];
          Iterator b = bm[i2].keySet().iterator();
          j2 = 0;
          while (b.hasNext()) {
            Integer j = (Integer)b.next();
            fm[i2][j2] = ls.getFloorsByBuilding(j.intValue());
            lm[i2][j2] = new Map[fm[i2][j2].size()];
            Iterator f = fm[i2][j2].keySet().iterator();
            k2 = 0;
            while (f.hasNext()) {
              Integer k = (Integer)f.next();
              lm[i2][j2][k2] = ls.getLocationsByFloor(k.intValue());
              k2++;
              kk++;
            j2++;
            jj++;
          i2++;
       } %>
    </select></TD>
    </TR>
    <TR><TD ALIGN='right'>Building: </TD>
    <TD>
    <select name="building" size="1" onChange="redirect1(this.options.selectedIndex)">
    <option value="0" selected>No Building</option>
    </select></TD>
    </TR>
    <TR><TD ALIGN='right'>Floor: </TD>
    <TD>
    <select name="floor" size="1" onChange="redirect2(this.options.selectedIndex)">
    <option value="0" selected>No Floor</option>
    </select></TD>
    </TR>
    <TR><TD ALIGN='right'>Room: </TD>
    <TD>
    <select name="location_id" size="1">
    <option value="0" selected>No Room</option>
    </select></TD>
    </TR>
    <script>
    var cNum = <%=i2%>
    var bNum = <%=jj%>
    var fNum = <%=kk%>
    var cc = 0
    var bb = 0
    var ff = 0
    var temp=document.isc.building
    function redirect(x){
    cc = x
    for (m=temp.options.length-1;m>0;m--)
      temp.options[m]=null
      temp.options[0]=new Option("No Building", "0")
      if (cc!=0) {
        for (i=1;i<=group[cc-1].length;i++){
          temp.options=new Option(group[cc-1][i-1].text,group[cc-1][i-1].value)
    temp.options[0].selected=true
    redirect1(0)
    var group=new Array(cNum)
    for (i=0; i<cNum; i++) {
    group[i]=new Array()
    <% for (int i=0; i< bm.length; i++) {
    Iterator bldgs = bm[i].keySet().iterator();
    int j = 0;
    while (bldgs.hasNext()) {
    Integer intJ =(Integer) bldgs.next(); %>
    group[<%=i%>][<%=j%>] = new Option("<%=bm[i].get(intJ)%>", "<%=intJ%>");
    <% j++;
    } %>
    var group2=new Array(cNum)
    for (i=0; i<cNum; i++) {
    group2[i] = new Array()
    for (j=0; j<=bNum; j++) {
    group2[i][j] = new Array()
    <% for (int i=0; i< fm.length; i++) {
    for (int j=0; j< fm[i].length; j++) {
    Iterator flrs = fm[i][j].keySet().iterator();
    int k = 0;
    while (flrs.hasNext()) {
    Integer intK =(Integer) flrs.next(); %>
    group2[<%=i%>][<%=j%>][<%=k%>] = new Option("<%=fm[i][j].get(intK)%>", "<%=intK%>");
    <% k++;
    } %>
    var temp1=document.isc.floor
    var camp=document.isc.campus.options.selectedIndex
    function redirect1(x){
    bb = x
    for (m=temp1.options.length-1;m>0;m--)
    temp1.options[m]=null
    temp1.options[0]=new Option("No Floor", "0")
    if (cc!=0 && bb!=0) {
    for (i=1;i<=group2[cc-1][bb-1].length;i++){
    temp1.options[i]=new Option(group2[cc-1][bb-1][i-1].text,group2[cc-1][bb-1][i-1].value)
    temp1.options[0].selected=true
    redirect2(0)
    var group3=new Array(cNum)
    for (i=0; i<cNum; i++) {
    group3[i] = new Array()
    for (j=0; j<=bNum; j++) {
    group3[i][j] = new Array()
    for (k=0; k<=fNum; k++) {
    group3[i][j][k] = new Array()
    <% for (int i=0; i< lm.length; i++) {
    for (int j=0; j< lm[i].length; j++) {
    for (int k=0; k< lm[i][j].length; k++) {
    Iterator locs = lm[i][j][k].keySet().iterator();
    int m = 0;
    while (locs.hasNext()) {
    Integer intM =(Integer) locs.next(); %>
    group3[<%=i%>][<%=j%>][<%=k%>][<%=m%>] = new Option("<%=lm[i][j][k].get(intM)%>", "<%=intM%>");
    <% m++;
    } %>
    var temp2=document.isc.location_id
    function redirect2(x){
    ff = x
    for (m=temp2.options.length-1;m>0;m--)
    temp2.options[m]=null
    temp2.options[0]=new Option("No Room", "0")
    if (cc!=0 && bb!=0 && ff!=0) {
    for (i=1;i<=group3[cc-1][bb-1][ff-1].length;i++){
    temp2.options[i]=new Option(group3[cc-1][bb-1][ff-1][i-1].text,group3[cc-1][bb-1][ff-1][i-1].value)
    temp2.options[0].selected=true
    </script>
    This produces a related select list with 4 related lists by outputting JavaScript to the page being served. It works the same way as the first example that I describe but I don't understand the looping...maybe someone could explain how to go from the single select list to a double and/or triple level drill down?

  • OIM 11gR2 - custom attribute with illegal binding on Create User form in published sandbox

    Hi,
    I think I have managed to paint myself into a corner!
    In OIM 11gR2 I have added a number of custom attributes to the "User Form" - some Text-, some Lookup-type attributes.
    While customizing the "Create User" page within a sandbox and adding a SelectOneChoice item and fiddling around with its binding, I was distracted by a phone call and the browser timed out.
    The binding property on the new item is now not correct and the sandbox has unfortunately been published, and I am now unable to enter the "Create User" page - when I try, I get the following:
    <Sep 23, 2013 2:39:11 PM CEST> <Warning> <oracle.adf.view.rich.component.fragment.UIXRegion> <ADF_FACES-00009> <Error processing viewId: /user/createView URI: /oracle/iam/ui/runtime/form/view/pages/userCreateForm.jsff actual-URI: /oracle/iam/ui/runtime/form/view/pages/userCreateForm.jsff.
    javax.el.PropertyNotFoundException: Target Unreachable, 'ekstraresource1__c' returned null
            at com.sun.el.parser.AstValue.getTarget(AstValue.java:108)
            at com.sun.el.parser.AstValue.isReadOnly(AstValue.java:149)
            at com.sun.el.ValueExpressionImpl.isReadOnly(ValueExpressionImpl.java:248)
            at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer._getUncachedReadOnly(EditableValueRenderer.java:486)
            at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.cacheReadOnly(EditableValueRenderer.java:416)
            at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.beforeEncode(LabeledInputRenderer.java:128)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:340)
    <Sep 23, 2013 2:39:11 PM CEST> <Warning> <oracle.adf.view.rich.component.fragment.UIXRegion> <ADF_FACES-00009> <Error processing viewId: /catalog-tf/cart-details URI: /oracle/iam/ui/catalog/pages/cart-details.jsff actual-URI: /oracle/iam/ui/catalog/pages/cart-details.jsff.
    javax.el.PropertyNotFoundException: Target Unreachable, 'ekstraresource1__c' returned null
            at com.sun.el.parser.AstValue.getTarget(AstValue.java:108)
            at com.sun.el.parser.AstValue.isReadOnly(AstValue.java:149)
            at com.sun.el.ValueExpressionImpl.isReadOnly(ValueExpressionImpl.java:248)
            at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer._getUncachedReadOnly(EditableValueRenderer.java:486)
            at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.cacheReadOnly(EditableValueRenderer.java:416)
            at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.beforeEncode(LabeledInputRenderer.java:128)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:340)
    Caused By: java.io.IOException: javax.el.PropertyNotFoundException: Target Unreachable, 'ekstraresource1__c' returned null
            at oracle.adfinternal.view.page.editor.renderkit.PageCustomizableRenderer.encodeAll(PageCustomizableRenderer.java:764)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:341)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:405)
    etc.
    Of course the sandbox should not have been published - but it is - and I am stuck trying to figure out how to somehow undo this mess.
    Is it possible to clean up this mess by diving to the database and removing some rows from the right tables - or perform some other operations undo my mistake?
    Thanks in advance,
    - Tom

    oim version is oim 11gR2 with BP4

  • OIM 11gR2 - unable to suppress display of iPlanet process form

    OIM 11gR2 or 11.1.2
    SJSDS Connector 9.0.4
    I have configured the SJSDS connector, it resource, etc and am able to manually/directly provision iPlanet User to an OIM user through the identity interface.
    I have configured the process form to pre-populate all necessary fields.
    I have checked the Auto Save Form checkbox within the iPlanet User Process Definition.
    It is my expectation that when an administrator directly assigns the resource to a user they will not be presented with the process form. However, when we directly assign the resource, the process form is displayed causing the administrator to submit the form.
    I have double checked the documentation regarding Auto Save Form within the Developer's Guide for Oracle Identity Manager 11g Release 2 (11.1.2) - E27150-03 and the Oracle® Identity Manager Connector Guide for Sun Java System Directory Release 9.0.4 - E10446-12 and I believe my expectations are correct.
    1) Has anyone successfully suppressed the process form while direct or manually provisioning SJSDS through the identity interface?
    2) Could the Auto Save Form be only related to request-based provisioning?
    Thank you in advance.

    These are also good questions but I'll give details :-)
    1) Does that make the "Auto Save Form" checkbox useless? -
    NO, If you don't do this then your Provisioning will stuck into System Validation.
    2) Can you "Auto Save" the Application Instance form?
    NO, as per Oracle either hide these attributes or delete these attributes but there's no clean way to delete such things.
    Question For You:
    If you don't want to Auto Save your Application Instance Form then why did you create that.
    Workaround:
    If you don't want Application Instance then create one more Application Instance without any form

  • Combo Box not working in Search Form After migrating to Jdev11.1.2.1

    Hi,
    I developed my application using Jdev11.1.1.3 and its works fine. I migrated my application to jdev11.1.2.1. After migration when i run my application, in search form combo box displaying ArrayIndexOutOfBound Exception while searching through it. This exception is only throwing for Combo box and choice list. When I changed combo box to InputListOfValues and ComboBox with ListOfValues its working. Please help.

    Try this on jdev 11.1.1.3 if possible. If not, try everything with 11.1.2.1.
    1. Select Model project and invoke "Clean Model.jpr" (Menu->Build->Clean XXX). Do the same for View project.
    2. Delete all /classes/ folders from model and view projects
    3. Visit view project dependencies (under project properties->Libraries and classpath) and see if JDev is reporting any error there. Delete the errored dependency if any.
    now, follow this on 11.1.2.1
    4. Migrate (i.e. open the app in 11.1.2.1)
    5. Rebuild all.

Maybe you are looking for

  • Can no longer read DVDs or CDs--DESPERATE

    I am running OSX 10.7.3. Yesterday all my thousands of fonts completely disappeared from Suitcase Fusion 2. I was told by Extensis that I could not get them back, but that I needed to upgrade to Fusion 3 which would be compatible with Lion. I did tha

  • ECC 5.0

    Hi, Can any one tell me, when(month and year) the ECC 5.0 version is launched into the market. Thanks in advance..

  • Sql Developer 1.1 is bundled in Oracle 11g

    Dear, The Oracle 11g is bundled with SQL Developer 1.1. I could install Sql Developer 1.5 in the same machine. But two Sql developers 1.1 and 1.5 are there eating the disk space. How to uninstall only the SQL developer 1.1 which bundled with Oracle11

  • Error triggering EDI subsystem (GIS): Process request without transaction.

    I'm trying to configure SAP to trigger the EDI subsytem (Sterling's GIS).  I'm getting error status "20": Error for Remote Function Call with port "GIS" Error message from RFC_REMOTE_EXEC Process request without transaction. TID is empty. Does anyone

  • In CRM 2007 what is the code behind the Navigation bar?.

    In CRM 2007 what is the code behind the Navigation bar?. Jason