Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Gayle

Pages: [1]
I am currently using EA V13.5 build 1351.  We have developed a set of diagrams in EA using DoDAF and UML formats that are embedded in the EA tool.  We have a review going on and the reviewers can't seem to get past the fact that the diagrams are not the same formats that are produced by System Architect.

The example I have is from System Architect and it uses IDEF0 for the activity model (OV-5); a node connectivity diagram for OV-2 and a Systems Communication diagram for SV-2.  Our activity diagrams are UML Behavioral Activity diagrams and use the elements in the toolbox format "Activity".  Our OV-2 diagrams are resource flow diagrams that use the UML Behavioral Communication diagram type and the toolbox elements "Communication".  Our SV-2 diagrams are UML Structural Component diagrams and use elements from the toolbox element "Component".

Can anyone provide ideas on how to quickly generate similar diagrams in EA?  I'm primarily interested in the OV-2 and SV-2.  Are there particular diagram formats or MDG technologies that may lend themselves to providing something closer to the System Architect formats?

Thank you, Gayle

Automation Interface, Add-Ins and Tools / Find Diagrams with Connector
« on: January 25, 2017, 06:09:21 am »
I am using EA 13.0.1307 and VB scripts on an eap file.  My model has multiple types of connectors that appear on one or more diagram and can be hidden on other diagrams.  Using VB data extraction, I have discovered about 300 connectors that are hidden in at least one diagram.

I would like to verify that each of my hidden connectors is not hidden on at least one diagram.  My first inclination was to use a technique similar to one I found on the EA forum to locate all of the diagrams that an element appeared in.  That technique relied on the following SQL statement:
  sql = "SELECT Diagram_ID FROM t_diagramobjects WHERE Object_ID = " & Element.ElementID

The XML result could be parsed to get a diagram list for the selected element.

Is there a similar approach that I could use for the connectors? I don't have much knowledge about SQL, but do know that the above statement will not work as-is for connectors.  Since an ElementID and a ConnectorID could be the same number, I can't just use the above SQL statement with the Connector as an Element. 

For each connector I have a lot of information, however, most of the connectors do not have a Name.  The data that I have includes the connector ID, type, direction, source and target information.


Thank you, Gayle

I'm using EA13 build 1307 with a local EAP file.  I have a number of VB scripts that extract data from the architecture model to use for analysis.  One of the scripts is used to access data associated with connectors.

When I run the script on UML Communication diagrams (such as OV-2 Resource Flow Diagrams), I have connector target or source elements showing up in the data extraction with no Name.

My diagrams have Class Instances (such as the class is "Crew Station" and the object instance is "Commander:Crew Station") and Actor instances (such as the Actor is "Commander" and the object instance is ":Commander").  There are Association interfaces between the class and actor instances.  When I manually bring up the properties of the Association connector, the connector side attached to the actor instance is blank (no name).  When I select the interface between the "Commander" actor and the "Commander" crew station, right click and choose "Advanced", "Set Source and Target", the From Element listed is ":Commander" and the To Element listed is "Commander:Crew Station".

Without changing the names of the actor object instances to have something in front of the ":", is there anyway using a script to get to the equivalent of the Advanced "Set Source and Target" elements so that I will have an element name for the "Commander" actor rather than a blank?  Right now, the element names are obtained using the connector "SupplierID" and "ClientID" properties to "GetElementByID".  From there, the element "Name" is selected.  The element IDs are not blank.

Thank you for any assistance you can provide.


I'm using EA V12 build 1230 and VB scripts to mark verification of packages, connectors and elements using TaggedValues.  For these items, I created a Tag that I use to enter the verification date (I also created some other custom tags to help track status of the items beyond the available information).  I can use my scripts to add, report and delete the tags.  I was hoping for something similar for diagrams, but I cannot find anything similar that I can use to mark when each diagram has been verified.

Is there any way to create TaggedValues or some maybe a custom property field that can be applied to a diagram and made visible when scripts access the diagram properties?  If not within EA12, but EA13, I'm working on that migration, so if there is something new I can use, I'm willing to speed up the migration.

Any ideas will be appreciated.

Thank you, Gayle

Bugs and Issues / V12 vs. V13 Hyperlink Format
« on: December 16, 2016, 10:51:34 am »
I'm reviewing how my architecture model looks when opened using EA V13 Build 1307.  The EA 12 Build is 1230.  So far, the only thing I'm seeing as a difference is with the formatting of Hyperlinks.  Most of my hyperlinks have an image assigned so that they look like a button.  There are a few that put a box around the hyperlink element and filled that box with a color using the default appearance functions.

