Friday, March 7, 2014

How to Remove User Defined Field (UDF) From User Form UI

Version: Oracle Idenity Manager 11g R2
Description: OIM does not provide an easy way to remove a UDF from the User form. A workaround is to export a sandbox, modify serveral XMLs files, and import sandbox.   

1. Create a new sandbox, activate it, and make any change to the attribute you would like to delete.

2. Export the sandbox and unpack the zip folder.

3. Find all occurences of the attribute in the five XMLs. An example is given below with an attribute named "test" to be removed.

XMLs to modify:
persdef/oracle/iam/ui/common/model/user/view/mdssys/cust/site/site/UserVO.xml.xml
persdef/oracle/iam/ui/common/model/user/entity/mdssys/cust/site/site/UserEO.xml.xml
persdef/sessiondef/oracle/iam/ui/runtime/form/model/user/view/mdssys/cust/site/site/userVO.xml.xml
persdef/sessiondef/oracle/iam/ui/runtime/form/model/user/entity/mdssys/cust/site/site/userEO.xml.xml
xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf
 

persdef/oracle/iam/ui/common/model/user/view/mdssys/cust/site/site/UserVO.xml.xml
 <mds:insert parent="UserVO" position="last">
      <ViewAttribute Name="test__c" EntityUsage="UserEO" EntityAttrName="test__c" AliasName="test__c" IsPersistent="false" IsQueriable="false" xmlns="http://xmlns.oracle.com/bc4j">
         <Properties>
            <Property Name="AUTOSUBMIT" Value="true"/>
            <Property Name="ExtnCustom" Value="Y"/>
         </Properties>
      </ViewAttribute>
   </mds:insert>
 

persdef/oracle/iam/ui/common/model/user/entity/mdssys/cust/site/site/UserEO.xml.xml
   <mds:insert parent="UserEO" position="last">
      <Attribute Name="test__c" IsPersistent="false" IsQueriable="false" Precision="65" Scale="0" ColumnName="TEST__C" Type="java.lang.String" ColumnType="VARCHAR2(255)" SQLType="VARCHAR" xmlns="http://xmlns.oracle.com/bc4j">
         <CompOper Name="=" ToDo="2" Oper="=" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="STARTSWITH" ToDo="2" Oper="STARTSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="ENDSWITH" ToDo="2" Oper="ENDSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="&lt;>" ToDo="2" Oper="&lt;>" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="CONTAINS" ToDo="2" Oper="CONTAINS" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="DOESNOTCONTAIN" ToDo="2" Oper="DOESNOTCONTAIN" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="Dummy" ToDo="-2" Oper="Dummy" MinCardinality="1" MaxCardinality="1"/>
         <Properties>
            <Property Name="AttributeType" Value="Text"/>
            <Property Name="DISPLAYWIDTH" Value="40"/>
            <Property Name="ExtnCustom" Value="Y"/>
            <Property Name="LABEL_ResId" Value="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['oracle.iam.ui.common.model.user.entity.UserEO.test__c_LABEL']}"/>
            <Property Name="oimRefAttrName" Value="test"/>
         </Properties>
         <CompOper Name="=" ToDo="2" Oper="=" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="STARTSWITH" ToDo="2" Oper="STARTSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="ENDSWITH" ToDo="2" Oper="ENDSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="&lt;>" ToDo="2" Oper="&lt;>" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="CONTAINS" ToDo="2" Oper="CONTAINS" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="DOESNOTCONTAIN" ToDo="2" Oper="DOESNOTCONTAIN" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="Dummy" ToDo="-2" Oper="Dummy" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="=" ToDo="2" Oper="=" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="STARTSWITH" ToDo="2" Oper="STARTSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="ENDSWITH" ToDo="2" Oper="ENDSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="&lt;>" ToDo="2" Oper="&lt;>" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="CONTAINS" ToDo="2" Oper="CONTAINS" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="DOESNOTCONTAIN" ToDo="2" Oper="DOESNOTCONTAIN" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="Dummy" ToDo="-2" Oper="Dummy" MinCardinality="1" MaxCardinality="1"/>
      </Attribute>
   </mds:insert>
 

persdef/sessiondef/oracle/iam/ui/runtime/form/model/user/view/mdssys/cust/site/site/userVO.xml.xml
   <mds:insert parent="userVO" position="last">
      <ViewAttribute Name="test__c" EntityUsage="userEO" EntityAttrName="test__c" AliasName="test__c" IsQueriable="false" xmlns="http://xmlns.oracle.com/bc4j">
         <Properties>
            <Property Name="AUTOSUBMIT" Value="true"/>
            <Property Name="ExtnCustom" Value="Y"/>
         </Properties>
      </ViewAttribute>
   </mds:insert>
 

persdef/sessiondef/oracle/iam/ui/runtime/form/model/user/entity/mdssys/cust/site/site/userEO.xml.xml
 <mds:insert parent="userEO" position="last">
      <Attribute Name="test__c" IsQueriable="false" Precision="65" ColumnName="VARCHAR_ATTR_10" Type="java.lang.String" ColumnType="VARCHAR2(255)" SQLType="VARCHAR" xmlns="http://xmlns.oracle.com/bc4j">
         <CompOper Name="=" ToDo="2" Oper="=" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="STARTSWITH" ToDo="2" Oper="STARTSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="ENDSWITH" ToDo="2" Oper="ENDSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="&lt;>" ToDo="2" Oper="&lt;>" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="CONTAINS" ToDo="2" Oper="CONTAINS" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="DOESNOTCONTAIN" ToDo="2" Oper="DOESNOTCONTAIN" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="Dummy" ToDo="-2" Oper="Dummy" MinCardinality="1" MaxCardinality="1"/>
         <Properties>
            <Property Name="AttributeType" Value="Text"/>
            <Property Name="description_ResId" Value="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.test__c_description']}"/>
            <Property Name="DISPLAYWIDTH" Value="40"/>
            <Property Name="ExtnCustom" Value="Y"/>
            <Property Name="LABEL_ResId" Value="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.test__c_LABEL']}"/>
            <Property Name="oimBulkUpdate" Value="N"/>
            <Property Name="oimCertifiable" Value="N"/>
            <Property Name="oimEncrypted" Value="N"/>
            <Property Name="oimRefAttrName" Value="test"/>
            <Property Name="TOOLTIP_ResId" Value="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.test__c_TOOLTIP']}"/>
         </Properties>
         <CompOper Name="=" ToDo="2" Oper="=" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="STARTSWITH" ToDo="2" Oper="STARTSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="ENDSWITH" ToDo="2" Oper="ENDSWITH" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="&lt;>" ToDo="2" Oper="&lt;>" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="CONTAINS" ToDo="2" Oper="CONTAINS" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="DOESNOTCONTAIN" ToDo="2" Oper="DOESNOTCONTAIN" MinCardinality="1" MaxCardinality="1"/>
         <CompOper Name="Dummy" ToDo="-2" Oper="Dummy" MinCardinality="1" MaxCardinality="1"/>
      </Attribute>
   </mds:insert>
 

xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf
         <trans-unit id="persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.test__c_LABEL">
            <source>test</source>
            <target/>
         </trans-unit>
         <trans-unit id="oracle.iam.ui.common.model.user.entity.UserEO.test__c_LABEL">
            <source>test</source>
            <target/>
         </trans-unit>
 
4. Import sandbox and publish it.

3 comments: