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 - Richard Freggi

Pages: [1] 2 3 ... 33
1
YESSSSSS!  Thank you very much

2
I reverse engineer several database types by querying their metadata objects, exporting to Excel and using Office MDG to import into EA (16.1).  Works well except that primary key columns are imported as <<pk>> stereotype but in EA it is treated as any stereotype and the PK -  NN boxes in the Properties window remain unchecked: EA does not recognize it as a primary key.  So I have to manually check the PK box for every column with a <<pk>> stereotype.
I would like to do that via a DML script like (pseudocode:) UPDATE t_attribute SET somethingsomething = 'pk' WHERE stereotype = 'pk' .  But In Inside EA book I could not find what table column needs to be updated and how.  If anybody knows please help!  Thanks!
ps sorry no time to learn VB or scripting languages... my only option is to run DML on the project database

4
General Board / Re: Elements and Associations are moving on their own...
« on: October 10, 2024, 01:57:57 am »
Use lock diagram menu (right click on the diagram)

5
Bugs and Issues / Re: Transfer from QEA to EAP fails
« on: September 03, 2024, 07:18:29 pm »
Looks like a wise suggestion from the Sparx gods.  Isn't MS access going to be discontinued?  (And the word will be a better place for it...)


6
Does UML support relationships between (different) relationships?
Not explicitly, but several of the relationships (eg. Dependency) have ends defined by types that include a number of relationships.

That doesn't necessarily mean that it's expected. LiteralNull is also a specialization of Element, so you could also have a dependency on a particular literal null. I don't think that's a reasonable interpretation of the intention of the specification.

Surprisingly I can draw a trace relationship from a relationship to itself in SparxEA. Is this intended?
I don't see a constraint on the specification that disallows it. You could argue that it's not expected by the authors of the spec, but I don't know how end users are using it. If you don't think it makes sense, don't use it.

I vaguely remember that in UML a relationship is a class and as such it can have its own associations to other classes.  In EA I can draw an association between a class and an association (eg intersection entity in a ERD diagram).  Am I remembering it wrong?

7
This one still hurts me bad:
Quote
In the current Office MDG it's impossible to set primary/Foreign key constraint on import of classifiers of type <<table>>.  This is a pity because the MDG allows us to reverse engineer any database using the DBMS object metadata.  My suggestion is:
3. Add capability to assign primary key constraint to any column to the classifier import profile (keep in mind composite keys)
4. Add capability to assign primary and foreign key constraint to any column to the connector detail profile (keep in mind composite foreign keys and primary key that include a FK)

PKs don't register as stereotype in reverse engineered tables, this seems like an oversight... such a basic but important feature....

8
General Board / Re: Get all elements of hierarchy
« on: August 10, 2024, 02:51:05 pm »
You can't use recursive queries in EA searches, or Repository.SQLQuery
They need the query to start with Select

You can cheat EA with internal query syntax, like below:
Code: [Select]
SELECT q.* FROM (
  <any_query_not_starting_with_select_keyword>
) q;

It works on PostgreSQL repository, and I'm pretty sure, this syntax (or similar) is possible in many other SQL engines.

I know I tried this a few years ago and couldn't get it to work for searches in SQL Server. I never really bothered anymore once the #Branch# macro became available.

Geert

Tried it in EA 16.1 on local SQLite project: EA crashed... too bad...

9
General Board / Re: Get all elements of hierarchy
« on: August 06, 2024, 01:28:16 am »
What's wrong with recursive, I find it easier and safer.
You can get all package GUIDs then from there get all elements within that package

Code: [Select]
WITH RECURSIVE pkgbranch (eaguid, pkgid, pkgname, parentid, lvl) AS
(SELECT p.ea_guid, Package_ID, p.Name, p.Parent_ID, 1
FROM t_package p
WHERE p.ea_guid = '{xxxx}'
UNION ALL
SELECT p.ea_guid, p.Package_ID, p.Name, p.Parent_ID, pb.lvl+1
FROM t_package p
JOIN pkgbranch pb ON pb.pkgid = p.Parent_ID)

SELECT * FROM pkgbranch;

10
General Board / Re: Where are Foreign Keys Stored in the Database?
« on: June 30, 2024, 01:32:47 am »
This is what I use for my queries, seems to work for me

Code: [Select]
CASE WHEN t_attribute.IsOrdered = 1 THEN 'Y' ELSE '' END,--PK
CASE WHEN t_attribute.IsCollection= 1 THEN 'Y' ELSE '' END,--FK
CASE WHEN t_attribute.AllowDuplicates = 1 THEN 'Y' ELSE '' END,-- NN; Weird but correct
CASE WHEN t_attribute.AllowDuplicates = 1 or t_attribute.IsStatic = 1 THEN 'Y' ELSE '' END,--Unique NEED TO ADD OTHER UNIQUE FROM CONSTRAINTS

What FK references what PK is stored in t_connector table and its tags I think

11
Uml Process / Re: Modeling Calls between operations
« on: June 18, 2024, 09:33:03 pm »
In UML you can't show operation messages (I think this is what you call 'calls') in a class diagram.
And messages are not constraints so they can;t be represented by associations.
Sparx EA supports UML, you must be proficient in UML to use EA.  Good place to start: http://www.uml-diagrams.org/

12
If your EA model is generated by reverse engineering a database, the mapping is automatic only if the metadata is captured during the reverse engineering process.  Most databases don't provide this kind of metadata, so you would need to add it manually after reverse engineering.  I remember EA has a column to column dependency connector, I forget what it is but it can be done manually and you would need to write a custom query to generate the column to column dependency matrix.

13
General Board / Re: Scripting SQLLite Repos with Powershell
« on: March 28, 2024, 02:07:14 pm »
sqlite.org has an excellent introduction to CLI scripting.  You download the SQLite CLI and call it via your terminal, command prompt or whatever.  It works really well.

14
General Board / Re: Finding messages that are not methods
« on: October 23, 2023, 12:39:59 am »
Hmm if you are using UML sequence or collaboration diagrams for your application architecture you should be able to use messages (that require methods in the receiving class) and signals (that don't require methods).  This would make replacing, tracking and reporting really easy.

15
When I did the trials I did not notice any major benefits in Corporate - for example the database builder thing is something I can do better myself I thought.  What benefits do you see in Corporate version?  Genuinely interested to know.

Pages: [1] 2 3 ... 33