Friday, July 5, 2013

Updating OIM Process Form of a Resource Object Instance Through SQL

Version: Oracle Identity Manager 11.1.1.5.0
Description: Given here is an SQL query to update every outdated Resource Object Instance's process form. A sample usage scenario is when you have users who have been provisioned to a target system (E.g. Active Directory, OpenLDAP) and the target accounts are already replicated in OIM. These target accounts are represented as Resource Object Instances in OIM , and the process form holds the data. Later you decide to add a new attribute on to the process form of a specific resource object and update it to the latest version through design console. You'll notice that on existing resource object instances process forms the new attribute does not appear. To fix that, execute the query given here. You can also use OIM's Form Version Control Utility to the same.

ACCEPT formTableName varchar prompt 'Enter form table name: ';
UPDATE &formTableName SET &formTableName._VERSION = 
(SELECT SDK_LATEST_VERSION FROM sdk WHERE lower(SDK_NAME) = lower('&formTableName'));

The first statement prompts you enter the table name of the process form (E.g. UD_LDAP_USR is the process form for the OpenLDAP connector resource). In the second statement, "&formTableName" is substituted with the input you've supplied. The dot (.) is concatenation. The subquery gets the latest process form version, which is the most recent process form version created, of a specific form. The SDK table contains information of every resource object's process form. The SDK_LATEST_VERSION column stores the actual latest process form version number (do not get this confuse with the field label version in design console which is only a label). To be more consistent, you may use the SDK_ACTIVE_VERSION column, which stores the current process form version in use, instead of SDK_LATEST_VERSION.

No comments:

Post a Comment