Setting default preferences via the BusinessObjects.XML

I believe I’ve just found an alternative to setting default preferences for large numbers of users beside building a SDK solution or using the VB macro option (https://bobj-board.org/t/75331) or using the Performance Manager prefsCopyUtil.jar (https://bobj-board.org/t/59586).

It appears to work great for “one time” mass settings but this wouldn’t work in a dynamic environment where users are being created all the time. It worked for me because I had a group of 2700 users in Dev that I need all of them to have the same preferences and migrate that group up to Production.

What I did was set one user’s preferences in the Group to what I wanted my standard template to be for all the users in the group. Then I exported that group and all it’s users to a BIAR file. I then changed that BIAR file to a ZIP extension and extracted the BusinessObjects.xml file. In the xml find the user you set as your standard. Then find any other user. Compare the two segments and you’ll see what you need to add/alter to all the other users to set their preferences the same. After you make the changes save the xml back to your zip, then rename the zip back to biar and Import it.

All is working fine for me. If you try this keep a backup of your original Group biar file!


For instance…my standard user was DemoUser and that segment looked like

- <io:InfoObject xsi:type="us:User">
  <io:Name>DemoUser</io:Name> 
  <io:Description>This is the user that the Rx Pilot UI logs into XI with. Do not change user or password.</io:Description> 
  <io:Cuid>okYxLDUADh9qavMALAKDBfb4J.8</io:Cuid> 
  <io:Ruid>okYxLDUADh9qavMALAKDBfb4J.8</io:Ruid> 
  <io:ParentCuid>AXhmigik4CBKra9ZYzR2ezE</io:ParentCuid> 
- <us:Aliases>
- <us:UserAlias>
  <us:Name>secEnterprise:DemoUser</us:Name> 
  <us:Disabled>false</us:Disabled> 
  <us:ID>secEnterprise:#okYxLDUADh9qavMALAKDBfb4J.8</us:ID> 
  </us:UserAlias>
  </us:Aliases>
  <us:EmailAddress>cbrown@ghx.com</us:EmailAddress> 
  <us:FullName>Rx Pilot Demo User</us:FullName> 
  <us:ProfileValues /> 
  <us:Groups /> 
  <us:PasswordExpiryAllowed>false</us:PasswordExpiryAllowed> 
  <us:PasswordToChangeAtNextLogon>false</us:PasswordToChangeAtNextLogon> 
  <us:Password>000H9T^EWi9a^5YT\Gm1L^XD8?3Fh\7lm:Z1</us:Password> 
  <us:NamedUser>false</us:NamedUser> 
- <us:UserProfiles>
  <us:Locale>1024</us:Locale> 
  <us:TimeZone>0</us:TimeZone> 
  <us:InfoViewSettings>defaultuniv=none&amp;dv5=1&amp;dv4=1&amp;defaultnav=folder&amp;vwm=1&amp;dv2=1&amp;dmdbid=11340&amp;dv1=1&amp;dv0=1&amp;mdb=0&amp;view=-2&amp;rpp=10&amp;clientsessionendmode=AskUser</us:InfoViewSettings> 
  <us:WIUserContentLocale /> 
  <us:WIUCLUsage>true</us:WIUCLUsage> 
  <us:WISaveAsXlsOptimized>Y</us:WISaveAsXlsOptimized> 
  <us:MeasurementUnit>pixels</us:MeasurementUnit> 
  <us:ViewLeftPaneW>192</us:ViewLeftPaneW> 
  <us:ViewLeftPaneSel>docinfo</us:ViewLeftPaneSel> 
  <us:WIViewTechno>I</us:WIViewTechno> 
  <us:WiCreateTechno>J</us:WiCreateTechno> 
  <us:ViewReportpal>1</us:ViewReportpal> 
  <us:ViewLeftPane>0</us:ViewLeftPane> 
  <us:ViewFormatPal>1</us:ViewFormatPal> 
  <us:ViewFormulaPal>0</us:ViewFormulaPal> 
  <us:ProfileData nameID="CADENZA_StructureSnapToGrid">false</us:ProfileData> 
  <us:ProfileData nameID="CADENZA_StructureShowGrid">false</us:ProfileData> 
  <us:ProfileData nameID="CADENZA_StructureGridSpacing">375</us:ProfileData> 
  <us:ProfileData nameID="CADENZA_SelectedView">1</us:ProfileData> 
  <us:ProfileData nameID="CDZ_VIEW_showStatus">0</us:ProfileData> 
  </us:UserProfiles>
  </io:InfoObject>

While all my others users looked like

- <io:InfoObject xsi:type="us:User">
  <io:Name>denafarrell</io:Name> 
  <io:Description /> 
  <io:Cuid>B58ecvFdWOg4cI8RhHSBA_Y</io:Cuid> 
  <io:Ruid>okaX_gwABZMidIAALQaDBfb47Ms</io:Ruid> 
  <io:ParentCuid>AXhmigik4CBKra9ZYzR2ezE</io:ParentCuid> 
- <us:Aliases>
- <us:UserAlias>
  <us:Name>secEnterprise:denafarrell</us:Name> 
  <us:Disabled>false</us:Disabled> 
  <us:ID>secEnterprise:#B58ecvFdWOg4cI8RhHSBA_Y</us:ID> 
  </us:UserAlias>
  </us:Aliases>
  <us:EmailAddress /> 
  <us:FullName /> 
  <us:ProfileValues /> 
  <us:Groups /> 
  <us:PasswordExpiryAllowed>true</us:PasswordExpiryAllowed> 
  <us:PasswordToChangeAtNextLogon>false</us:PasswordToChangeAtNextLogon> 
  <us:Password>000H2E0BNn:f7XjSoQJhV0FBjfMU?dOA\[C_</us:Password> 
  <us:NamedUser>true</us:NamedUser> 
  </io:InfoObject>

I just used a text editor and replaced the

 </io:InfoObject> 

With


- <us:UserProfiles>
  <us:Locale>1024</us:Locale> 
  <us:TimeZone>0</us:TimeZone> 
  <us:InfoViewSettings>defaultuniv=none&amp;dv5=1&amp;dv4=1&amp;defaultnav=folder&amp;vwm=1&amp;dv2=1&amp;dmdbid=11340&amp;dv1=1&amp;dv0=1&amp;mdb=0&amp;view=-2&amp;rpp=10&amp;clientsessionendmode=AskUser</us:InfoViewSettings> 
  <us:WIUserContentLocale /> 
  <us:WIUCLUsage>true</us:WIUCLUsage> 
  <us:WISaveAsXlsOptimized>Y</us:WISaveAsXlsOptimized> 
  <us:MeasurementUnit>pixels</us:MeasurementUnit> 
  <us:ViewLeftPaneW>192</us:ViewLeftPaneW> 
  <us:ViewLeftPaneSel>docinfo</us:ViewLeftPaneSel> 
  <us:WIViewTechno>I</us:WIViewTechno> 
  <us:WiCreateTechno>J</us:WiCreateTechno> 
  <us:ViewReportpal>1</us:ViewReportpal> 
  <us:ViewLeftPane>0</us:ViewLeftPane> 
  <us:ViewFormatPal>1</us:ViewFormatPal> 
  <us:ViewFormulaPal>0</us:ViewFormulaPal> 
  <us:ProfileData nameID="CADENZA_StructureSnapToGrid">false</us:ProfileData> 
  <us:ProfileData nameID="CADENZA_StructureShowGrid">false</us:ProfileData> 
  <us:ProfileData nameID="CADENZA_StructureGridSpacing">375</us:ProfileData> 
  <us:ProfileData nameID="CADENZA_SelectedView">1</us:ProfileData> 
  <us:ProfileData nameID="CDZ_VIEW_showStatus">0</us:ProfileData> 
  </us:UserProfiles>
  </io:InfoObject>

[/url]

In my case it was the Interactive View Format (us:WIViewTechnoI</us:WIViewTechno>) that was critical to the product.


charliebrown :us: (BOB member since 2002-09-03)

Good job, CB. I think I can use that. :smiley:


Todd Cook (BOB member since 2002-09-03)

Hi

Thanks this is very helpful.

Harish


harishreddy :india: (BOB member since 2006-05-11)