<rss version="2.0" xmlns:a10="http://www.w3.org/2005/Atom"><channel><title>Inflectra Customer Forums: Design traceability within SpiraTeam - how? (Thread)</title><description> For a project in regulated environment I need to create a custom report showing that the requirements are propagating through software design and software architecture.  To achieve this, in the software Requirements Artifact area Ive created the following structure:  SRS    Requirement 1     Requirement 2    Requirement 3 SAD    Architecture 1    Architecture 2 SDD    Design 1    Design 2    Design 3    Design 4  The Requirements artifacts got Component set to Requirements, Architecture ones are Architecture and Design ones are set to Design.     This is the report I want to get in the end:         Requirements  Architecture  Design      Requirement 1  Architecture 1  Design 1 Design 2    Requirement 2     Design 3    Requirement 3  Architecture 2  Design 4        This way I could easily check if there is a gap in design traceability (it would be even nicer if I could paint the empy cell in a different colour, but can live without it).  Question -how can I achieve that? I understand that I need somehow to access the component record of the linked artifact, but not quite sure how?    Can you please help me to change the code below so that itll work as intended?                                                                                                                                                     1 and ArtifactLink/Component = Architecture&gt;,                                                                                                                                                                                                                   1 and ArtifactLink/Component = Design&gt;,                                                                                                                   </description><language>en-US</language><copyright>(C) Copyright 2006-2026 Inflectra Corporation.</copyright><managingEditor>support@inflectra.com</managingEditor><category domain="http://www.dmoz.org">/Computers/Software/Project_Management/</category><category domain="http://www.dmoz.org">/Computers/Software/Quality_Assurance/</category><generator>KronoDesk</generator><a10:contributor><a10:email>support@inflectra.com</a10:email></a10:contributor><a10:id>http://www.inflectra.com/kronodesk/forums/threads</a10:id><ttl>120</ttl><link>/Support/Forum/spirateam/reports/3186.aspx</link><item><guid isPermaLink="false">threadId=3186</guid><author>Vladimir Plotkin (vladimir@inmarsys.com)</author><title>Design traceability within SpiraTeam - how?</title><description> For a project in regulated environment I need to create a custom report showing that the requirements are propagating through software design and software architecture.  To achieve this, in the software Requirements Artifact area Ive created the following structure:  SRS    Requirement 1     Requirement 2    Requirement 3 SAD    Architecture 1    Architecture 2 SDD    Design 1    Design 2    Design 3    Design 4  The Requirements artifacts got Component set to Requirements, Architecture ones are Architecture and Design ones are set to Design.     This is the report I want to get in the end:         Requirements  Architecture  Design      Requirement 1  Architecture 1  Design 1 Design 2    Requirement 2     Design 3    Requirement 3  Architecture 2  Design 4        This way I could easily check if there is a gap in design traceability (it would be even nicer if I could paint the empy cell in a different colour, but can live without it).  Question -how can I achieve that? I understand that I need somehow to access the component record of the linked artifact, but not quite sure how?    Can you please help me to change the code below so that itll work as intended?                                                                                                                                                     1 and ArtifactLink/Component = Architecture&gt;,                                                                                                                                                                                                                   1 and ArtifactLink/Component = Design&gt;,                                                                                                                   </description><pubDate>Mon, 20 Apr 2026 11:28:14 -0400</pubDate><a10:updated>2026-04-30T07:09:35-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx</link></item><item><guid isPermaLink="false">messageId=7602</guid><author>Victoria D (nino.diasamidze@inflectra.com)</author><title> Hello,  I think this Knowledge Base article should help you to achieve this:   Creating a Custom Re</title><description> Hello,  I think this Knowledge Base article should help you to achieve this:   Creating a Custom Report with Grouped Headings      Regards, Victoria - </description><pubDate>Mon, 20 Apr 2026 15:47:07 -0400</pubDate><a10:updated>2026-04-20T15:47:07-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx#reply7602</link></item><item><guid isPermaLink="false">messageId=7603</guid><author>Vladimir Plotkin (vladimir@inmarsys.com)</author><title> Hi Victoria,  Thank you for your response.  Ive looked at the KB but I am not sure if itll actually</title><description> Hi Victoria,  Thank you for your response.  Ive looked at the KB but I am not sure if itll actually solve the issue as I need to access not the Component itself but component of each linked requirement. Or, in pseudo-code:  FOR AllRequirements    PRINT RequirementName in Column1    IF LinkedRequirements != 0 THEN       READ LinkedRequirement       IF LinkedRequirement.Component = Architecture PRINT LinkedRequirement.Name in Column2       IF LinkedRequirement.Component = Design PRINT LinkedRequirement.Name in Column3    ENDIF ENDFOR  Or am I missing something? </description><pubDate>Mon, 20 Apr 2026 16:01:04 -0400</pubDate><a10:updated>2026-04-20T16:01:04-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx#reply7603</link></item><item><guid isPermaLink="false">messageId=7612</guid><author>Victoria D (nino.diasamidze@inflectra.com)</author><title> Hello,  I think this article will help you to achieve what youre trying to get:   Building a Compon</title><description> Hello,  I think this article will help you to achieve what youre trying to get:   Building a Component-Based Traceability Matrix in Spira Using Custom ESQL and XSLT       Regards, Victoria - </description><pubDate>Wed, 22 Apr 2026 11:02:56 -0400</pubDate><a10:updated>2026-04-22T11:02:56-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx#reply7612</link></item><item><guid isPermaLink="false">messageId=7613</guid><author>Vladimir Plotkin (vladimir@inmarsys.com)</author><title> Hi Victoria,   Thank you very much for your help.  Ive created the report as per you KB and the res</title><description> Hi Victoria,   Thank you very much for your help.  Ive created the report as per you KB and the results arent quite what I was expecting.  Expectations:       Requirement  Architecture  Design    SRS                   Requirement 1        Architecture 1        Design 1, Design 2, Design 4                      Requirement 2        Architecture 1, Architecture 2        Design 1, Design 3, Design 4                      Requirement 3        Architecture 2        Design 3, Design 4                 Report output:     Requirement  Architecture  Design    SRS          Requirement 1  Architecture 1  Design 1, Design 2    Requirement 2     Design 3, Design 4    Requirement 3          SAD          Architecture 1     Design 1, Design 2    Architecture 2  Architecture 1       SDD          Design 1  Architecture 2       Design 2          Design 3  Architecture 1       Design 4  Architecture 2           To make it clear, the associations are as follows: All requirements in SRS section have component set to Requirements), in SAD to Architecture and in SDD to Design           Requirement name  Associated with (Related to)     SRS   none, just a header    Requirement 1  Architecture 1 Design 1 Design 2 Design 4    Requirement 2  Architecture 1 Architecture2  Design 1 Design 3 Design 4    Requirement 3  Architecture2  Design 3 Design 4     SAD   none, just a header    Architecture 1  Requirement 1 Requirement 2 Architecture 2 Design 1 Design 2 Design 4    Architecture 2  Requirement 2 Requirement 3 Architecture 1 Design 1 Design 3 Design 4     SDD   none, just a header    Design 1  Requirement 1 Requirement 2 Architecture 1 Architecture2    Design 2  Requirement 1 Architecture 1    Design 3  Requirement 2 Requirement 3 Architecture 2    Design 4  Requirement 1 Requirement 2 Requirement 3 Architecture 1 Architecture2                                         </description><pubDate>Fri, 24 Apr 2026 14:53:14 -0400</pubDate><a10:updated>2026-04-24T14:53:14-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx#reply7613</link></item><item><guid isPermaLink="false">messageId=7619</guid><author>Vladimir Plotkin (vladimir@inmarsys.com)</author><title> Right, spent some time with Grok and Claude and heres the solution.   The issue is that the KB is a</title><description> Right, spent some time with Grok and Claude and heres the solution.   The issue is that the KB is assuming that the associations are ALWAYS done from the same end (from Requirements to Architecture and Design). If any of the artifacts are linked other way round (which is normal), then it wont work.  Heres the updated ESQL:   SELECT 
  RQ.REQUIREMENT_ID,
  RQ.NAME AS REQUIREMENT_NAME,
  RQ.COMPONENT_NAME AS BASE_COMPONENT,
  LR.NAME AS LINKED_NAME,
  LR.COMPONENT_NAME AS LINKED_COMPONENT