I have captured some examples that can be sent, but I do not have the ability to insert them in this message.  In EA12, the "Change Records" and "Issue Records" hyperlinks have a black border and yellow/tan fill.  In EA13, the elements have those same appearance characteristics under default appearance, but they do not display with the border or fill.  I did a test to see if I could create a new hyperlink and format it with the same result (default appearance indicates border and color applied and display does not have them).

Is this a problem with V13 or do I need to update some setting that did not translate when moving from V12 to V13?


Automation Interface, Add-Ins and Tools / Find diagram by name
« on: December 03, 2016, 09:40:50 am »
I am using VB scripts within the 12.1.1230 version of EA.  My architecture model has a top level Model and under it several top level packages.  Within each top level package are numerous subpackages and diagrams going down several levels in the hierarchy.  All of the scripts that I'm working with have the user identify both the top level model and the selected top level package.  I have a new script query that asks for the desired diagram by name because I though I had some scripting logic to get the diagram ID if I had the diagram name.  I can't find any examples of locating the diagram by name if it is not at the first level under a specified package.  Assuming that the script user enters the correct name of a diagram that is several levels below the top level package, is there an easy way to locate the diagram?  Do I need to search through each model package to find the diagram?

I have the following logic to find a diagram under a specific package:
   dim thisPackage as EA.Package
   set thisPackage = Repository.GetPackageByID(4) ' fixed package ID for "Top Model" package

   dim thisDiagram as EA.Diagram
   set thisDiagram = thisPackage.Diagrams.GetByName("Diagram In Model")

This only works if I have identified the correct package that contains the diagram - in this example, the diagram is in the package ID 4.

I would like to find an easy way to:
1. Locate a diagram somewhere in the model by name - it could be several levels down in the hierarchy from the top level package.
2. Identify when the diagram is not in the current package

Any assistance will be appreciated.  Thank you.


I'm using EA 12.1.1229 and Visual Basic to write scripts.  The most recent script has generated diagrams and partially populated the diagrams.  For the Sequence Diagrams, I would like to set the "Show Parameter Detail" property under "Features".  The default is "Type Only" and I would like it to be "Full Details".

I created a pair of test diagrams - one with "Type Only" and the other with "Full Details".  When I do an XML export, the only field that appears to be changed is the "SuppressFOC" which is under the extended styles.  I could not access this value using the ExtendedStyle or StyleEx diagram class attributes.

I think that the ReadStyle and WriteStyle Methods could be used to read and write the style information.  However, none of my attempts to use these operations have resulted in updating the "Show Parameter Detail" to be "Full Details".  I could not find an example using these Methods, so I'm probably misunderstanding the information in the EA User Manual on how to format the operations.

I'm guessing that I'm missing something with respect to how to modify the diagram properties.  I found the "HighlightImports" to change the "Show Namespace" setting, but this "Show Parameter Detail" value does not appear to be as easy to modify.  Any ideas would be appreciated.

Thank you, Gayle

I'm using EA 12.1 and Visual Basic Scripts.  I copied a working script that did many of the things that I wanted to do.  The existing script collected data on connectors in sequence diagrams within the model and generated and RTF with a single table that had one line of header row.  Two templates were used - one for the header and one for the body of the table (one line per connector).  Note that I was not successful trying to combine these into one template for the modified script.

My modified script is going into the same model and packages to extract data on diagrams and enter the data into a table contained in an RTF.  I created a new header row as a template (row marked in EA template as header) and another template for the diagram table rows.  I've tested this with three fixed packages:  the model root, a package under the root and a package another level down.  The package IDs are:  1, 4, 131.  When I run the logic on package 1, no header row appears.  When I run the logic on the first level package, I get one header row if EA is freshly started and 5 header rows if I have updated the script and saved it before running it.  For the next level down, I get one header row if EA is freshly started and 7 header rows if I have updated the script and saved it before running it.  There is very little different between the original script and the modified script except at the lower levels of the logic where it decides what data to collect for output to the file.

The script begins as follows (in this case, the root model is selected as the package and the lines for the other two are commented out):

