Question

Reseting personal profiles to the base profile

  • 29 October 2019
  • 9 replies
  • 795 views

Userlevel 2
Badge +5

Hi, 

Is there a smart way of reseting some predefined presentation objects in the personal profiles to the base profile for certain users( based on position codes for example)? 

I am thinking about doing this by scripting. Just wondring if there is some built in functions or a smart way that can be helpful. 


9 replies

Userlevel 7
Badge +18

In Enterprise Explorer, you can navigate to the base profile to accomplish this.

Presentation object layouts can be found with a pattern like this:

User/Windows/Features/frmCustomerOrder

(You may want to start on the “Layout” branch under the presentation object, which will limit the scope to just the screen layout without disturbing the user’s latest search condition.)

Right-mouse-click on the folder with the presentation object name, then select “Delete Values in Profiles”.

On the left side of the screen, under “Personal Profiles”, you have some options depending on your version:

  • “For users in User Group”
  • “For users in Company”
  • “For users on Site”
  • “For users with Language”
  • “Has Base Profile ‘’”

 

Userlevel 6
Badge +18

To add to the reply from @durette, the reason for the deletion from the Personal Profile is so that the Base Profile values will be used. 

There’s little point in trying to set values in a Personal Profile to be the same as what is in the Base Profile; simply delete the problematic ‘keys’ or ‘branches’ from the Personal and let the Base take precedence again.

I’ll also add that it can be remarkably easy to corrupt a profile… be sure to take a backup of it before attempting to manually modify any of the values.

Nick

Userlevel 7
Badge +18

it can be remarkably easy to corrupt a profile

I’ve resorted to doing most of my profile maintenance in SQL for this reason, but be prepared to fully own your mistakes if you decide to do the same.

In Enterprise Explorer, the “Layout” branches are masted by the keys found in each OutlineNames key. Each of these entries is stored in the database as a comma-separated string of values. The position within the OutlineNames CSV string gives you the meaning of each of the values inside the CSV strings for Left, Top, Width, Height, Visible, and the enabled tabs.

If the base profile OutlineNames doesn’t match your personal profile OutlineNames or can’t be sensibly remapped, it’ll become corrupt.

If the profile OutlineNames doesn’t match what the application is expecting, it’ll become corrupt. (IFS doesn’t deliver profile uplifts when they deliver updates and extensions.)

If an entry is added to OutlineNames without shifting the entries appropriately, such as a new custom field, it’ll become corrupt.

Userlevel 3
Badge +8

Hi Kevin,

This sounds very interesting but I can’t follow what you do.

Is it possible to find the profile layout somewhere in the database?

That could make it possible to setup scheduled backup of profiles.

BR Kresten

Userlevel 2
Badge +5

Hi,

I solved this by scripting. It was not enough to just delete the profile entries in some cases, so I ended up copying profile entries from the base profile to all the personal profiles. 

Userlevel 3
Badge +8

How do you access the entries? I can’t find them in the database.

Userlevel 2
Badge +5

I made a query for fetching the profile entries of interest.  

select
 cp.owner,
 cpv.* from fndrr_client_profile cp 
join fndrr_client_profile_value cpv on cpv.profile_id = cp.profile_id
where ( 
cpv.profile_section like '%tbwPartSerial%' or
dbms_lob.instr(cpv.profile_binary_value, 'find custom search by title or other values') >=1 o
)

Userlevel 3
Badge +8

That’s very usefull. Thanks!

Userlevel 7
Badge +18

Profile entries are not in First Normal Form. They’re concatenated in CSV format for IEE or in JSON format for Aurena.

 

If you add a field, it will need to be added to the OutlineNames entry. All the other entries like Left, LeftLabel, Top, TopLabel, etc. will need to be shifted by the same degree.

Old:
OutlineNames: FIELD_A,FIELD_B,FIELD_D
Top: 100,120,140

New, broken by the system:
OutlineNames: FIELD_A,FIELD_B,FIELD_C,FIELD_D
Top: 100,120,140

(This moves the value 140 to FIELD_C and leaves FIELD_D with no value.)

New, fixed by you:
FIELD_A,FIELD_B,FIELD_C,FIELD_D
Top: 100,120,160,140

 

Reply