Half an hour each model?!? Plus 9 models, you take 4,5 hours to extract. I thought I had a problem…
We have 26 application libraries plus 17 Plex libraries (Class Libraries + Pattern Libraries). We only extract from our 26 application models.
Because we have the data spread through many modules, we have to update and extract regularly. For example, we have group models that only contains data base definitions (fields and Entities). If we create a new field in a table, we need update that model and extract it in the model where the business logic that use that table is.
The model that contains all the others as libraries is the model where is the GUI from our application. We also use it to generate our versions/builds/PTFs (instead of generate from each host models) and to perform impact analysis.
I can point you some disadvantages from extracting new local models instead of extracting to an existent local model:
1) It is necessary to configure the local model (Model Configuration);
2) It is necessary to configure the bld file (or copy from the previous local model);
3) It is necessary to configure the List object for logging objects (in Models Options);
4) since we are constantly discarding Local models, we have the risk of losing changes if we forget to update the local model before discarding it;
5) We are starting to believe that Plex can't handle our "intensive" use of it.... :-( (we have open issues in CA Support for a long, long time…). In that matter, and since we know that information of each Local Model is stored in the Group model (at least for checking update attempts from copy of previous versions of the local model), we are afraid to begging to create many local models (every time anyone needs to extract from that model) and to have problems in the future with that approach.
Of course with that very nice tip of using templates some of these disadvantages are minimized.
I don’t think the use of macro should be very helpful. First off all, since we take 1h15m extracting to that local model is very frequent to have group model locking errors due to updates/Extracts from other team members. That messes with the macro steps. Second, we assume that the extract from this local model takes 1h15 and simply go to do anything else. But we are afraid for the increasing of extract time.
Checking messages from message log to see which libraries have changes is also time consuming and can lead to human errors.
Meanwhile we started the following approach: try to clean our models from unused objects.
Every group model have obsolete objects from discontinued functionality, previous versions of reworked objects, etc…
Clean these objects may not have significantly impact in the extract time. But not if we are talking about triples.
We use lists to gather functions that make part of each version/build/PTF. Over the years we have created hundreds of lists with many thousands of triples (LST contains FNC). So we started to delete lists from old versions/Builds. The reduction of number of triples, had significant impact in extract time.
The usage triples are also a problem. This triples should be inherited but somewhere in time the triple “FNC generated call to FNC” stopped to be inherited and Plex started to generate a large amount of unnecessary triples. Almost all our functions inherit from a function named Function(T). This template function was changed last year and 7 called functions were substituted from another 7 new functions. This change made that 180.000 new triples (FNC generated call to FNC ) were generated.
I recently opened a CA Support issue to solve this.
Since we work with versions/levels, the generated calls triples for the functions that stopped of being used in the template remained (we have the generated call in one level and the …stop triple in another one). So we had to delete the function objects to automatically delete thousands and thousands of triples.
The extract time is currently around 45 minutes (reduced from 1h15). I believe we can reduce this when CA resolve the FNC generated call to FNC inheritance issue.
Of course, I don’t know how can this be applied to your 1GB model.
In any case, CA should work on this “Synchronizing Objects and Triples” step.
Thank you very much George and Sabastien for your detailed support and very nice tips!
I’m still working in an experience of merging Configuration levels using XML export/import and levels deletion. I will keep you informed of my findings.