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.

Messages - Guillaume

Pages: [1] 2 3 ... 41
Bugs and Issues / EA14 Special action / Properties dialog
« on: May 24, 2018, 08:46:46 pm »
When I right click on a class from a diagram to open the properties popup, I need to go to Properties > Special action...
Looking at the DESIGN ribbon > Element > Properties, the matching command is called Properties Dialog which makes sense.

It would be best to rename this Special Action with Properties Dialog.

Bugs and Issues / Re: EA 14 Import DB fails
« on: May 24, 2018, 08:44:02 pm »
I ran it on an ODBC DSN for a Postgres DB.

Bugs and Issues / EA 14 Import DB fails
« on: May 24, 2018, 06:26:58 pm »

I try to run an Import DB Schema in EA from an existing DB via an ODBC data source.
Once the Import starts, I get an 'Error retrieving table list' message when using EA 14 build 1420.

Running the same test in EA13.5 works fine.

General Board / Re: Step by step Guide
« on: May 18, 2018, 04:24:36 pm »
Hi Pierre,

For requirements gathering, it is very common to create a model with separate branches (packages in EA) for Functional and Non-Functional requirements (see FURPS for an example of requirements classification). Requirements can be updated in EA and/or via Excel export/import. It is also important to think about traceability with your other modelling artefacts.

With EA, you have all types of diagrams you need incl Requirements, but you always need to define a suitable Model structure. Good examples are shared by the users community or also provided by Sparx in the EA Example (with EA 13, open START > Help > Open the Example Model. In the project open Analysis and Business Modeling > Requirements Model). This is very often where Sparx partners come into action with advice & training services.
For some specific needs, requirements can be tailored with stereotypes (UML profile) e.g. to add additional fields such as RefID, Category, etc.

I don't use Project Management features as dedicated tools like JIRA and others are more suitable (EA is a very open tool making it possible to integrate with other tools).

For test cases, it can be used but again based on your need.

Please note about the upcoming EA users gathering on the 8th of June in London where you can follow useful presentations and meet experienced EA users and experts:


I submitted  a feature request for a new method to refresh the script tree.


I found an easier option (in my opinion) by calling a function at the beginning of each script that copies its content/code to a dedicated "Run Last" script (with separate versions for the Project Browser and Diagram).

It works yet I can't find a way round an annoying issue: the screen tree list must be refreshed by the user (or the project closed/opened) so the updates are taken into account (see my related post here:,39778.0.html).


I have a script that carries updates in the scripts list. To see the changes, I have to click on the Refresh Script Tree button (Scripting view) or restart the project.
Is there a way to run this via the API, perhaps with the undocumented Repository.CustomCommand  method?


Hi Nizam,

Thanks for the links.


Is there an EA project or a diagram export of all class diagrams matching EA API Object Model e.g. Repository, Element, Package, etc class with properties and methods as documented in EA user guide e.g. Repository + methods like GetAttributeByGuid, Get ElementByGuid, etc.?

At the moment I only need it for presentation purposes but it would be useful to have it as a reference guide.
Perhaps a UML model already exists at Sparx to maintain the API (it could be included in the Example project.)

Note that I managed to generate a model via a Reverse Engineering on the InteropEA dll file. It is a good start, yet it would be useful to have some links from properties like Repository.Elements to the type of the collection's objects e.g. ElementClass, and perhaps definitions copied from the user guide.


Hi Helmut,

You're right and I have implemented a feature for a client with eaUtils which is available in a Portable Install edition (thanks to your info via this forum).
So I have a workaround if I add this "run last script" in eaUtils, however I think it would be nice to have it natively in EA.

Hi Simon,

Thank you for your feedback.
In the current scenario, we use scripts as users don't have the admin rights to install additional software on their PC.

I looks like the best option would be to treat it as a new EA feature to improve the user experience.


I'm trying to find a way to run a script that will itself call the last script used.
Let's say that in the Package scripts, you have
- RunLast
- ScriptA
- ScriptB

If I run ScriptA, it will store this ref somewhere in EA.
Calling RunLast will retrieve the ref and run ScriptA...

The following does not seem to be feasible:
- have a dynamic include (!INC) on the script found from the ref
- call this script main function (e.g. OnProjectBrowserScript) when the group and script names are set as variables e.g. groupName.scriptName OnProjectBrowserScript

Do you know if there is a solution to achieve that?

Note: I thought of an option that would involve the following:
- rename each script's main function e.g. OnProjectBrowserScriptA, OnProjectBrowserScriptB, OnProjectBrowserScriptC
- include all scripts in the RunLast Script : !INC GroupA.ScriptA, : !INC GroupA.ScriptB, etc
- add a switch case in RunLast script that will call the function matching the ref e.g. ScriptA -> call OnProjectBrowserScriptA
-> unfortunately this doesn't work either since all my scripts have an option explicit which generates an error

Thanks for your replies. The tagged values store the definition of DB Views generated by EA via a DB Reserve.
So the full query is generated without any restriction on the number of chars.

It works ok if I use the API Object method as an alternative to queries (will use that..).


In a VbScript, I set a local variable with the content from t_objectproperties.notes which I get by calling Repository.SQLQuery(SQL).
The script works well with a DBMS but not with an EAP: I figured out that the returned value is truncated after 255 chars.

Is this a known issue with EAP? Is there a workaround?


Here is a working solution in C#

1. create a Helper class:

Code: [Select]
using System.Runtime.InteropServices; //required for APIs
namespace myaddin....
    public static class WindowHelper
        public static void BringProcessToFront()
            Process proc = Process.GetCurrentProcess();
            IntPtr procHandle = proc.MainWindowHandle;
            if (IsIconic(procHandle))
                ShowWindow(procHandle, SW_RESTORE);

        const int SW_RESTORE = 9;

        private static extern bool SetForegroundWindow(IntPtr handle);
        private static extern bool ShowWindow(IntPtr handle, int nCmdShow);
        private static extern bool IsIconic(IntPtr handle);

2. when EA screen needs to be restored, call the following:

Code: [Select]

Pages: [1] 2 3 ... 41