Search This Blog

Monday 27 July 2015

Create a Custom Resource Object in OIM 11gR2

Steps involved in creating a custom Resource Object are as below:

1. Create a Resource Object
2. Create a Process Definition
3. Create a Process Form
4. Create Adapter
5. Create Provision Task
6. Create Revoke Task

Below are the details of the steps to provide an easier understanding of how to proceed with the creation of Resource Object:


1. Create Resource Object
   In Design Console go to Resource Object under Resource Management



   Now fill in the details like Name: Test Resource, Order For User, Type: Application




   Click the save button to create the Resource Object.



2. Create Process Definition

   In Design Console go to Process Definition under Process Management:



       Provide details like Name: Test Resource, Type: Provisioning, Object Name: Test Resource(Created in 1st Step), Table Name: UD_TEMP and click save to create a Process Definition for Resource Object.




   Now if you check in OIM, the resource is available for Provisioning but it will be stucked in Provisioning and then it cannot be revoked as there is no Provisioning or Revoked task present for the Resource.



3. Create Process Form

   In Design Console go to Form Designer under Development Tools:



       Provide the Table Name: UD_TEMP and click search to open the related form and then click on Create New Version, Add the fields that you wish to add and then click Save and then click Make Version Active:


   Process Form is successfully created and activated.

4. Create Adapter
   We will create a simple adapter that will take input and output an output.

   Go to Adapter Factory under Development Tools:


   Provide a name for the Adapter, CopyData in this case, select the Adapter Type as Process Task, provide some description and click Save.



   Now create a Input variable by clicking on Variable List tab and then press add button, provide the required details in the popup as below and then click Save:



   Now go to Adapter Tasks tab and click on CopyData and then press the Add button. Provide the details as below and click Save and close the popup.



   Save the Adapter and click on Build to Compile the Adapter. The compile Status should get updated with OK to mark the successful compilation of the Adapter.

5. Create Provision Task
       Go back to Process Definition under Process Management, open the Test Resource Process Definition created in Step 2. We will create a Provision Task now with name Provision It. In Task tab, click create to create the Task:


   Please make sure that Required for Completion, Allow Cancellation while Pending and Allow Multiple Instances are checked and Conditional is unchecked(very Important). Now click on the Integration tab and Add the adpCopyData Adpater created in the previous step.


   Two variables will popup as below with mapped status as N.


   Map Adapter Return Variable to Response Code and Input to Literal String with Literal Value of OK. Click Save, mapping status for both the variables should get updated as Y:


   Now add a response by going on Responses tab, add a response by clicking Add. Provide Response as OK, since we have mapped the Input to Literal String OK in this case and then select the status C.


   Go to Task to Object Status Mapping tab and search for status C(Completed) and select the Object Status for that as Provisioned:


   Now the resource is ready to be provisioned in OIM with the status being updated to OIM after successful provisioning.

6. Create Revoke Task
   Let's create a Revoke Task now called Revoke It to Revoke the Resource Object. Procedure for creating Revoke task is similar to Provision task, except for the 2 exceptions which we will mention going forward.


   First exception will be to check Conditional here(Very Crucial as the Resource will be Revoked soon after being Provisioned if Revoked is not marked as Conditional: Refer the above Screenshot)

   Save the task and now map C to Revoked in Task to Object Status Mapping as below:


   Now the object can successfully be revoked in OIM.

Thursday 23 July 2015

Fetching Task Instance key from OIM Database using Task Name

Below query can be used to fetch task instance key for the task from OIM Database using the process instance key and task name as input parameters:

SELECT sch.sch_key FROM osi, sch,mil WHERE mil.mil_key = osi.mil_key AND osi.sch_key = sch.sch_key AND mil.mil_name='Task Name' AND orc_key='Process Instance Key';

To fetch the latest or last task instance key use the below query:

SELECT max(sch.sch_key) FROM osi, sch,mil WHERE mil.mil_key = osi.mil_key AND osi.sch_key = sch.sch_key AND mil.mil_name='Task Name' AND orc_key='Process Instance Key';

Eg: For a user, we have the create user task for which we want to fetch the Task Instance Key then we can update the query as below:

SELECT max(sch.sch_key) FROM osi, sch,mil WHERE mil.mil_key = osi.mil_key AND osi.sch_key = sch.sch_key AND mil.mil_name='Create User' AND orc_key='Process Instance Key';

To view the list of task available, hit the below query:
select  * from mil;