Trace to a single Layout/Attribute DXL Column.

Hi everyone, thanks in advance for contributing to this site and assisting me with this short inquiry.

I have 4 modules total. ModA has in-links from ModB, ModC, and ModD. I'm attempting to modify a wizard analysis to display in ModA an attribute1 which exists in ModB, ModC, and ModD in a single column if the attribute1 is populated in any of those modules (ModB, ModC, ModD).

It seems simple, but I can't wrap my mind around getting this data in one column.

Thanks
SystemAdmin - Mon Dec 17 11:52:36 EST 2012

Re: Trace to a single Layout/Attribute DXL Column.
llandale - Mon Dec 17 15:22:49 EST 2012

The Layout wizard will do 95% of this but won't allow you to specify a custom non-System attribute. So use the Wizard and specify "All formal modules", and "Object Heading" as the display attribute and let it create the layout column. Then edit the properties of the column and it's DXL and you should about 3/4 of the way down see something like this:

s = identifier(othero)
displayRich(s)
s = othero."Object Heading"
displayRich(s)


Change that to this:

if (!null othero."MyCustomAttr" "") then
{
  s = identifier(othero)
  displayRich(s)
  s = othero."MyCustomAttr"
  displayRich(s)
}


Use the name of your attr instead of "MyCustomAttr".

-Louie

 

Re: Trace to a single Layout/Attribute DXL Column.
SystemAdmin - Tue Dec 18 11:13:38 EST 2012

llandale - Mon Dec 17 15:22:49 EST 2012

The Layout wizard will do 95% of this but won't allow you to specify a custom non-System attribute. So use the Wizard and specify "All formal modules", and "Object Heading" as the display attribute and let it create the layout column. Then edit the properties of the column and it's DXL and you should about 3/4 of the way down see something like this:

s = identifier(othero)
displayRich(s)
s = othero."Object Heading"
displayRich(s)


Change that to this:

if (!null othero."MyCustomAttr" "") then
{
  s = identifier(othero)
  displayRich(s)
  s = othero."MyCustomAttr"
  displayRich(s)
}


Use the name of your attr instead of "MyCustomAttr".

-Louie

 

@llandale - Thanks for the response back, but maybe I should clarify the issue I'm having a tad bit more. I understand the minor change of attribute name to a custom name once the wizard provides the basic script. However, my hangup is not displaying the attribute from a single module, but from multiple modules that are linked in a single column. In the wizard, only one module can be analyzed, and each of the modules may not have the same link module, so an analysis by link module isn't reliable as well.

A very primitive example of pseudocode:

modB = /module/Hardcode/pathB

s = modB.myAttr
display (s)
modC = /module/Hardcode/pathC
s = modC.myAttr
display (s)
modD = /module/Hardcode/pathD
s = modD.myAttr
display (s)
Thanks again for all of you're help.

Re: Trace to a single Layout/Attribute DXL Column.
llandale - Tue Dec 18 16:39:31 EST 2012

SystemAdmin - Tue Dec 18 11:13:38 EST 2012
@llandale - Thanks for the response back, but maybe I should clarify the issue I'm having a tad bit more. I understand the minor change of attribute name to a custom name once the wizard provides the basic script. However, my hangup is not displaying the attribute from a single module, but from multiple modules that are linked in a single column. In the wizard, only one module can be analyzed, and each of the modules may not have the same link module, so an analysis by link module isn't reliable as well.

A very primitive example of pseudocode:

modB = /module/Hardcode/pathB

s = modB.myAttr
display (s)
modC = /module/Hardcode/pathC
s = modC.myAttr
display (s)
modD = /module/Hardcode/pathD
s = modD.myAttr
display (s)
Thanks again for all of you're help.

If you are displaying this information in a single column then this information should pretty much be the same; which suggests the link module used should be the same one. e.g. Why would you display CPS and Test Procedures in the same column? I suspect you should invest some time thinking about your object relationships in non-DOORS engineering terms. e.g. "The CP 'Proposes' change to the Requirement" or "The SubSystem Requirement 'Satisfies' the System Requirement". Each different 'verb' would get its own Link Module. A link module names "A-Links-to-B" is hopeless.

Anyway, if these are the only modules linked, meaning you want to see all linked objects, the Wizard will do that (select all modules all link modules).

Otherwise, you could replace the "itemFromID" perm and replace it with something like this:
  • NameOther = name(mv) // ModuleVersion of linked module
  • if (NameOther != "ModB" and NameOther != "ModC" and NameOther != "ModD") then continue

-Louie