cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Known Issue: Asset views may be inaccessible if custom property names have mismatched case between AssetTypeProperty_MT and UIItem_MT tables (IOJ-2172965)

Known Issue: Asset views may be inaccessible if custom property names have mismatched case between AssetTypeProperty_MT and UIItem_MT tables (IOJ-2172965)

Summary

Asset views in the web UI may be inaccessible if custom properties and custom asset types are configured, and where the case differs in custom property names specified in the following table columns in the compliance database:

  • AssetTypeProperty.PropertyName
  • UIItem.ItemResourceName

Details

The following error message is displayed when this problem occurs: 

We have a problem. Unexpected error
Sorry, but something unpleasant has happened. Please let us know what you were trying to do so that we can fix the problem. We suggest starting again from the dashboard, or trying again later.

Logging in the webui.log file may show details like the following:

[ERROR 2021-01-11 06:07:24,413 1127412ms UnhandledErrors                        ] An unexpected error occurred (f6dbcf18-5eeb-45d1-90ce-22973ad9909f)
System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at DevExpress.Xpo.Metadata.ReflectionClassInfo.QueryOwnMember(String memberName)
   at DevExpress.Xpo.Metadata.XPClassInfo.FindMember(String memberName)
   at DevExpress.Xpo.Metadata.Helpers.MemberInfoCollection.FindMember(XPClassInfo currentClassInfo, String match)
   at DevExpress.Xpo.Metadata.Helpers.MemberInfoCollection..ctor(XPClassInfo classInfo, String[] matches, Boolean addNonPersistent, Boolean throwOnError)
   at DevExpress.Xpo.Metadata.XPClassInfo.ParsePath(String path)
   at DevExpress.Xpo.Parser.MemberAccess(MemberExpression expression, CriteriaOperator parent, XPClassInfo currentClassInfo)
[...]
   at DevExpress.Xpo.XPQueryBase.Where(MethodCallExpression call)
   at DevExpress.Xpo.XPQueryBase.Call(MethodCallExpression call)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
