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 - MaXyM

Pages: [1] 2 3 ... 5
General Board / Re: Logical Data Modelling in SPARX
« on: October 20, 2018, 02:30:15 am »
Why don't you want to use specific RDBMS for modeling? If you do modeling after existing system, then technology is given.
If indeed model is technology independent, then choose RDBMS which can cover most functionality. In fact I'm not even sure there is a real need for it, since EA data modeling (at least physical) is very limited. Probably RDBMS engine selection affects reverse engineering and generating DDL only.

BTW in LDM some things can be modeled in simpler way. For example you can express n-to-m relationship by single association, while physical model requires additional table, a binding one.

General Board / Re: Table triggers on Activity Diagram
« on: October 16, 2018, 12:23:42 am »
Thank you for making me sure about it.
I already sent an another bug report, incidentally asking also for this issue. Depending on answer I will do what you are suggesting.


General Board / Re: Table triggers on Activity Diagram
« on: October 15, 2018, 06:40:10 pm »
If I create activity from a table trigger, then delete the table from a model, Activity remains.
Also there is no any visual cue in EA, which might suggest there is any relationship between the activity and the trigger.

General Board / Re: Database triggers on Activity Diagram
« on: October 14, 2018, 08:40:57 am »
Sorry, I meant table triggers.
EA models them as table operations with "trigger" stereotype.

General Board / Table triggers on Activity Diagram
« on: October 13, 2018, 02:30:10 am »
I was looking for a way of documenting database table triggers. They are organized into determined sequence of calls, so I decided for Activity diagram.
EA allowed me to drag&drop a trigger from Project Browser into activity diagram, creating new activity with action pin.

So far so good.
But I cannot find any relationship between origin trigger element (which I guess is "trigger" stereotyped operation in fact) and the activity.

Any clues about it?
If not, can you suggest another way of documenting table triggers?

with regards

General Board / Updating DB model (walk through)
« on: October 05, 2018, 12:24:19 am »
A week ago I promised to provide a guide through experienced EA issues. Issues which I found during last year (since EA13.5 provided better support for modeling relational databases)

My experience is based on work with Postgresql. It's possible that listed issues are database specific (some of them definitively are).
Below, you find a link do PDF document, which contain the guide, description of automation scripts (also provided below in zip archive) as well as list of issues reported to Sparx. Unfortunately Sparx officially say that they cannot guarantee any date of solving those issues. Even if some of them are trivial (ie small change to SQL being sent to source database). Be it.

I hope it will help to all of you who is committed to maintain your db documentation in EA.

PDF document


In fact db modeling is really crawling on all fours, being supported by a lot of bugs. For example: you cannot create foreign key dragging association from table which contain no any columns to table which contain pk. I reported this bug in January.

 I'm going to publish a list of all db modeling related issues I have found/reported. I'll provide workarounds/scripts helping with the process, too

Automation Interface, Add-Ins and Tools / Re: Updating TaggedValues
« on: September 30, 2018, 02:16:59 am »
OK guys, thanx for notes. The problem did lay between a keyboard and a chair ;)

There was lwr.Update() missing in NormalizeDoubledTV() function.
In addition to this,  tbl.Update() is also not needed. tbl.TaggedValues.Refresh() is enough

Sorry for that, I really thought I explored all possibilities before posting the question.

In fact it would be very useful.
When modelling relational database, It's common to create several diagrams containing the same entities while their goal is to show different point of views.
When adding relation between specific elements appearing on those diagrams, usually I don't want to make a connector appear on all diagrams. Just on specific one(s).

Is it still true that there is no option to stop adding connector to all diagrams?

Automation Interface, Add-Ins and Tools / Updating TaggedValues
« on: September 28, 2018, 12:36:57 am »
Likely i'm performing some conceptual mistake... but cannot find the root cause.
Originally the need of writing the script comes from EA bug during database RE, resulting duplicating Tagged Values. See image:

Script should copy value from uppercase TV to lowercase one, and then remove the first one from the object.
Here is the code:
Code: [Select]
function main()
var tbl as EA.Element;
tbl = GetElementByGuid('{7E0B2D3D-ABB8-4c3b-9B2B-A7A2B38A5CE0}');

        NormalizeDoubledTV(tbl, 'Owner');
NormalizeDoubledTV(tbl, 'Tablespace');
NormalizeDoubledTV(tbl, 'DBVersion');

function NormalizeDoubledTV(tbl, tvname)
var lwr as EA.TaggedValue;
var upr as EA.TaggedValue;

lwr = tbl.TaggedValues.GetByName(tvname);
upr = tbl.TaggedValues.GetByName(tvname.toUpperCase());

if (lwr !== null && upr !== null)
lwr.Value = upr.Value;
lwr.Value = upr.Value;

DeleteTaggedValue(tbl, tvname.toUpperCase());


function DeleteTaggedValue(objj, tvname)
var obj as EA.Element;
obj = objj;

for (i = 0; i<= obj.TaggedValues.Count; i++)
var currentTagVal as EA.TaggedValue;
currentTagVal = obj.TaggedValues.GetAt(i)
if (currentTagVal.Name == tvname)
obj.TaggedValues.DeleteAt(i, false);



I debugged the issue down to the point, that I know the value of lowercased TV is updated until entering for loop in DeleteTaggedValue. So currentTagVal  variable contains not updated value. I was sure that in javascript references to objects (variables) are being passed.

thanx in advance

General Board / Re: Scripted Automation of database RE
« on: September 22, 2018, 12:47:27 am »
Thanx. Indeed it seems so called post-processing is the only way.

Bugs and Issues / Re: Database RE - game breaking bug - need workaround
« on: September 22, 2018, 12:45:02 am »
Thank you

Bugs and Issues / Re: Database RE - game breaking bug - need workaround
« on: September 21, 2018, 11:57:27 pm »
I was too quick with an enthusiasm.
No, RE  doesn't work correctly if tables are moved to other packages than original "Tables" one. In such case RE is not able to add missing constraints (ie foreign keys). RE recognizes missing ones, it displays them referencing to existing table objects, but execution of "Import from ODBC" function does nothing until both tables are in "Tables" package. Then everything works fine. :(

BTW, using scripting I've set StereotypeEx to 'EAUML::table'. It seems it works, but project browser shows 'EAUML::table' stereotype instead of 'table'. If I change stereotype manualy, then Project Browser shows shortened version of stereotype name. What should I set more? Could you please provide source code of your setStereotype() function?

General Board / Scripted Automation of database RE
« on: September 21, 2018, 10:11:48 pm »
Does EA provides ability to automate RE of database (Show difference... option)? In particular I need to deselect some objects from the list to be imported.

The background for this need is the bug in a query EA sends to database which is being REd. The query doesn't exclude all system triggers (only relationship ones). So every time I do RE for updating existing model, I have manually unselected huge amount of triggers.
Or maybe some one knows how can I fix the SQL query EA is using? The issue has been acknowledged under id: 18038571 in April 2018. I even sent corrected SQL query.

with regards

Pages: [1] 2 3 ... 5