I recently had a client call saying that one particular user could no longer access contacts from any method in the SalesLogix LAN client. Before the contact screen would open the user gets an error similar to:
While the exact error differed based on where you were trying to navigate from, generally you always so a similar “Control ” has no parent window” message.
It turns out what happened was the user had tried to drag the Contact tab “Processes” into the middle portion of the LAN client. Doing this sets a record in the USEROPTIONS table. This record defined what plugin should be loaded in the middle pane the next time the screen opens. By setting these attributes is how SalesLogix remembers what the screens should look like for a user. The problem is that the Processes tab is not a plugin. The Processes tab is part of the core SalesLogix executable. Apparently once you set that middle view property you are then no longer able to open the Contact view at all because the system is trying to find a plugin called “Contact:Processes”. Since it is not a plugin, it fails and you get the “Control ” has no parent window” message.
To fix this you can run the following SQL statement against your SalesLogix database.
update useroptions set optionvalue=null where name =’System|Contact Details’ and category=’MiddleView’ and cast(optionvalue as varchar(8000)) like ‘contact:processes%’
If you are not familiar with running a SQL statement, here is a step by step.
Boilerplate warning message:
Running SQL statements against your database when you don’t know what your doing can seriously hose things up. Only do this type of thing when instructed or when you know for sure what you are doing!
- Log into the SalesLogix Administrator as the Admin user.
- Go to the Tools…Execute SQL drop down menu.
- Within the Execute SQL dialog, In the top window, right click and choose Add.
- Copy the following SQL statement into the Edit SQL window: update useroptions set optionvalue=null where name
=’System|Contact Details’ and category=’MiddleView’ and
cast(optionvalue as varchar(8000)) like ‘contact:processes%’
- You can press the Test button to see how many rows will be updated. (Answer Yes to the Confirmation that is presented).
- Press OK on the Edit SQL dialog.
- Click the Execute statements on the Host Database check box.
- If you have remote users, move them all into the Selected Remotes list.
- Click the Execute button.
- Answer Yes to the Confirmation that is presented.
- Once the statement has run, press OK on the Execute SQL window that has appeared.
- Click Close on the Execute SQL dialog.
I have confirmed this to be an issue on all SLX level up through 8.0.