OUTPUT_FILE = "c:\\temp\\diagrams.rtf"
sub getDiagrams()

   'Show the script output window and clear window
   Repository.EnsureOutputVisible "Script"
   Repository.ClearOutput "Script"
   'Create a document generator object
   dim docGenerator as EA.DocumentGenerator
   set docGenerator = Repository.CreateDocumentGenerator()
   docGenerator.SetPageOrientation(1) ' set output page to landscape   

   dim currentPackage as EA.Package
   set currentPackage = Repository.GetPackageByID(1) ' Root Package
'   set currentPackage = Repository.GetPackageByID(4) ' Model Package
'   set currentPackage = Repository.GetPackageByID(131) ' MT Package

   Session.Output "Package = " & currentPackage.Name & "; Package ID = " & currentPackage.PackageID

   'Create a heading for the table
   docGenerator.DocumentPackage currentPackage.PackageID, 0, "ExportDiagramHeading"
   'Find all the diagrams
   findDiagrams docGenerator, currentPackage
   'Save the document
   dim saveSuccess
   saveSuccess = docGenerator.SaveDocument( OUTPUT_FILE, DOCUMENTATION_TYPE )
   if saveSuccess = true then
      Session.Output "Documentation complete!"
      Session.Output "Error saving file: " + docGenerator.GetLastError()
   end if

end sub

The findDiagrams routine has the following statement that is executed once for each diagram located in the desired package:

         docGenerator.DocumentDiagram thisDiagram.DiagramID, 0, "ExportDiagramDataxxyy"

My expected output would be one header row and one row for each diagram. I did not see how to attach a sample output to this message, but would be glad to add one if instructions are provided.

How do I get a single header row to show up in my output table consistently?  Is there something that needs to be reset or initialized that I've missed and we just got lucky with the script that another person developed?

Thank you for any ideas.


Using EA12.1, I have a VB script that places elements on a "diagram" that is formatted as 8.5 x 11 inch pages.  There are more than 100 elements so I expect to have many pages in this diagram.  I have used diagramObjects.AddNew to insert class elements on these pages.  Each element uses a left margin location of 5 and right margin location of 805.  The elements are 200 tall and I have 10 pixels between the bottom of one element and the top of the next.  On the first page, I need the first element to be 90 pixels from the top so that I can have a diagram header and hyperlink back to another diagram.  For all of the other pages, the first element can be close to the top of the page.

The elements are created by the script and placed on the diagram pages.  The problem is that when I get to the bottom of each page, elements cross the page boundaries and become unreadable.  This model will be published as HTML and so I would like the pages to be formatted to be readable.  "Tweaking" element height and space between elements is too cumbersome, so I would like to write a loop to organize the elements on the diagram page, but I have not been able to determine page height.

Looking at the EA user manual and searching on the forum for previous questions I can't figure out exactly how many pixels per inch (or per page) I'm dealing with.


Automation Interface, Add-Ins and Tools / Capturing Connector Message Data
« on: February 27, 2016, 03:03:32 am »
My model in EA 12.1 has a number of use cases with sequence diagrams.  Each connector in the sequence diagram has detailed message information.  The information I am interested in includes:  diagram where the message/connector is used, order / sequence of the messages, message name and parameters, condition (we use this to describe the trigger for the message), notes, sender and receiver.  Even though messages are reused across multiple diagrams, the condition and notes are unique to each instance.

Using a script, I have been able to collect the following:
- Diagram name
- Connector sequence number
- Connector name (Message with parameter)
- Connector supplier name (Sender)
- Connector client name (Receiver)
- Connector Notes

I have not been able to find a field that contains the connector/mesage "condition".  Any suggestions?


Automation Interface, Add-Ins and Tools / Script results embedded in EAP
« on: February 25, 2016, 06:14:18 am »
I'm using EA 12.1 and am trying to modify some existing scripts.  I've been using EA for a number of years, but have not done anything with the script tools until recently.  The current VB script exports the results in a table format (based on a template) to a Word document which is in turn copied into an Excel file for additional processing using Excel VB Macros.  I think that most if not all of the processing could be eliminated with some help.

Right now I'm trying to generate an "integrated architecture" that is published as HTML for delivery to the customer.  The DoDAF OV-3 and SV-6 elements had previously been generated as external documents.  I know that I can insert finished documents back into EA, but would like to eliminate that requirement by generating them such that they are part of the HTML published model.

Instead of exporting the results to a Word document, can the EA script tools be used to generate (and update) an embedded linked document?  If so, does anyone have samples of VB script?


Pages: [1]