We are nearing our production upgrade, and the administration --> system --> user and resource management --> users --> user management continues to crash when selecting the item. Error messages are
Error occurred in class CoreExceptionHandler, method ShowException
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
Exception details have been written to the log file.
ConstraintException: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
at GE.CPO.Common.Logic.LogicBase.ExecuteSql(String sql, DataSet ds, TypedParameterCollection paramCollection, String tableName)
at GE.CPO.Common.Logic.CommonLogic.AllUserResources(Boolean onlyApplicationUsers, String[] sortByColumns)
at GE.CPO.Common.UI.SelectExResource.ResourceMgmtListView.BuildDataView(DoctorFacilityTypes[] resourceTypes, String initialOrderByColumn, Hashtable searchCriteria)
at GE.CPO.Common.UI.MgmtListViewCtrl.RefreshAllListViewItems(Boolean forceRefresh)
at GE.CPO.Common.UI.SelectCtrlEx.RefreshFiltersAndRepopulate()
at GE.CPO.Common.UI.ResourceMgmt.ResourceMgmtCtrl.SetInitialFilterControlStates()
This is query function in my opinion. I don't understand where a constraing violation could occur Has anyone seen this happen? I haven't received a response from GE yet.
Thanks.
John
Outside In - Data Analyist
@outsidein.org" rel="nofollow" target="_blank">johnk@outsidein.org
Please let me know we are doing an upgrade on 8-16-13 to version 11 and I am in charge of doing all of the securities.
Conda said:
Please let me know we are doing an upgrade on 8-16-13 to version 11 and I am in charge of doing all of the securities.
We spent 3 hours on the phone with GE with no resolution. Interestingly, user management works against the demo database and website. I restored the 9.5 database and reran the upgrade. No errors in upgrade, yet still got the same result. This morning GE will be contacting us again with a plan of action. It seems to point to the database, but the message is too generic.
John
Conda,
Working with GE, we found we had multiple active doctorfacility records pointing to the same USR records. You may not run into this. GE provided us with the script below. Good luck on your upgrade. We are scheduled for this weekend.
John
-- Step 1: find the duplicates.
select doctorfacilityid, COUNT(*) from USR WHERE DoctorFacilityID IS NOT NULL group by doctorfacilityid having COUNT(*) > 1
go
---------------------------------------------------------------------
-- Step 2: View details for all these duplicates using the doctorfacilityid found in step 1.
select doctorfacilityid,status,* from USR where doctorfacilityid in (44,1131,1997)
go
---------------------------------------------------------------------
-- Step 3: Fix duplicate IDs by picking a loser for each pair, and setting them:
-- a) Inactive (Status='O')
-- b) Removing their DoctorFacilityID (DoctorFacilityID=NULL)
-- for LoginName='junz', DoctorFacilityID was 44
update usr set doctorfacilityid=NULL,status='O' where PVID=1498641295007010
-- For LoginName='skyen', DoctorFacilityID was 1131
update usr set doctorfacilityid=NULL,status='O' where PVID=1520193201009910
-- For LoginName='lyonp', DoctorFacilityID was 1997 (already inactive)
update usr set doctorfacilityid=NULL,status='O' where PVID=1579774883014290
GO
---------------------------------------------------------------------
-- Step 4: confirm no duplciate DoctorFacilityID values in the USR table
select doctorfacilityid, COUNT(*) from USR WHERE DoctorFacilityID IS NOT NULL group by doctorfacilityid having COUNT(*) > 1
go
Are you using AD or sequel authentication
We are currently using AD authentication will be moving to Application for support reasons. That will be problematic beacuse it appears the AD passwords do not appear to be transferred over. Our strategy is to set the initial password, plus setting the flag to change upon login.