000016508 - RSA Archer record when accessed by non-admin user will produce an unexpected error in the page

Document created by RSA Customer Support Employee on Jun 14, 2016Last modified by RSA Customer Support on Apr 30, 2019
Version 3Show Document
  • View in full screen mode

Article Content

Article Number000016508
Applies ToRSA Product Set: Archer
RSA Version/Condition: 5.x
IssueRSA Archer record, when accessed by a non-admin user, will produce an unexpected error in the page.

The same record, when accessed by a sysadmin and/or by another admin account, does not produce an error.

Errors / Stack Trace seen in Archer.w3wp.<Data/Time>.Log is:

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
  <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
    <EventID>0</EventID>
    <Type>3</Type>
    <SubType Name="Error">0</SubType>
    <Level>2</Level>
    <TimeCreated SystemTime="#####" />
    <Source Name="Archer.Web" />
    <Correlation ActivityID="{00000000-0000-0000-7f27-0080000000da}" />
    <Execution ProcessName="w3wp" ProcessID="1488" ThreadID="132" />
  </System>
  <ApplicationData>
    <TraceData>
      <DataItem>
        <TraceRecord Severity="Error" xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord">
          <TraceIdentifier>Archer.Web</TraceIdentifier>
          <LogReferenceId>122112-202209-3001</LogReferenceId>
          <Description>One or more errors occurred.</Description>
          <AppDomain>/LM/W3SVC/1/ROOT/Archer-1-130005120281260153</AppDomain>
          <ContextData>
            <BaseUrl>https://ServerName/Archer/GenericContent/Record.aspx</BaseUrl>
            <id>9999999</id>
            <Module>ModuleId: 999999,  ModuleName: ModuleName, ModuleStatus: ActiveInProduction, ModuleType: Application</Module>
          </ContextData>
          <Exception>
            <ExceptionType>System.AggregateException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
            <Message>One or more errors occurred.</Message>
            <Source>mscorlib</Source>
            <StackTrace> at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
                at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout)
                at ArcherTech.Web.Modules.GenericContent.GenericContentDataManager.GetRecordData(Int32 contentId, Nullable`1 levelId, NameValueCollection postCollection, List`1 valuesToAdd, List`1 valuesToRemove, Int32 castScorecardContentId, Int32 castFieldId, Boolean isForCopy, ContentDisplayModeType mode, Action`1 update)
                at ArcherTech.Web.Modules.GenericContent.Views.RecordPresenter.LoadRecordData()
                at ArcherTech.Web.Modules.GenericContent.Views.RecordPresenter.OnViewLoaded()
                at ArcherTech.Web.ArcherTechPage`2.OnLoad(EventArgs e)
                at Security2000.GenericContent.Record.OnLoad(EventArgs e)
                at System.Web.UI.Control.LoadRecursive()
                at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</StackTrace>
            <InnerException>
              <ExceptionType>System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
              <Message>An item with the same key has already been added.</Message>
              <Source>mscorlib</Source>
              <StackTrace>
                at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
                at ArcherTech.Kernel.DataSource.Db.ContentDataSource.GetSubformParentContentField(IEnumerable`1 subformContentIds)
                at ArcherTech.Kernel.Utility.Permissions.SubformContentAccessCheck.CheckAccess(ExtendedSessionContext context, AccessCheckData data, Boolean applyContentEditPermissions)
                at ArcherTech.Kernel.Utility.Permissions.SubformContentAccessCheck.InternalCheckReadAccess(ExtendedSessionContext context, AccessCheckData data)
                at ArcherTech.Kernel.Brokers.ContentBroker.ApplySubformPermission(IList`1 contentIds)
                at ArcherTech.Kernel.Brokers.ContentBroker.GetPermissionedContent(IList`1 contentIds, Boolean checkModulePermission, Boolean checkContentPermission)
                at ArcherTech.Kernel.Brokers.ContentBroker.Get(IList`1 contentIds, IList`1 fieldIds)
                at ArcherTech.Kernel.Utility.ManagerHelper.WrapCode[T](ManagerEventIdentifier managerEventId, SessionContext sessionContext, ExtendedManagerMethodWrapper`1 wrapped)
                at ArcherTech.Web.Modules.GenericContent.DataManagers.ContentLoader.GetRelatedContents(SessionContext session, IList`1 referenceFieldMetaDatas, Nullable`1 parentContentId, IDictionary`2 fieldContents, Boolean isEditMode)
                at ArcherTech.Web.Modules.GenericContent.DataManagers.ContentLoader.GetRelatedContents(SessionContext session, LevelRecordDataContainer levelRecordDataContainer, Boolean isEditMode)
                at ArcherTech.Web.Modules.GenericContent.GenericContentDataManager.<>c__DisplayClass15.<GetRecordData>b__d()
                at ArcherTech.Provider.Threading.ThreadingFactory.<>c__DisplayClass2.<WrapAction>b__1()
                at System.Threading.Tasks.Task.Execute()</StackTrace>
            </InnerException>
          </Exception>
        </TraceRecord>
      </DataItem>
    </TraceData>
  </ApplicationData>
</E2ETraceEvent>


 
CauseIssue is caused upon user's record permission verification when a single sub-form (Comments) record is associated with more than one parent application records. Each parent application record will usually have unique sub-form (Comments) records. This could potentially happen if a duplicate parent application record was created with the same Comment sub-form record association.
 
ResolutionThere are two options to fix this issue:
  1. Identify and remove the duplicate parent application record. OR
  2. Identify and remove Comments sub-form record reference from the duplicate parent application record.
To identify the problem Comments sub-form record tracking ID:

  1. Add a Tracking ID (if does not exist - add a new field of type tracking ID) field on the Comments sub-form and change the parent application sub-form field settings to display the tracking ID from the Comments sub-form.- Following the same procedure to add a tracking ID field for the parent application.
  2. Create a custom search on the application to display tracking ID fields from the parent application and the Comments sub-form. Review the search results for sub-form tracking ID and see if it is associated with multiple parent application record tracking IDs.

To identify the problem Comments sub-form record tracking ID via SQL Query:

Use <ArcherInstanceDB>
Select
m.module_name as Parent_App,
fd.field_name as Ref_FieldName,
mc.content_id as Parent_ContentID,
mc.record_id as Ref_ContentID
from tblIVModuleContent(NOLOCK) mc
Join tblIVFieldDef(NOLOCK) fd on mc.field_id = fd.field_id
Join tblIVContent(NOLOCK) c on mc.content_id = c.content_id
Join tblLevel(NOLOCK) l on c.level_id = l.level_id
Join tblModule(NOLOCK) m on l.module_id = m.module_id
Where m.module_name like '%Incidents%' and mc.record_id = <CommentsSubformRecordTrackingID>
order by Ref_ContentID ASC
Legacy Article IDa60444

Attachments

    Outcomes