000029443 - Unable to generate an RSA Archer Package: Unable to retrieve Level Layout information for the given Level

Document created by RSA Customer Support Employee on Dec 15, 2016Last modified by RSA Customer Support on Apr 23, 2019
Version 4Show Document
  • View in full screen mode

Article Content

Article Number000029443
Applies ToRSA Product Set: RSA Archer Suite
RSA Version/Condition: 5.x, 6.X
IssueThe user is unable to create a Package of the Application or Questionnaire and may also be unable to open the Application or Questionnaire through the Application Builder:

The following sample exceptions are from the JobFramework log file:
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
  <ApplicationData>
    <TraceData>
      <DataItem>
        <TraceRecord Severity="Error" xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord">
          <TraceIdentifier>Archer.Packaging</TraceIdentifier> 
          <UserId>70996</UserId> 
          <Description>Unable to retrieve Level Layout information for the given Level</Description> 
          <AppDomain>ArcherTech.JobFramework.Job.exe</AppDomain> 
          <Exception>
            <ExceptionType>System.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType> 
            <Message>Unable to retrieve Level Layout information for the given Level</Message> 
            <Source>ArcherTech.Packaging</Source> 
            <ContextData>
              <LevelId>326</LevelId> 
              <LevelGuid>{b79a5937-e2b4-41b7-83a9-62477aa7a6e8}</LevelGuid> 
              <LevelName>Findings</LevelName> 
              <Level_ModuleId>495</Level_ModuleId> 
              <Level_ModuleGuid>{1935a34e-4cbd-4c3f-8b92-586147c8e47f}</Level_ModuleGuid> 
              <Level_ModuleName>Copy of Findings</Level_ModuleName> 
            </ContextData> 
            <StackTrace>
              at ArcherTech.Packaging.Actions.Generation.GeneratePackage.ThrowMissingLevelLayoutException(SessionContext sessionContext, Level level) 
              at ArcherTech.Packaging.Actions.Generation.GeneratePackage.&lt;&gt;c__DisplayClassfe.&lt;GenerateLevelLayouts&gt;b__fa(GenerateContext context, ExecuteActions`1 ignored)
            </StackTrace> 
          </Exception> 
        </TraceRecord> 
      </DataItem> 
    </TraceData> 
  </ApplicationData> 
</E2ETraceEvent>
ResolutionSolution 1: 

Delete the specified Application or Questionnaire mentioned in Level name in the log from Manage Applications or Manage Questionnaire page because the Application/Questionnaire is basically corrupted and is a bad copy. Most likely, the initial copy was not successful and it failed due to which it has many missing components. 

Below is an excerpt from the error log indicating a corrupted level layout.
<Message>Unable to retrieve Level Layout information for the given Level</Message>
<StackTrace>
at ArcherTech.Packaging.Actions.Generation.GeneratePackage.ThrowMissingLevelLayoutException(SessionContext sessionContext, Level level)
at ArcherTech.Packaging.Actions.Generation.GeneratePackage.&lt;&gt;c__DisplayClass10a.&lt;GenerateLevelLayouts&gt;b__106(GenerateContext context, ExecuteActions`1 ignored)
</StackTrace>


Solution 2:

If you are able to open the layout through Application Builder; it could be possible that one of the objects has an invalid layout such as an empty tab/section, or is missing information.

Additionally, below is a helpful query which will help us retrieve the layout information from the backend database:

Query for 5.x versions Pre 5.5.2


/*  List layout objects for module.  Insert module ID in Where statement */

SELECT 
lm.layout_module_id,m.module_id,m.module_name,l.level_id,l.level_name,
lt.layout_tab_id,lt.layout_tab_name,
ls.layout_section_id,ls.layout_section_name,ls.guid,
lo.layout_obj_id,lo.field_id,lo.layout_obj_name,lo.guid

FROM tblIVLayoutModule lm
JOIN tblModule m on m.module_id=lm.module_id
JOIN tblLevel l on l.module_id=m.module_id
JOIN tblIVLayoutTab lt on lt.layout_module_id=lm.layout_module_id
JOIN tblIVLayoutSection ls on ls.layout_tab_id=lt.layout_tab_id
JOIN tblIVLayoutObject lo on lo.layout_section_id=ls.layout_section_id

WHERE m.module_id=240  --<< INPUT MODULE NAME

ORDER BY lt.layout_tab_id,ls.layout_section_id,lo.layout_obj_name


Query for versions 5.5.2 or later:


SELECT 
lm.layout_module_id,m.module_id,mT.module_name,l.level_id,LevT.level_name,
lt.layout_tab_id,ltT.layout_tab_name,
ls.layout_section_id,lsT.layout_section_name,ls.guid,
lo.layout_obj_id,lo.field_id,loT.layout_obj_name,lo.guid

FROM tblIVLayoutModule lm
JOIN tblModule m on m.module_id=lm.module_id
join tblModuleTranslation MT ON MT.module_id = M.module_id
JOIN tblLevel l on l.module_id=m.module_id
join tblLevelTranslation LevT ON LevT.level_id = L.level_id
JOIN tblIVLayoutTab lt on lt.layout_module_id=lm.layout_module_id
Join tblIVLayoutTabTranslation LTT ON LTT.layout_tab_id = Lt.layout_module_id
JOIN tblIVLayoutSection ls on ls.layout_tab_id=lt.layout_tab_id
JOIN tblIVLayoutSectionTranslation LST ON LST.layout_section_id = LS.layout_section_id
JOIN tblIVLayoutObject lo on lo.layout_section_id=ls.layout_section_id
JOIN tblIVLayoutObjectTranslation LOT ON LOT.layout_obj_id = LO.layout_obj_id

WHERE m.module_id=240  --<< INPUT MODULE NAME

ORDER BY lt.layout_tab_id,ls.layout_section_id,loT.layout_obj_name



 

Attachments

    Outcomes