Sparx Systems Forum
Enterprise Architect => Automation Interface, Add-Ins and Tools => Topic started by: L.Krobot on August 08, 2015, 04:08:21 am
-
I'm extending Archimate with my own MDG technology, and I'm adding my new elements into Quick Linker menu,
but, when I test it, on the Quick Linker menu, I'm geting on the top all elements from original Archimate stereotype, and then on the bottom I get elements from my MDG stereotype.
Really, I’d like to have this completely opposite:
I need the elements from my MDG on the top of the menu, and then, the original elements from Archimate on the bottom of the menu.
Do anyone know how to do this ?
thx,
ljk
-
I doubt there is a solution for that. Getting the QL to work is a PITA, honestly.
q.
-
I believe it's all about the order that the technologies are loaded. If you put your technology file in the same directory as the Archimate technology and rename it so it's first alphabetically, it might get loaded first. However, I've never tried it, so can't promise it'll work.
-
Hi Ljk,
If you try KP's suggestion, can you let us known the results? As I indicated elsewhere, I have a similar environment - extending ArchiMate.
Paolo
-
I believe it's all about the order that the technologies are loaded. If you put your technology file in the same directory as the Archimate technology and rename it so it's first alphabetically, it might get loaded first. However, I've never tried it, so can't promise it'll work.
Hi Neil,
Long time no contact! Since you guys wrote it, can you provide some definitive descriptions of the QL process? Over the years, I haven't REALLY been able to come to a good understanding of how the QL "does its thing". It still seems somewhat arbitrary from our "outsider's" view. Getting it to do what you want can be (as qwerty said) a PITA and can consume a lot of time - better spent of more substantive work.
Paolo
-
Well, I can't take credit for it, but... Each quicklinker definition row has a number of "filter" fields that determine whether the row should be ignored and a number of "command" fields that determine what menu commands to create. EA loops through each definition row (built in definitions plus every enabled technology) in turn, either ignoring it or adding its command to a popup menu. Then if it hasn't found an "exclusive to stereotype" flag on the first pass, it performs a second pass, this time matching blank source stereotype. Finally it displays the menu. And that's pretty much all there is to it.
-
Well, I can't take credit for it, but... Each quicklinker definition row has a number of "filter" fields that determine whether the row should be ignored and a number of "command" fields that determine what menu commands to create. EA loops through each definition row (built in definitions plus every enabled technology) in turn, either ignoring it or adding its command to a popup menu. Then if it hasn't found an "exclusive to stereotype" flag on the first pass, it performs a second pass, this time matching blank source stereotype. Finally it displays the menu. And that's pretty much all there is to it.
Thanks, KP. That's good enough. for now. ;)
However, in determining alphabetical order of the MDGs, are all the (available - that is the files are where they are supposed to be - and selected) MDGs loaded and then sorted? And which field in the MDG is used to sort? Id=, Name= or Alias=?
Paolo
-
There is no sorting. Technologies are loaded from the file system in some order. Alphabetical order of filename within each directory would be my guess, but it's a guess.
-
There is no sorting. Technologies are loaded from the file system in some order. Alphabetical order of filename within each directory would be my guess, but it's a guess.
It's OK for US (USers) to guess - sometimes we have no choice!
But it's not acceptable that Sparxians "guess". :-? Do I need to place a formal support request to get this answered - definitively?
Some MDGs are in the default installation folder structure, others are located elsewhere (such as shared network drives etc). We need to understand how Sparx behaves to make (some) sense of its EAUI behaviour.
It's hard enough getting non-modellers (including IT Architects) to use Sparx EA to model their Universe of Discourse without weird behaviour that puts them off or, worse, gets them to complain... (It's no coincidence that the/a collective noun for a group of architects is "an argument of architects" ;))
Paolo
-
As you may or may not be aware, the QuickLink definitions are stored as plain text in the MDG Technology XML file -- so you could place your definitions in Archimate or Archimate2 manually.
I haven't tested this but it should work, provided that the QuickLink definitions aren't scanned once and for all when the technology is loaded because then you run into the load-order problem again. So that's a question for KP.
Also of course it's a violent hack, and a bugger to maintain. And may well be a violation of EA's license terms.
/Uffe
-
But it's not acceptable that Sparxians "guess".
Would you rather a guess or no answer at all? KP's time is valuable, and it's not primarily for user support. He said that it's loaded in the order the file system provides the information for each directory. From my memory that tends to be alphabetical for windows, although when running on WINE it tends to be unpredictable.
If you must have a technology to appear before archimate. Name the file aaamyarchimate.xml and put it in the same directory. Any other solution would be considered as a new feature request.
-
As you may or may not be aware, the QuickLink definitions are stored as plain text in the MDG Technology XML file -- so you could place your definitions in Archimate or Archimate2 manually.
I haven't tested this but it should work, provided that the QuickLink definitions aren't scanned once and for all when the technology is loaded because then you run into the load-order problem again. So that's a question for KP.
Also of course it's a violent hack, and a bugger to maintain. And may well be a violation of EA's license terms.
/Uffe
Unfortunately, Uffe, it's not just one MDG in use... That's why I asked the question. Also, if one MDG has a named grouping, and another has the same named grouping does the QL place them together?
When you set up MDGs these questions come into play - especially when you are setting up an enterprise repository holding the (possible) output of many MDGs.
Paolo
-
But it's not acceptable that Sparxians "guess".
Would you rather a guess or no answer at all? KP's time is valuable, and it's not primarily for user support. He said that it's loaded in the order the file system provides the information for each directory. From my memory that tends to be alphabetical for windows, although when running on WINE it tends to be unpredictable.
If you must have a technology to appear before archimate. Name the file aaamyarchimate.xml and put it in the same directory. Any other solution would be considered as a new feature request.
There are guesses and guesses. I appreciate KP's time is valuable. But from an overall support point of view, perhaps he could have "handed it off" to customer support with his guess.
I would have been happy enough with a "Please put in a formal support request".
Unfortunately a guess is as good as the documentation its based on. (Not slanging off RoyC - either) It's just a play on the phrase - "a verbal contract is as good as the paper it's written on".
Paolo
-
Well, my answer is that there is no guarantee on technology load order, and therefore on the quicklink order from technologies.
As it currently stands, the best way to ensure your technology is loaded early is to put it in an add-in. They appear to loaded immediately after the core.
-
unfortunately no success till now ...
only way to achieve this was:
- instead of extending Archimate (or other) MDG, original UML element (i.e. Class) was extended first with own MDG stereotype (i.e. Service Consumer), and then added ALL the rest from the Archimate element (i.e. Business Actor)
- and then created QuickLink artifact, listing first own elements, and then, in sequence, adding the elements from the original Archimate ...
It works, but it is not easy maintainable, you have to reverse engineer everything from Archimate, and on the end you do not have Archimate any more, but only your MDG that is not Archimate extension, but only your own Archimate-like MDG ...
maybe in the future somebody finds the way how to do it in the simple way ...
rgrds,
ljk
-
unfortunately no success till now ...
only way to achieve this was:
- instead of extending Archimate (or other) MDG, original UML element (i.e. Class) was extended first with own MDG stereotype (i.e. Service Consumer), and then added ALL the rest from the Archimate element (i.e. Business Actor)
- and then created QuickLink artifact, listing first own elements, and then, in sequence, adding the elements from the original Archimate ...
It works, but it is not easy maintainable, you have to reverse engineer everything from Archimate, and on the end you do not have Archimate any more, but only your MDG that is not Archimate extension, but only your own Archimate-like MDG ...
maybe in the future somebody finds the way how to do it in the simple way ...
rgrds,
ljk
Well ljk,
Thank you for confirming the above.
As it happens, we took the decision a while ago for other (related) reasons to create our own MDG and disengage from direct ArchiMate extension. We reverse engineered the Sparx ArchiMate MDG and used it as starting point for our specific one.
So far that's worked out well and your post seems to confirm our direction as the only viable one.
Paolo