How to trace from one class attribute to another

I want to create a data dictionary, and as part of the effort of defining a schema, I’d like to record what attribute from the business concept model a database table traces to. I can only find a way to trace from an object to another object.

I’d also like to be able to report on this trace association in documentation with the Doc Composer. A tip on how to identify a trace association from a class attribute once I’m in the class attribute scope would be appreciated as well.

Thanks!

Hi Dennisk,

Unlike most of model elements in the project having an underlying “model”, the business concept diagram elements do not have the underlying “model” and therefore they do not support transformation. For your case I recommend you can install our AWS plugin and model the business concept using AWS elements with Component Diagram. When model with AWS elements you can then define transformation using Model Transitor.

image

Details about the AWS plugins, and the use of Model Transitor can be found at.

AWS plugin

Model Transitor

And once you model with Model Transitor then by default the linkage will be reported using the Details template of the model element in Doc. Composer.

Feel free to contact me for any questions and wish you have a good day!

Best regards,
Rain Wong

1 Like

Hi Rain,

I am creating my business concept model as a class model, not using the business concept diagram. I’m trying to create a trace association from one class attribute to another class attribute rather than from class to class. Is this possible? It was in another tool I’ve used. 50%20AM

Next, I would like to follow a trace association, but no other kinds of association, from one class (attribute) to the classes (attributes) it traces to in a Doc Composer document. Regardless of whether the attributes can be traced, could you explain how to do this?

Thanks again,

Dennis

1 Like

Hi Dennis,

It is possible to create a trace association from attribute to attribute, just select the trace tool from the palette, mouse over the attribute until you see the highlight, then drag and release over another attribute to create the association.

Hope this helps,

Antony.

1 Like

Thanks, this helped a lot. It does show that the type of steps you select are key; if you simply select the attribute and then use the connector icon, my more common way of working, you have the option to create a trace association, but it can only be from class to class. Perhaps it would be useful to allow this method to create attribute-specific associations as well.

This does NOT, though, answer one of the questions in my original post: how do I now report on the association in Doc Composer? I want to create a data dictionary (using a class model, not the Data Dictionary concept) and indicate which fields in the DB trace to which business concepts and external system data store items.

Thanks again!

Dennis

1 Like

Sorry for late reply.

You can get the <<trace>> Abstraction relationships from your Attributes.
and show ToElement or FromElement from the relationships.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<ElementBaseInitiationBlock>
	
	<Property style="@heading+" property="name"/>
	<ParagraphBreak/>
	
	<Text style="@heading+">Attribute x Trace</Text>
	<ParagraphBreak/>
	
	<!-- trace to -->
	<IterationBlockConditionChecker modelType="Attribute">
		<Conditions>
			<ForEachRelationshipConditionChecker modelType="Abstraction" direction="from">
				<Conditions>
					<ValueChecker property="stereotypes" value="trace" />
				</Conditions>
			</ForEachRelationshipConditionChecker>
		</Conditions>
		
		<TableBlock colWidths="50, 50" tableStyle="Summaries">
			<TableRow>
				<TableCell>
					<Text>Attribute</Text>
				</TableCell>
				<TableCell>
					<Text>Trace to</Text>
				</TableCell>
			</TableRow>
			
			<IterationBlock modelType="Attribute">
				<Conditions>
					<ForEachRelationshipConditionChecker modelType="Abstraction" direction="from">
						<Conditions>
							<ValueChecker property="stereotypes" value="trace" />
						</Conditions>
					</ForEachRelationshipConditionChecker>
				</Conditions>
				
				<TableRow>
					<TableCell>
						<Icon/>
						<Property property="name"/>
					</TableCell>
					
					<TableCell>
						<ForEachRelationship modelType="Abstraction" direction="from" ignoreLastSeparator="true">
							<Conditions>
								<ValueChecker property="stereotypes" value="trace" />
							</Conditions>
							
							<ToElement>
								<Icon/>
								<Property property="fullName"/>
							</ToElement>
							<Text>, </Text>
						</ForEachRelationship>
					</TableCell>
				</TableRow>
				
			</IterationBlock>
		</TableBlock>
		
	</IterationBlockConditionChecker>
	
	<!-- trace from -->
	<IterationBlockConditionChecker modelType="Attribute">
		<Conditions>
			<ForEachRelationshipConditionChecker modelType="Abstraction" direction="to">
				<Conditions>
					<ValueChecker property="stereotypes" value="trace" />
				</Conditions>
			</ForEachRelationshipConditionChecker>
		</Conditions>
		
		<TableBlock colWidths="50, 50" tableStyle="Summaries">
			<TableRow>
				<TableCell>
					<Text>Attribute</Text>
				</TableCell>
				<TableCell>
					<Text>Trace from</Text>
				</TableCell>
			</TableRow>
			
			<IterationBlock modelType="Attribute">
				<Conditions>
					<ForEachRelationshipConditionChecker modelType="Abstraction" direction="to">
						<Conditions>
							<ValueChecker property="stereotypes" value="trace" />
						</Conditions>
					</ForEachRelationshipConditionChecker>
				</Conditions>
				
				<TableRow>
					<TableCell>
						<Icon/>
						<Property property="name"/>
					</TableCell>
					
					<TableCell>
						<ForEachRelationship modelType="Abstraction" direction="to" ignoreLastSeparator="true">
							<Conditions>
								<ValueChecker property="stereotypes" value="trace" />
							</Conditions>
							
							<FromElement>
								<Icon/>
								<Property property="fullName"/>
							</FromElement>
							<Text>, </Text>
						</ForEachRelationship>
					</TableCell>
				</TableRow>
				
			</IterationBlock>
		</TableBlock>
		
	</IterationBlockConditionChecker>
	
</ElementBaseInitiationBlock>