As we know, to get a stereotype applied correctly to an item (assuming the type is already correct), we need to update two properties:
The Stereotype field and the StereotypeEx field in the API and the equivalent t_object.Stereotype and t_xref.Description columns in the database.
In a recent post (
v15.2 - DB Builder to allow EAUML::<component> as non-primary stereotype), I noted that we had "successfully" managed to get EA to apply both the EA specific EAUML::<Component> stereotype and our own stereotype to supply our overlaid rendering. For example, our Database View stereotype should end up as:
@STEREO;Name=DBVw;FQName=<our Profile>::DBVw;@ENDSTEREO;@STEREO;Name=view;FQName=EAUML::view;@ENDSTEREO; in t_xref.Description
In our toolboxes, we place our own stereotypes rather than the EAUML ones.
We do a lot of processing "behind the scenes" using direct SQL manipulation of the DB. So for example, when the user drags our database item from the toolbox, it can only create a single stereotype entry in t_xref.Description (in this case:
@STEREO;Name=DBVw;FQName=<our Profile>::DBVw;@ENDSTEREO;)
So we run a query to fix it for the users and append the EAUML portion of the full t_xref.Description.
Imagine our surprise when the DBVw elements stopped using our shapescript AND MDG specified rendering!
Interestingly, some retained the rendering. Comparing the ones with and the ones without via the UI we couldn't see any difference in the properties!
Surprise turned into consternation WT* is going on? We compared the DB entries and again could see no discernable difference!
After a few frustrating hours, this morning we tumbled to the problem!
The one that "worked" had the entry:
@STEREO;Name=DBVw;FQName=<our Profile>::DBVw;@ENDSTEREO;@STEREO;Name=view;FQName=EAUML::view;@ENDSTEREO;And the ones that didn't had the entry:
@STEREO;Name=DBVw;FQName=<our Profile>::DBvw;@ENDSTEREO;@STEREO;Name=view;FQName=EAUML::view;@ENDSTEREO;Can't see the difference? Now you can appreciate the problem!
Especially since the UI showed identical output!!!To be continued... See if you can spot the difference before I post the next episode!
Paolo