Missing ‘Access.ClearanceItemView’ Database View Preventing Clearance Modifications and Causes Clearance Rejects

Article ID: SWH-KB-000038304

Summary

Version 3.00.4 CU02 added a new database view called Access.ClearanceItemView. Some users have reported that, after installing 3.00.4 CU02 or later versions (such as CU03, CU04, etc.), the Access.ClearanceItemView was not created. This issue has led to failures when modifying clearances and resulted in access being denied.

Issue Details

Symptoms:

    • All personnel clearance attempts result in “Rejected clearance.”
    • Windows Application Event Viewer & C•CURE 9000 System Trace Log reports

 Error: Invalid object name ‘ACVSCore.Access.ClearanceItemView’

    • Clearances cannot be added or modified in the Administration Client; attempting to do so triggers a popup stating: “Object reference not set to an instance of an object.”

Root Cause

Version 3.00.4 CU02 added the SQL View Access.ClearanceItemView.

Instances that can cause Error:

  • The user account that installed the CU does not have enough SQL privileges to create a database view.
  • A backup from before 3.00.4 CU02 was restored, missing Access.ClearanceItemView. Since the system is now on 3.00.4 CU02 or later, the C•CURE 9000 Administration Station cannot find Access.ClearanceItemView.

Resolution

Option 1: Reinstall CU:

  • Uninstall CU02 & Reinstall CU using account with SQL permissions.
  • Verify SQL View Access.ClearanceItemView now exists.

In SQL navigate to Databases > ACVSCore > Views.

Option 2: Run SQL Script to Create View

  • Stop C•CURE 9000 Services.
  • Back up the ACVSCore database.
  • Run the script to insert the view.
  • Restart C•CURE 9000 Services.

 

USE [ACVSCore]

GO

/****** Object: View [Access].[ClearanceItemView]******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

--**************************************************************************************
--* View: [Access].[ClearanceItemView]
--* (c) 2026 Tyco International Ltd. and its respective companies. All rights reserved.
--**************************************************************************************

CREATE view [Access].[ClearanceItemView]
with schemabinding
as
(
  select
    ci.ObjectID,
        ci.GUID,
        ci.ClassType,
        ci.Protected,
        ci.LastModifiedTime,
        ci.LastModifiedByID,
        ci.ClearanceID,
        ci.DoorID,
        ci.DoorGroupID,
        ci.ElevatorID,
        ci.ElevatorGroupID,
        ci.FloorID,
        ci.FloorGroupID,
        ci.ScheduleID,
        d.Name as DoorName,
        e.Name as ElevatorName,
        f.Name as FloorName,
        dp.Name as DoorPartitionName,
        ep.Name as ElevatorPartitionName,
        fp.Name as FloorPartitionName,
        dg.Name as DoorGroupName,
        eg.Name as ElevatorGroupName,
        fg.Name as FloorGroupName,
        dgp.Name as DoorGroupPartitionName,
        fgp.Name as FloorGroupPartitionName,
        egp.Name as ElevatorGroupPartitionName,
        ts.Name as ScheduleName,
        tsp.Name as SchedulePartitionName
        from Access.ClearanceItem as ci
        left outer join Access.Door as d on ci.DoorID = d.ObjectID and ci.DoorID > 0
        left outer join dbo.Partition as dp on d.PartitionID = dp.ObjectID
        left outer join Access.Elevator as e on ci.ElevatorID = e.ObjectID and ci.ElevatorID > 0
        left outer join dbo.Partition as ep on e.PartitionID = ep.ObjectID
        left outer join Access.Floor as f on ci.FloorID = f.ObjectID and ci.FloorID > 0
        left outer join dbo.Partition as fp on f.PartitionID = fp.ObjectID
        left outer join Access.Group_ as dg on ci.DoorGroupID = dg.ObjectID and ci.DoorGroupID > 0
        left outer join dbo.Partition as dgp on dg.PartitionID = dgp.ObjectID
        left outer join Access.Group_ as fg on ci.FloorGroupID = fg.ObjectID and ci.FloorGroupID > 0
        left outer join dbo.Partition as fgp on fg.PartitionID = fgp.ObjectID
        left outer join Access.Group_ as eg on ci.ElevatorGroupID = eg.ObjectID and ci.ElevatorGroupID > 0
        left outer join dbo.Partition as egp on eg.PartitionID = egp.ObjectID
        inner join Access.ScheduleItem as ts on ci.ScheduleID = ts.ObjectID
        left outer join dbo.Partition as tsp on ts.PartitionID = tsp.ObjectID
)

GO
SWH-KB-000038304.pdf