❗🕜 Warning: this article may contain outdated information. Consider before using any descriptions/solutions, otherwise it still can be helpful. Help : Synonyms and name changes
As you model along with Modlr in VisualStudio or by using AppComplete you collect a lot of knowledge about the domain you are modeling.
I have heard from many a need to access this information in some simple export format so that it might be shared with other tools or people. I have seen this need as well – but nevertheless – it has been hard to decide how such an export mechanism should be constructed to solve all conceivable needs in one glorious stroke.
But as the need to export came up once more – and I could not find a way to wiggle out of solving it – I created this solution here that I actually like a lot.
The solution uses many of the model driven concepts that →MDriven has introduced earlier.
The meta model we use to hold the model you design we call ExtendedModelLayer. There also is a meta model called ModelLayer – this model holds the knowledge about content in the model – like classes, attributes, associations and state machines. The ExtendModelLayer adds diagrams, viewmodels, report definitions, Enterprise architecture information and so on.
This is what I want you to be able to do:
1. Define viewmodels with UI-hints on the extendedmodellayer model
2. Show those derived UI’s from AppComplete and/or Modlr so that they get data from YOUR model
3. Export any grid in such a derived UI to ODS-format-file (open document spreadsheet – works in excel and others)
How it is done
1. Open AppComplete and click new (! Yes new, you do not do this in YOUR model – it is NEW model of its own)
2. Right click package, import/export, Import from EcoSpace in Assembly (new function)
3. Locate the ExtendedModelLayer assembly in the install folder (C:\Program Files (x86)\ →MDriven\ECO\6.0\Modlr)
4. Then you get all the packages and their content imported into your new model
5. Now you can create view models for ExtendedModelLayer… Wow – you can do everything… Like finding all classes with more than 3 attributes:
or all ViewModels in order by name:
Span.allinstances->orderby(name)Remember that these ViewModels will execute on the ExtendedModelLayer that holds the instances that make up YOUR model. You decide what you want to see and how it should be presented. Maybe you want a list of all constraints you have? Or on things that has a certain TaggedValue set? Gone are the days when you needed to ask us politely to expose some information a certain way – now you are empowered to get ANY AND ALL DATA you want.
6. Save the modlr file into %ProgramData%\CapableObjects\Plugins (C:\ProgramData\CapableObjects\Plugins on my machine)
7. Now restart AppComplete or Modlr (Visual Studio), open a model and right click modlr tree:
8. And a form comes up, executes your viewmodel definition on the extendedmodellayer that holds your model:
9. It also holds Buttons at the bottom that creates ods files for you, so that you can get the values into excel:
And that is it.
Along with the plugin interface this ViewModel plugin expose every tiny detail of your model. With AppComplete and Modlr you are never locked in. You can harvest all the information for any need you see fit – after all it is your model.
Loading the ExtendedModelLayer into Modlr enables you to familiarize yourself with the meta model we use. Have fun.
I got a request to dump all processes and processteps from the EAInformation in Modlr.
Following the steps from above I created a ViewModel for ExtendedModelLayer:
I save this modlr file under C:\ProgramData\CapableObjects\Plugins
And while I have it open – I start a new instance of AppComplete – load the model that wanted to dump the processes:
Right-click any node in the tree and pick the “Plugin Views” and the correct ViewModel:
Cool – if I do not like the result – fix it in AppComplete #1, save, restart AppComplete#2 and try again:
Better, Now I can press the “… To Excel” button:
And I have the selected data in a ods file that opens with Excel
You can access ALL DATA in the extendedmodellayer so that is ALLDATA in that builds up your model.
Once you have created one of these reports it works for ALL MODELS you have now and in the future.