Please enable JS

Build Enterprise Architect Charts

February 25, 2019

Prolaborate provides a powerful yet intuitive tool to build irch and dynamic charts based on Enterprise Architect data in minutes.

In this guide, we will look at how you can build dynamic charts.Note that we will be looking at only the capabilities of chart widgets in this guide-; please refer to Dashboard Designer to learn about the general functionalities of the dashboard.

General Instructions

Add EA Chart Widget

To create a Chart, click on Menu > Dashboards. Click on Add New to create a new dashboard or edit icon to edit a dashboard.

Click on Add Widget or Add icon on the bottom right to see the list of widgets. Click on EA Chart and then on Add New Widget.

Instructions on building various kinds of charts available in EA Chart widget can be seen in the subsequent sections.

Result Query Aliases

When you are building advanced charts using SQL queries, chart query is used to build the charts and Result query is used to show in-depth information when you click on a chart.

Aliases in Chart query need to be used in Result Query to enable users to see in-depth information on click of a section of the chart.

For example, if chart query is

select object_type as series from t_object

the respective result query will be select name, object_type, stereotype where object_type = ‘<series>’

Additionally, you can use the following aliases:

  1. If you want Links on Item Names, add alias “classguid” to the GUID.For example: select name,ea_guid as classguid from t_object where object_type = ‘<series>’
  2. If you want to see appropriate EA icons, add these aliases - Base Type and Stereotype to Type and Stereotype respectively. For example: select name, object_type as basetype, stereotype as stereotype from t_object where object_type = ‘<series>’ and stereotype = ‘<groupname>’
  3. If you don’t want to see a column but you need to use it as an Alias as mentioned above, use “hide_” prefix.For example, the following query will give the same result as above, but Base Type and Stereotype columns will not be shown in the result: select name, object_type as hide_basetype, stereotype as hide_stereotype from t_object where object_type = ‘<series>’ and stereotype = ‘<groupname>’

Pie Chart

Build using Chart Designer

Follow these steps to create a pie chart:

  1. Choose the packages which hold the EA objects which should be considered for the chart. Optionally, specify a Stereotype to further filter the selection
  2. Choose the property which you are planning to represent using the chart under Build Chart based on. It can be any basic property or tagged value.
  • Disable Subreport if you don’t want the charts to show in-depth chart on click
  • Enable Fully Qualified Name to see full qualified stereotype names

Sample Configuration and Result

Configuration:

Result:

Build using SQL Queries

Pie chart will be created based on the property you define as “Series”

For example, select object_type as series from t_object

Sample Query and Result

Chart Query

select o.ea_guid as Classguid, o.Object_type as BaseType, o.Stereotype as Stereotype, o.Name As GroupName, tv1.Value as Series from (t_object o left join t_objectproperties tv1 on tv1.Object_ID = o.Object_ID) where tv1.Property='Health Indicator'

Chart Shown in Dashboard

Result Query

select o.Stereotype as Stereotype, o.Name As Name, tv1.Value as HealthIndicator, o.ea_guid as Classguid, o.Object_type as BaseType from (t_object o left join t_objectproperties tv1 on tv1.Object_ID = o.Object_ID) where tv1.Property='Health Indicator' and tv1.Value = “Series”

Report shown when clicked on chart

Customization Options

The settings available are:

  1. Legends Active/ Inactive – If disabled, the legend will not be shown
  2. Legends position – The options are Right, Bottom and Inset. You can change the options and check how it works in Chart Preview.

Donut Chart

Build using Chart Designer

Configuration of donut chart can be done in the same way as Pie Chart. Refer to above section to learn how to configure Donut charts.

Sample Configuration and Result

Configuration:

Result:

Build using SQL Queries

SQL queries need to be written in the same way as you write for pie charts. Refer to above section to learn how to write SQL queries to build donut charts.

Sample Query and Result

Chart Query

select o.ea_guid as Classguid, o.Object_type as BaseType, o.Stereotype as Stereotype, o.Name As GroupName, tv1.Value as Series from (t_object o left join t_objectproperties tv1 on tv1.Object_ID = o.Object_ID) where tv1.Property='Lifecycle'

