Book a Demo

Author Topic: UI: How to reload a single Project Root?  (Read 2598 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
UI: How to reload a single Project Root?
« on: November 23, 2006, 07:14:53 pm »
In [size=13]Speeding up large project load[/size] David Bullet asks about (effectively) using a lazy load strategy for EA.  I am in support of that - however, I recognize that in order to maintain consistency, considerably more of the entire repository will need to be loaded on first pass than would at first glance require..

In [size=13]CreatingModel Method[/size] I mention the on-going problem of overlapping and contradictory meanings for various terms within EA.

This Topic is related to both.

There is a function in the automation interface to reload a branch (RefreshModelView(long PackageID)).  If PackageID is 0, the entire model is reloaded.  If PackageID represents a valid PackageID, only that package will be reloaded.  

The behaviour of the UI appears to be that if you use File|Reload Current Project [Ctrl+Shift+F11] then the entire repository (.EAP file or Schema) is reloaded.  For packages below a Project Root, you can use <Context Menu>|Contents|Reload Current Package.

So where is the function to reload a Project Root?  In any non-trivial model, you soon create a number.

We are performing extensive work behind the scenes (via direct manipulation of the database) to assist in merging work by multiple people.

We need to be able to reload only the affected Roots...

TIA,
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Dave_Bullet

  • EA User
  • **
  • Posts: 295
  • Karma: +0/-0
    • View Profile
Re: UI: How to reload a single Project Root?
« Reply #1 on: November 26, 2006, 07:22:15 pm »
Depending on the number of changes you are importing behind the scenes, due to relationships etc.. - wouldn't you end up having to re-import most project level roots?

(BTW- I can't find a way to reload a root level model.  As you mentioned - you can reload a whole project, or any view under a model - but not the root model(s) themselves).

If performance is the driver to try and restrict / reduce the amount of reloading - then regardless of whether you take the brute force reload approach - or build some sort of dependency tree in memory to reload.... EA should perform a bulk retrieve on t_object and t_package (2 SQL queries) then do an in-memory mapping (client side) to object instances.  This would be much quicker than the hundred's of individual SQLs EA probably currently sends to the database.

OO is appropriate for apps - but a dog for databases

Cheers,
David.
"I know I'm close to a good design, but it's like the balloon animals, squeeze in one spot and the problem moves down the line"