Search This Blog

Wednesday, June 3, 2015

Fix to issue of not being able to write Lookup group name

There is a new bug 21171801 that I requested to be created.  This bug has likely been with OIM for some time and is in all versions I can find.

The bug was first reported in 2013.  Here is the issue: when attempting to update the group name of a lookup using the API, the write fails.  Very few people read or write lookups using the API.  I have written a schedule task to back up and restore lookups.

The bug is in the name of the Field lookup called Lookup Definition.Group which translates to LKU_TYPE_GROUP.  If you query the LKU table for the field lookups you will see that each field lookup translates to a table field name in the database.  There is no LKU_TYPE_GROUP in the database, it is called LKU_GROUP.

Field lookups cannot be exported, imported, or modified in the Design Console.  The only fix to this is the following command executed as the OIM schema owner:

SQL> UPDATE LKU SET LKU_FIELD='LKU_GROUP' WHERE 
  2  LKU_TYPE_STRING_KEY='Lookup Definition.Group';
SQL> COMMIT;

I constructed this update query this way to prevent someone from accidentally forgetting the second line.  This change has no effect on imports, exports, or editing of the Lookups including updating the lookup group name of any lookup.  This translation appears to only be used by the API and does not appear to be used by the Design Console or Nexaweb, both of which are supposedly connected via the EJBs directly to the database.

I will update this blog when a patch for this bug is released.



Wednesday, May 13, 2015

Adding the valueChangeListener to the modify user sandbox

A modify user sandbox will not have the valueChangeListener set properly for those new fields that were added, and so those need to be added.  Here is what to do:

Make a copy of the sandbox.
Using 7-Zip, perform an Extract to: the folder name.
Nav into the folder notice the folders mdssys, oracle, pageDefs, and templates.
Find the file oracle\iam\ui\runtime\form\view\pages\mdssys\cust\site\site\userModifyForm.jsff.xml
Edit this with notepad++

Look for fields that are missing this:

Review each UI component and verify it has a value of 

valueChangeListener="#{pageFlowScope.cartDetailStateBean.attributeValueChangedListener}"

You will find that the checkboxes are missing this.  It goes after value= tag.  Some inputText fields may also be missing this.

look for <af:inputText
look for <af:selectBooleanCheckbox
look for <af:selectOneChoice
look for <af:inputDate also make sure they all have that tag.

When done do the following:

in the folder with the 4 folders mentioned above in it, select them all and do a right click send to compressed archive.  The archive will be called templates.zip just rename it and then use that sandbox for the procedure.

Go into the identity page and import the new file.  Activate the file and then verify functionality before publishing it.  Be sure to sign out and close all windows and tabs of the browser.