Chart Shown on Dashboard

Result Query

select o.Stereotype as Stereotype, o.Name As Name, tv1.Value as Lifecycle, o.ea_guid as Classguid, o.Object_type as BaseType from (t_object o left join t_objectproperties tv1 on tv1.Object_ID = o.Object_ID) where tv1.Property='Lifecycle' and tv1.Value = '<series>'

Report shown when clicked on chart

Customization Options

The settings work in the same way as Pie Chart.

Bar Chart

Build using Chart Designer

Follow these steps to create a bar chart:

  1. Choose the packages which hold the EA objects that should be considered for the chart. Optionally, specify a Stereotype to further filter the selection
  2. Choose basic attributes or tagged values based on which the chart needs to be created in X-axis
  3. Bars in X-axis can be grouped based as per your requirement. Choose any one of:
    1. None: Bars are not grouped
    2. Property: Group bars based on basic attributes or tagged values specified by you. If you want to group the bars based on your selection in X-axis, select Property and do not specify anything.
    3. Value: Group bars based on values of basic attributes or tagged values specified by you
  4. You can also specify how Y-axis or height of bars needs to be calculated. It can be either be
    1. Based on Count of values returned by your specification in X-axis
    2. Or based onSum of values you specify

Sample Configuration and Result

Configuration:

Result:

Build using SQL Queries

Bar chart will be created based on the properties you define as “Series” and “GroupName”.

For example, select object_type as series, stereotype as groupname from t_object

Optionally, you can use the alias “ChartValue” if you want to display an integer value from a tagged value field instead of counts on bars.

Sample Query and Result

Chart Query

select tv1.Value as Series, tv2.Value as GroupName
from ((t_object o
left join t_objectproperties tv1 on tv1.Object_ID = o.Object_ID)
left join t_objectproperties tv2 on tv2.Object_ID = o.Object_ID)
where tv1.Property='Security Classification'
and tv2.Property ='Lifecycle'

Chart Shown in Dashboard

Result Query

select o.Name as Name, otv1.Value as SecurityClassification, otv2.Value as Lifecycle, o.ea_guid as Classguid, o.Object_Type as BaseType, o.Stereotype as Stereotype from (( t_object o left join t_objectproperties otv1 on otv1.Object_ID = o.Object_ID) left join t_objectproperties otv2 on otv2.Object_ID = o.Object_ID) where otv1.Property = 'Security Classification'And otv2.Property = 'Lifecycle' and otv1.Value = '<series>'

Report shown when clicked on chart

Customization Options

Bar Chart specific settings are:

  1. Chart

    You can control whether the chart should show a shadow, width of bars and space between the bars.

  2. Axis

    Configure how the text should be displayed in the x-axis and y-axis of the charts.

  3. Interaction

    Enable Zoom if you want to zoom the chart

  4. Tooltip

    Configure whether to show tooltips and if they should be grouped when shown.

  5. Grid

    Enable grids if needed.

Stacked Bar Chart

Build using Chart Designer

Configuration of stacked bar chart can be done in the same way as Bar Chart. Refer to above section to learn how to configure Bar charts.

Sample Configuration and Result

Configuration:

Result:

Build using SQL Queries

SQL queries need to be written in the same way as you write for Bar charts. Refer to above section to learn how to write SQL queries to build stacked bar charts.

Sample Query and Result

Chart Query

select otv.Property as groupname, otv.Value as series
from ( t_object o
left join t_objectproperties otv on otv.Object_ID = o.Object_ID)
where otv.Property in ( 'Business Unit', 'IT Unit', 'Vendor')

Chart Shown in Dashboard

Result Query

select o.Name as Name, otv.Property as Property, otv.Value as Value, o.ea_guid as
Classguid, o.Object_Type as BaseType, o.Stereotype as Stereotype
from ( t_object o
left join t_objectproperties otv on otv.Object_ID = o.Object_ID)
where otv.Property in ( 'Business Unit', 'IT Unit', 'Vendor')
and otv.Value = '<series>'

Report shown when clicked on chart

Customization Options

The settings work in the same way as Bar Chart.