[...]
   at ManageSoft.Database.Xpo.XpoQueryCustom`1.CreateQuery(Expression expression, XPQueryBase col)
[...]
   at Castle.Proxies.IDisposableProxy_12.GetChangedDevice()
   at Flexera.Web.Presentation.Controllers.AssetsController.GetAssets[T](AssetState assetState)
[...]
   at ASP._Page_Views_Assets_List_cshtml.Execute() in C:\Program Files (x86)\Flexera Software\FlexNet Manager Platform\WebUI\Views\Assets\List.cshtml:line 64

Alternatively, the following details may appear in logging:

 

[ERROR 2022-02-15 18:31:45,695 1173697ms UnhandledErrors       ] An unexpected error occurred (245638ec-31e3-48c9-81bf-0879ed2117b8)
System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at DevExpress.Xpo.Metadata.ReflectionClassInfo.QueryOwnMember(String memberName)
   at DevExpress.Xpo.Metadata.XPClassInfo.FindMember(String memberName)
   at DevExpress.Xpo.Metadata.XPClassInfo.GetMember(String memberName)
   at ManageSoft.Database.Xpo.XpoSession.OverrideSortColumn(Type p_ObjectType, String p_Column, Func`2 p_SortSqlFunc)
   at Flexera.Web.Core.Display.UiHelper_Grid.OverrideSortValueRangeColumn(String columnName, Type propertyType, XpoSession session, Type elementType, IEnumerable`1 dataSource)
   at Flexera.Web.Core.Display.UiHelper_Grid.ConfigureRangeColumn(UiHelper ui, MVCxGridViewColumn column, ModelMetadata propertyMetadata, GridCustomSettings settings)
   at Flexera.Web.Core.Display.UiHelper_Grid.ConfigureColumns(UiHelper ui, GridCustomSettings settings, Boolean allowScrolling)
   at Flexera.Web.Core.Display.UiHelper_Grid.ConfigureGrid(UiHelper ui, GridCustomSettings settings, Func`2 noResultsRazor, Boolean allowScrolling, Boolean delayLoad, Boolean showAllRecords)
   at Flexera.Web.Core.Display.UiHelper_Grid.<>c__DisplayClass2.<Grid>b__1(GridCustomSettings settings)
   at Flexera.Web.Core.Display.DevExpressHelper.GridViewCustom(ExtensionsFactory factory, Action`1 method)
   at Flexera.Web.Core.Display.UiHelper_Grid.RenderGridInternal(UiHelper ui, IViewModel modelType, IEnumerable modelList, Action`1 customSettings, GridCustomSettings baseSettings)
   at Flexera.Web.Core.Display.UiHelper_Grid.RenderGrid(UiHelper ui, IViewModel modelType, IEnumerable modelList, Action`1 customSettings, GridCustomSettings baseSettings)
   at Flexera.Web.Core.Display.UiHelper_Grid.GridForModel(UiHelper ui, Func`2 toolbarRazor, Func`2 noResultsRazor, Boolean allowSelection, Boolean crossPageSelection, Boolean showFilter, Boolean showSearch, Boolean delayLoad, Boolean showToolbar, GridCustomSettings baseSettings)
   at ASP._Page_Views_Assets_List_Grid_cshtml.Execute() in c:\Program Files (x86)\Flexera Software\FlexNet Manager Platform\WebUI\Views\Assets\List_Grid.cshtml:line 52
[...]
   at ASP._Page_Views_Assets_List_cshtml.Execute() in c:\Program Files (x86)\Flexera Software\FlexNet Manager Platform\WebUI\Views\Assets\List.cshtml:line 64

 

Resolution

To resolve this issue, ensure the case in the values in the AssetTypeProperty.PropertyName and UIItem.ItemResourceName columns exactly match.

Tip: Flexera One ITAM customers should contact Flexera Support to perform the following steps.

The following SQL query can be executed against the compliance database to identify rows in the AssetTypeProperty view that have no corresponding rows in the UIItem view - if any rows are returned then this issue is likely to be triggered:

SELECT *
FROM dbo.AssetTypeProperty
WHERE PropertyName COLLATE SQL_Latin1_General_CP1_CS_AS NOT IN (
    SELECT ItemResourceName COLLATE SQL_Latin1_General_CP1_CS_AS
    FROM dbo.UIItem
)

Perform the following steps to correct problematic data:

  1. Take a copy of data in the AssetTypeProperty view for future reference if needed. This can be simply be copy ofthe data into an Excel file or similar.
  2. Run the following SQL statements to update property names to match the case specified in the UIItem view:
    SELECT ItemResourceName
    INTO #TT
    FROM dbo.UIItem WHERE ItemResourceName IN (
      SELECT DISTINCT PropertyName
      FROM dbo.AssetTypeProperty
      WHERE PropertyName COLLATE SQL_Latin1_General_CP1_CS_AS NOT IN (
        SELECT ItemResourceName COLLATE SQL_Latin1_General_CP1_CS_AS FROM dbo.UIItem
      )
    )
    
    UPDATE t
    SET t.PropertyName = s.ItemResourceName
    FROM dbo.AssetTypeProperty t
      INNER JOIN #TT s ON t.PropertyName COLLATE SQL_Latin1_General_CP1_CI_AS = s.ItemResourceName COLLATE SQL_Latin1_General_CP1_CI_AS
    
  1. Verify that re-running the initial query above now returns no rows to confirm that the problematic data has now been corrected.

Cause

This issue is caused by case-insensitive comparisons that are done between property names in different tables since the FlexNet Manager Suite 2020 R2 release.

This behavior will not be changed as allowing different cases for property names causes other problems, and problematic data can be easily corrected.

 

Fix status

There are no plans to address this issue.

Other information

Affected components: Web UI

Master issue ID: IOJ-2172965

Also known as: FNML-73891

Labels (1)
Was this article helpful? Yes No

Tip: If you have been impacted by this issue, please click the KUDOS button above. This helps to track the relative significance and importance of issues. Clicking on an option against "Was this article helpful?" also helps assess and improve the usefulness of content.

No ratings
Comments

This article says that issue IOJ-2172965 will not be adressed, yet in this support case it says that release 2022 R1 will fix it: https://flexeracommunity.force.com/Community/s/caselistview?id=5008Y00001mPS96 (#02518330)

@tiloprobst - Flexera Support case #02518330 does not appear to be related to the issue described in this article. That case is related to the following issue: Known Issue: Unable to download Oracle LMS evidence archive if file is 1GB or larger (IOJ-2215238)

Version history
Last update:
‎Jun 12, 2022 03:50 AM
Updated by: