Thursday, April 30, 2015

OIM 11g R2 PS2 (11.1.2.2.) : OOTB Composites , Approval Policies and Disconnected App Provisioning

In this post, I will talk about something which I did not notice on first glance while working with OIM 11g R2 PS2. Well the change basically is that the all the OOTB approval policies don't come with the product and it is basically a blank slate to start with. OOTB there will be no approval policies in OIM that you will see.

But if you do an disconnected application provisioning it will go through "Request Level Approval" and "Operational Level Approval" next.
On further investigation I found out that approval workflows are hard coded in in process task adapters if I chose the Application Instance as Disconnected.

"ManualProvisioningStart" has the name of workflow attached "DisconnectedProvisioning!1.0" which gets directly invoked on create,enable,disable,modify etc. operations.

By default all connected applications will not go through any approvals since no approval policies.

We can still leverage existing 12 SOA approval workflows available on SOA Server.


  1. 2 certification related
  2. AutoApproval
  3. BeneficiaryManagerApproval
  4. DefaultOperationApproval
  5. DefaultRequestApproval
  6. DefaultRoleApproval
  7. DefaultSODApproval
  8. OAACGRoleAssignSODCheck
  9. ProvideInformation
  10. RequestorManagerApproval
  11. DefaultSODApproval
  12. DisconnectedProvisioning.

Also as was mentioned all self assign role/resource etc have been deprecated along with resource related request types.


Thursday, April 23, 2015

OIM's New Flat File Connector

In this post, I will talk about OIM's new flat file connector which was released some time back.
After doing some testing with the connector , these are my findings on the connector.


  1. This connector is the way to go while dealing with flat file trusted/target reconciliation and should be used instead of GTC as it done away with GTC wizard.
  2. It relies on schemaFile to manage and define the structure of data, primary key, date key, mutivalued data.
  3. You can manually edit the schema file (.properties) to declare fields and their properties.
  4. Data file sits separately on the server with the first line just containing the column header followed by records of data.
  5. You can load/reconcile users, accounts, roles, entitlements, connected/disconnected resource data etc. using this connector.
  6. you can create custom parsers for parsing data which is in other format than CSV.
  7. it also supports reconciling complex multivalued data.
  8. delimiter, comment, mutivalued data indicator characters are configurable.
  9. if data contains " " spaces then it should be double quoted. (text qualifier=" configurable option)
  10. Flat File Header (column names in first line) can contain spaces to define column names. It need not be double quoted as it is not data.
  11. It supports Preprocess and Postprocess Handlers which can be handy for perform any job on the flat file directory, like zipping and unzipping files, encryption and decryption of the complete file dumps or specific fields in the files, virus scan of the files, or any other tasks limited only by the implementation of these tasks.
  12. reconciliation of deleted records is supported.
  13. Connector comes OOTB groovy script which is easy to use to generate trusted/target or disconnected application specific metadata (OIM artifacts)
  14. Most of the configuration can be changed during runtime by modifying lookups, schemaFile and dataFile. Lets say you add a new column then update the lookups then Schema File and then add the data in data file to get it working.
  15. Archiving by default moves the processed file to the folder specified and zips it with a time stamp value.
  16. In case of failure, file gets moved to a failed folder
  17. Transformation and data validation is also handled.
  18. This Connector can run on OIM machine or on a machine where Connector Server is running so this gives the additional flexibility of where to do all the processing.

OIM 11.1.2.2.0 (11g R2 PS2) Design Console Error - oracle/jrf/PortabilityLayerException

If you have run into the below error while copying the Design Console from Linux box to windows box so that you can run it locally

exception in thread main java.lang.noclassdeffounderror: oracle/jrf/PortabilityLayerException
at com.thortech.xl.client.base.tcAppWindow.internalLogin(tcAppWindow.java:583)

then the fix for this error is to copy jrf-api.jar from server's oracle_common/modules/oracle.jrf folder to either lib or ext folder in design console
and then edit the classpath.bat to correct the path at the end to include jrf-api.jar

On server side DC works becuase jrf-api.jar points to correct location
but while copying the reference breaks.



Monday, April 20, 2015

OIM 11g R2 Ps2 - Deployment Repository (Life Cycle Manager) Deployment Issue

In this post, I will talk about a issue which will come across on 64 bit library check by the installer during -install phase.
Well it seems that issue is with refhost.xml in the iam suite that checks for wrong 32 bit library.

However, there has been a bug detected ( Bug:19498500 : INST_IM DEPLOYING IAM ON RHEL 6.1/6.5 FAIL, ALSO-IGNORESYSPREREQS NOT WORKING )

Here is the workaround they suggested


1. Download patch:18440102 from My Oracle Support

2. This contain refhost.xml

- take a backup (rename ) the following refhost.xml from your Deployment Repository folders , from the following folders :

 /home/oracle/lcm/tools/idmlcm/repository/installers/oud/Disk1/stage/prereq/linux64/refhost.xml
 /home/oracle/lcm/tools/idmlcm/repository/installers/iamsuite/Disk1/stage/prereq/linux64/refhost.xml
/home/oracle/lcm/tools/idmlcm/repository/installers/webgate/Disk1/stage/prereq/linux64/refhost.xml

- replace above files with that from patch 18440102

Saturday, April 18, 2015

RCU - Silent Execution

In this post, I will talk about the Repository Creation Utility (RCU) silent execution.
Well the silent execution can be run for any Fusion Middleware Products that comes with RCU utility but in this post I will talk about the OIM specific RCU.


Well here the direct command.

c:\rcuHome\bin>rcu.bat -silent -createRepository -databaseType ORACLE -connectString localhost:1521:orcl -dbUser sys -dbRole sysdba -useSamePasswordForAllSchemaUsers true -schemaPrefix  DEV -component MDS -component OPSS -component OIM -component SOAINFRA -component ORASDPM -f < pwd.txt

please put passwords in pwd.txt

there is 1 more variation where you specify the tablespace names

c:\rcuHome\bin>rcu.bat -silent -createRepository -databaseType ORACLE -connectString localhost:1521:orcl -dbUser sys -dbRole sysdba -useSamePasswordForAllSchemaUsers true -schemaPrefix  DEV -component MDS -component OPSS -component OIM -component SOAINFRA -component ORASDPM -tablespace DEV_MDS -tablespace DEV_OPSS -tablespace DEV_OIM -tablespace DEV_SOAINFRA -tablespace DEV_ORASDPM -tempTablespace DEV_MDS_TEMP  -tempTablespace DEV_OPSS_TEMP  -tempTablespace DEV_OIM_TEMP  -tempTablespace DEV_SOAINFRA_TEMP  -tempTablespace DEV_ORASDPM_TEMP -f < pwd.txt

The only challenge that I see with silent execution is getting the name of the component and its dependent component right as there is no automatic dependency selection which happen in UI.