Bubble Chart

Build using SQL Queries

Aliases that can be used in Bubble chart are xvalue and yvalue. The chart will be plotted based on these values in x-axis and y-axis.

For example, select object_type as xvalue, stereotype as yvalue from t_object. If these aliases are not used, just bubbles will be shown in the dashboard.

Optionally, you can use the alias “ChartValue” if you want to display an integer value from a tagged value instead of counts on bubbles.

Sample Query and Result

Chart Query

select o.Name as Series, otv1.Value as xvalue, otv2.Value as yValue from ((
t_object o left join t_objectproperties otv1 on otv1.Object_ID = o.Object_ID) left
join t_objectproperties otv2 on otv2.Object_ID = o.Object_ID) where otv1.Property
= 'Strategic Importance' and otv2.Property = 'Cost'

Chart Shown in Dashboard

Result Query

select o.Name as Application, otv1.Value as StrategicImportance, otv2.Value as Cost from (( t_object o left join t_objectproperties otv1 on otv1.Object_ID = o.Object_ID) left join t_objectproperties otv2 on otv2.Object_ID = o.Object_ID) where otv1.Property = 'Strategic Importance' and otv2.Property = 'Cost' AND o.Name = '<series>'

Report shown when clicked on chart

Customization Options

Bubble chart has following settings:

  1. Legends

    Enable to show Legend on the side of the chart

  2. Axis Text

    Add text to x-axis and y-axis

  3. Tooltips

    Enable to show tooltips on hover

  4. Bubble Names

    Enable to show text shown on bubbles

Road Map

Build using Chart Designer

Follow these steps to create a bar chart:

  1. Choose the packages which hold the EA objects that should be considered for the chart. Optionally, specify a Stereotype to further filter the selection
  2. Choose the date intervals based on which the Roadmap needs to be created through Start Date and End Date

    Importantly, specify the date format you have used to capture the dates.

  3. Choose a basic property or tagged value to display on the roadmap paths through Chart Labels

    And if you want to group the road map paths, specify the property or tagged value based on which they should be grouped using Group chart labels by

Sample Configuration and Result

Configuration:

Result:

Build using SQL Queries

Choose the date intervals based on which the Roadmap needs to be created through Starttime and endtime aliases. Importantly, convert the date format to dd-mm-yyyy.

Choose a basic property or tagged value to display on the roadmap paths by defining alias displayname.

And if you want to group the road map paths, specify the property or tagged value based on which they should be grouped using groupname alias.

Sample Query and Result

Chart Query:

select distinct o.Object_ID as objectid, o.Name displayname, convert(varchar(30),cast(starttimetable.Value as datetime),105) as starttime , convert(varchar(30),cast(endtimetable.Value as datetime),105) as endtime , grouptable.Value as groupname, seriestable.Value as series from t_object o Join t_objectproperties starttimetable on starttimetable.Object_ID=o.Object_ID Join t_objectproperties endtimetable on endtimetable.Object_ID=o.Object_ID Join t_objectproperties grouptable on grouptable.Object_ID=o.Object_ID Join t_objectproperties seriestable on seriestable.Object_ID=o.Object_ID where starttimetable.Property='StartDate' and endtimetable.Property='EndDate' and grouptable.Property='Vendor' and seriestable.Property='Health Indicator' and o.stereotype IN ('ArchiMate_ApplicationComponent') and o.Package_ID in (select p.Package_ID from t_package p where p.ea_guid = '{B97FDE07-3860-4990-9AAA-30F951327455}')

Chart Shown in Dashboard:

The result is same as shown above.

Heat Map

Build using SQL Queries

This chart will be created based on the property you define using the Series alias. Optionally you can group them using groupname alias.

As this is a multi-level chart, you can have many levels of Chart query and result query. You can click on List View to see the table view similar to the ones shown in above samples.

And to link one level to the another, you need to use the following syntax:

level[number].[alias of the property used in it] = level[number].[alias of the property using in it]

For example,

level2.ObjectID = level1.startelementid

Sample Queries and Results

Chart Query - Level 1:

select target.Object_ID as startelementid, source.Name as GroupName, target.Name as Series from ((t_object source left join t_connector con on con.Start_Object_ID = source.Object_ID) join t_object target on target.Object_ID = con.End_Object_ID) where source.Stereotype='ArchiMate_BusinessActor' and target.Stereotype='ArchiMate_WorkPackage'

Chart Shown in Dashboard:

Click anywhere to see further details.

Chart Query - Level 2:

select target.Object_ID as startelementid, source.Name as GroupName, op.Value as Series, source.Object_ID as ObjectID from (((t_object source left join t_connector con on con.Start_Object_ID = source.Object_ID) join t_object target on target.Object_ID = con.End_Object_ID) left join t_objectproperties op on op.Object_ID=target.Object_ID) where source.Stereotype='ArchiMate_WorkPackage' and target.Stereotype='ArchiMate_ApplicationComponent' and op.Property = 'Health Indicator'

Condition to link to Previous Level:

level2.ObjectID = level1.startelementid

Chart Shown in Dashboard:

Chart Query - Level 3:

select source.Object_ID as startelementid, source.Name as Series, op.Value as GroupName from (t_object source join t_objectproperties op on op.Object_ID=source.Object_ID) where op.Property = 'Health Indicator'

Condition to link to Previous Level:

level3.GroupName = level2.series

Chart Shown in Dashboard:

Chart Query - Level 4:

select source.Name as GroupName, target.Name as Series, source.Object_ID as ObjectID from ((t_object source left join t_connector con on con.Start_Object_ID = source.Object_ID) join t_object target on target.Object_ID = con.End_Object_ID) where target.Stereotype='Activity'

Condition to link to Previous Level:

level4.ObjectID = level3.startelementid

Chart Shown in Dashboard:

Customization Options

Heat map has following settings:

  1. Tooltips

    Enable to show tool tips on hover

  2. Sub-block names

    Enable to show the names of sub-blocks. They appear at the bottom right of each block

  3. Navigation

    Define the style of Navigation between the multiple levels of blocks. It can either be bread crumb, where all levels are shown or it can be just the title of the current level with a link to previous level.

Nested Pie

Build using SQL Queries

SQL queries can be written in the same way as you write for Heat maps.

Sample Queries and Results

This is also a multi-level chart; you can have many levels of Chart query and result query.

Chart Query - Level 1:

select target.Object_ID as startelementid, source.Name as GroupName, target.Name as Series from ((t_object source left join t_connector con on con.Start_Object_ID = source.Object_ID) join t_object target on target.Object_ID = con.End_Object_ID) where source.Stereotype='ArchiMate_BusinessActor' and target.Stereotype='ArchiMate_WorkPackage'

Chart Shown in Dashboard

Chart Query - Level 2:

select target.Object_ID as startelementid, source.Name as GroupName, op.Value as Series, source.Object_ID as ObjectID from (((t_object source left join t_connector con on con.Start_Object_ID = source.Object_ID) join t_object target on target.Object_ID = con.End_Object_ID) left join t_objectproperties op on op.Object_ID=target.Object_ID) where source.Stereotype='ArchiMate_WorkPackage' and target.Stereotype='ArchiMate_ApplicationComponent' and op.Property = 'Health Indicator'

Condition to link to Previous Level:

level2.ObjectID = level1.startelementid

Chart Shown in Dashboard

Chart Query - Level 3:

select source.Object_ID as startelementid, source.Name as Series, op.Value as GroupName from (t_object source join t_objectproperties op on op.Object_ID=source.Object_ID) where op.Property = 'Health Indicator'

Condition to link to Previous Level:

level3.GroupName = level2.series

Chart Shown in Dashboard

Customization Options

Nested Pie has following settings:

  1. Tooltips

    Enable to show tool tips on hover

  2. Navigation

    Define the style of Navigation between the multiple levels of pie. It can either be bread crumb, where all levels are shown or it can be just the title of the current level with a link to previous level.

  3. Pie Names

    Enable to show text shown on pie

  4. No of Levels

    Define the number of levels of pie you want to see by default. You can set a standard number (Say 2 levels) or decide to show all the levels.

Any questions? Contact us