Showing posts with label OIM11G Request. Show all posts
Showing posts with label OIM11G Request. Show all posts

Wednesday, 31 August 2011

Automatic Request Dataset generation in OIM11G

OIM11G has the concept of datasets instead of object forms and these datasets are xml files which as I understand the document (or did till now)  has to be created manually. This xml file again have specific place holders for the resource name and the type of model to be used for the dataset and etc. Since this is created manually thus there are chances of typos/missing of tags etc which we can find only while uploading the data set into MDS (again are not very user friendly messages).
Thus a tool would be a great way to generate a dataset based on the process form and the provisioning process automatically. The xml file thus generated can be modified accordingly manually later on for any special requirements.
Thinking along the same lines I was trying to come up with a design of such a tool and hit upon this class  ‘oracle.iam.requestDataSetGeneration.impl.RequestDataSetGenrationUtil’ (inside OIMServer.jar). This class can be used as a standalone class to generate the dataset automatically for all the 6 request models for any resource, the only requirement is that the resource form and the provisioning process should be set in OIM or without any input it will create dataset for all the resources!
I tested the tool for few of the resources configured in my environment and all the datasets were created correctly with various widgets like lookup, text, date and etc.

This class is present in OIM11.1.1.3 and has been removed from OIM11.1.1.5, so make sure to get the OIMServer.jar from 11.1.1.3 to use this utility.

OIM11G Add addtional search criteria for user search during request creation

OOTB OIM11G request creation wizard provides only few fields to perform search criteria for user search. The following way can be used to add additonal search criteria fields to the wizard.

For example adding Employee Number to the user search criteria, perform the following steps:

1. Take a backup of the file:
$OIM_ORACLE_HOME/server/apps/oim.ear/iam-consoles-faces.war/WEB-INF/lib/OIMUI.jar

Note: Do NOT place the backup under $OIM_ORACLE_HOME. Use a location outside $MW_HOME for the backup!

2. Unzip the file OIMUI.jar
3. Edit the file
OIMUI.jar/oracle/iam/request/self/agentry/resources/Agent.xml and add the following section under USER_SEARCH_SHUTTLE_CAT (or USER_ENTITY_SEARCH_SHUTTLE_CAT
) form as shown below:

<Form>
  <Id>
    USER_SEARCH_SHUTTLE_CAT
  </Id>
   <Elements>
    <Criteria>
...
...
<Attribute>
  <Id>
    Employee Number
  </Id>
  <TransId>
    REQ_USER_EMP_NO
  </TransId>
  <Values minLimit="1">
  <DataType>
   TEXT
  </DataType>
  <Comparators>
  <Comparator>
   EQUALS
  </Comparator>
  </Comparators>
  <Value className="java.lang.String">
   <Comparator>
    EQUALS
   </Comparator>
   </Value>
   </Values>
</Attribute>
...
...


4. Add the following line in the file:
OIMUI.jar/oracle/iam/request/self/agentry/resources/Agent.properties

Attribute[REQ_USER_EMP_NO].name=Employee Number

5. Add the following line in the file:

OIMUI.jar/oracle/iam/request/self/agentry/resources/Agent_en.properties
Attribute[REQ_USER_EMP_NO].name=Employee Number

Note: also add the translation in the proprieties files for the other languages.

6. Repackage the OIMUI.jar
7. Restart the OIM managed server and check the create request wizard