Sunday, July 27, 2014

OIM11gR2: Bulk Load Bugs

If you have been using OIM Bulk Load Utility to load the accounts,users,roles and et al, a piece of advice, please make sure that you keep the input file name to less than 25 characters else you will see below error in the logs:

***************************************************************************************************
Processing File: Users_DisabledUntilStartDate.csv

---------------------------------------------------------
java.sql.SQLException: ORA-01400: cannot insert NULL into ("HA_OIM"."OIM_BLKLD_LOG"."LOAD_SOURCE")
ORA-06512: at "DEV_OIM.OIM_BLKLD_SP_LOG_MSG", line 21
ORA-06512: at "DEV_OIM.OIM_BLKLD_PKG_USR", line 1505
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1

        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
        at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:204)
        at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1034)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685)
        at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4694)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1088)
        at bulkload.UserLoad.processData(UserLoad.java:373)
        at bulkload.UserLoad.loopAllCSVs(UserLoad.java:264)
        at bulkload.UserLoad.inputCSV(UserLoad.java:172)
        at bulkload.UserLoad.showSubMenu(UserLoad.java:95)
        at bulkload.UserLoad.main(UserLoad.java:988)
---------------------------------------------------------


===============================================================================
Time taken in re-building indexes and enabling FK constraints
===============================================================================

Start time:      24-JUL-14 05.57.11.971759 PM
End Time:        24-JUL-14 05.57.35.589116 PM

Seeing this error in the logs, my first thought that something might be wrong with my input file but after rounds of verifying the column name and data, I decided to ask google about this error. I was lucky enough to find time some pointers quickly and finally figured it out that problem was with length of input file. After changing the file name to lo have less than 25 characters, the load went fine.

Below is the forum post that provided me pointers on this issue:

https://community.oracle.com/thread/1062129


 

Tuesday, July 22, 2014

How to Enable The Submit Button For Custom UDFs in OIM11gR2

Follow the below steps to enable the submit button:
  • Export your sandbox that you have used to add the UDFs on Modify User Form.
  • Extract the Sandbox zip file.
  • Search for userModifyForm.jsff.xml and open it in edit mode. 
  • For each UDF for which you want submit button to be enabled, add below properties in the ADF tag, :
valueChangeListener="#{pageFlowScope.cartDetailStateBean.attributeValueChangedListener}" autoSubmit="true"

For example:

AS-IS
  
      http://xmlns.oracle.com/adf/faces/rich
" value="#{bindings.JobTitle__c.inputValue}" label="#{bindings.JobTitle__c.hints.label}" required="#{bindings.JobTitle__c.hints.mandatory}" columns="#{bindings.JobTitle__c.hints.displayWidth}" maximumLength="#{bindings.JobTitle__c.hints.precision}" shortDesc="#{bindings.JobTitle__c.hints.tooltip}" id="dtrt_dc_2235532621">
         http://java.sun.com/jsf/core
" binding="#{bindings.JobTitle__c.validator}"/>
     

    
TO-BE
  
      http://xmlns.oracle.com/adf/faces/rich

" value="#{bindings.JobTitle__c.inputValue}" label="#{bindings.JobTitle__c.hints.label}" required="#{bindings.JobTitle__c.hints.mandatory}" columns="#{bindings.JobTitle__c.hints.displayWidth}" maximumLength="#{bindings.JobTitle__c.hints.precision}" shortDesc="#{bindings.JobTitle__c.hints.tooltip}" valueChangeListener="#{pageFlowScope.cartDetailStateBean.attributeValueChangedListener}" autoSubmit="true" id="dtrt_dc_2235532621">
         http://java.sun.com/jsf/core
" binding="#{bindings.JobTitle__c.validator}"/>
     

  
  • Create the zip again. 
  • Import the sandbox and activate the sandbox to verify the change.
  • Once the change is verified, publish the sandbox.