FROM SpiraTestEntities.R_Requirements AS RQ
LEFT JOIN SpiraTestEntities.R_ArtifactAssociations AS AA 
  ON AA.SOURCE_ARTIFACT_TYPE_ID = 1 
  AND AA.DEST_ARTIFACT_TYPE_ID = 1
  AND (
    (RQ.REQUIREMENT_ID = AA.SOURCE_ARTIFACT_ID)
    OR
    (RQ.REQUIREMENT_ID = AA.DEST_ARTIFACT_ID)
  )
LEFT JOIN SpiraTestEntities.R_Requirements AS LR 
  ON LR.IS_DELETED = False
  AND LR.COMPONENT_NAME != 'Requirements'
  AND (
    (AA.DEST_ARTIFACT_ID = LR.REQUIREMENT_ID AND RQ.REQUIREMENT_ID = AA.SOURCE_ARTIFACT_ID)
    OR
    (AA.SOURCE_ARTIFACT_ID = LR.REQUIREMENT_ID AND RQ.REQUIREMENT_ID = AA.DEST_ARTIFACT_ID)
  )
WHERE RQ.PROJECT_ID = ${ProjectId}
  AND RQ.IS_DELETED = False
  AND RQ.COMPONENT_NAME = 'Requirements'   The XSLT shall be updated too:    
 

   
  
   
   

   
     
      
       
         Requirement Name 
        
         
           
           
             
           
         
       

       
        
         
        
         
           
             
           

           
             
            
             

             
               
                 ,   
                 
               
             
            
           
         
       
     
   

       As a result, the following report will be generated (note: not all of the requirements in the project got associations, to test the Gap Analysis functionality)     Requirement Name  Architecture  Design      SRS          Requirement 1  Architecture 1  Design 1, Design 2, Design 4      Requirement 2  Architecture 1, Architecture 2  Design 3, Design 4, Design 1    Requirement 3  Architecture 2  Design 3, Design 4    Requirement 4   Architecture 2   Design 4, Design 1, Design 2    Requirement 5  Architecture 1       Requirement 6                   </description><pubDate>Wed, 29 Apr 2026 15:41:48 -0400</pubDate><a10:updated>2026-04-29T15:41:48-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx#reply7619</link></item><item><guid isPermaLink="false">messageId=7620</guid><author>Vladimir Plotkin (vladimir@inmarsys.com)</author><title> Maybe the KB should be updated too? </title><description> Maybe the KB should be updated too? </description><pubDate>Wed, 29 Apr 2026 15:42:16 -0400</pubDate><a10:updated>2026-04-29T15:42:16-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx#reply7620</link></item><item><guid isPermaLink="false">messageId=7621</guid><author>Victoria D (nino.diasamidze@inflectra.com)</author><title> Hello,  Thank you very much for your valuable input! It is very helpful indeed.     Regards, Victor</title><description> Hello,  Thank you very much for your valuable input! It is very helpful indeed.     Regards, Victoria - </description><pubDate>Thu, 30 Apr 2026 07:09:35 -0400</pubDate><a10:updated>2026-04-30T07:09:35-04:00</a10:updated><link>/Support/Forum/spirateam/reports/3186.aspx#reply7621</link></item></channel></rss>