Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - fwoolz

Pages: 1 2 3 [4] 5 6 ... 29
Suggestions and Requests / Re: AI features related to profiles
« on: February 05, 2010, 11:32:59 am »
Hi Neil,

It would be great if the AddNew(Profile::Stereotype) method also performed an auto-sync when Update() is called subsequently (maybe add an optional bool param to Update - Update([bool sync]) - to turn off auto-sync if sync = false?).

As a side note, I encountered some problems with capitalization and case sensitivity when saving and importing profiles - see


Suggestions and Requests / Re: AI features related to profiles
« on: February 05, 2010, 10:46:50 am »

Apparently Sparx has been keeping secret  8-) a Repository method in the AI called CustomCommand(string class, string method, string params) (see that provides among (no doubt) other things the ability to sync a stereotype with a profile. It doesn't distinguish between MetaClasses to which the stereotype applies, however...


Suggestions and Requests / AI features related to profiles
« on: February 05, 2010, 06:49:32 am »
The following feature request was submitted:

Hi all,

There seems to be no way to access profile items from the automation interface, so I would like to request that the following features be added to the AI as methods of EA.Repository:

object NewObjectFromProfile(string profileName, string stereotypeName) – Creates and returns an instance of an object (Package, Element, etc.) based on «stereotypeName» defined in profile “profileName”. Object type can be determined by ObjectType and can be cast to the appropriate EA object. Error if profile or stereotype is not defined.

object NewLinkFromProfile(string profileName, string stereotypeName) – Creates and returns an instance of a link (connector) based on «stereotypeName» defined in profile “profileName”. Object type can be determined by ObjectType and can be cast to the appropriate EA object. Error if profile or stereotype is not defined.

int SyncStereotype(string profileName, string stereotypeName) – Synchronizes all associated model objects having stereotype «[profileName::]stereotypeName» with the features defined for that stereotype in profile “profileName”. Returns the count of objects updated. Identically named stereotypes from a different namespace (Profile) should not be affected. Error if profile or stereotype is not defined.

bool IsProfileLoaded(string profileName) – Checks whether the specified profile is loaded.

bool IsStereotypeDefined(string profileName, string stereotypeName) – Checks whether the specified stereotype is defined in the specified profile. False if not defined or profile not loaded.

bool LoadProfile(string filename), bool SaveProfile(string profileName, string FileName) – Load and save profile .xml files, respectively.


Fred Woolsey


The methods may require some tweaking (for example, what if the same stereotypeName applies to more than one MetaClass?)...

Suggestions and Requests / Re: EA table t_document and unused fields
« on: January 28, 2010, 01:56:44 am »
Cheers Geert,

I've done some messing around with using a WebBrowser and HtmlDocument in my GUI as well (for handling Rich Text in notes - different issue from the XML one), but found that it was necessary to get down to the unmanaged component level to get what I needed out of it. This proved to be a royal pain, plus the WebBrowser is a resource hog and seemed a bit like using high explosives to kill a fly. I even cobbled together a limited HTML<->RTF parser so I could use a RichTextBox in the GUI, but again it seemed like more work than it was worth.

It's very tempting to expropriate  ::) some of those Memo fields that just seem to be lying around, but as you pointed out in an earlier post, this isn't a good idea unless blessed by Sparx since they may make use of them at some point in the future or make a backend change that breaks either EA, the add-in, or both!

I'll take Neil's earlier advice, I think, and post the questions as a support request as well.

Thanks again,

Suggestions and Requests / EA table t_document and unused fields
« on: January 27, 2010, 09:27:17 am »
The table t_document in the EA database has two fields for document content, StrContent (a Memo field in Access) and BinContent (an OleObject field in Access). From what I can tell, EA uses the BinContent field exclusively to store linked documents but ignores the StrContent field completely. There is also a 255 character text field for document notes (t_document.Notes) that doesn't seem to be used. In addition to this, several fields in t_object, particularly Header1, Header2, GenOption and GenLinks (all memo fields) would seem to be available for Requirement elements since these all relate to code generation, something that doesn't apply to Requirement objects.

I'm also looking for a simple way to store an XML file (containing customized requirement revision history records) in either a document element linked to a requirements element or in the requirements element itself without having EA turn all '<' and '>' characters into '&lt;' and '&gt;' (as would be the case with the element Notes field) or adding an RTF header and control codes to it (as would be the case with a linked document). Yes, there are ways to get back the original XML, but this seems like a clunky, inelegant solution. So my questions are:

1. Do Sparx have plans for the StrContent field in the foreseeable future, or would they be willing to allow this field to be used for application-specific plain text objects?

2. Would Sparx consider allowing custom row entries in t_document provided that the rules regarding EA's use of the table were followed? This would allow arbitrary BLOB content (such as images, Autocad DXF or DWG files, PDF files, etc.) to be stored as element attachments WITHIN the database rather than as linked files. This encapsulation is important for cases where a distributed team is working on a project but not everyone necessarily has access to the linked files.

Note that I've tinkered with custom row entries (along with multiple linked document entries) in t_document and EA seems to get along quite nicely with them (it does, however, seem to ignore all but the first linked document for a given element).

3. Are there any reasons why the listed fields in t_object shouldn't be used for custom plain text data in Requirement elements?

4. Would Sparx consider adding improved Automation Interface support for the listed fields in t_document (and for the more obscure fields in t_object while they're at it)? For starters, it would be good to be able to load linked document RTF directly from a string rather than only from a file.

5. As an alternative (or additionally - even better) would Sparx consider adding an option (checkbox in the UI) to treat the element Notes field as plain rather than Rich Text? This would allow the field to be used for XML, HTML, and other markup without it being mangled by the HTML-lite parser used by EA. This probably means another database hack (maybe to StyleEx or something similar?), but it seems eminently do-able.

6. As a side issue, what format does EA use to store RTF files? Is it compressed (e.g. Zipped)?

Fred Woolsey

Suggestions and Requests / Re: Enlighten us about Document artifacts
« on: December 31, 2009, 08:01:48 am »
Hi Marcelloh,

I'm not sure I understand what you're getting at. I just tried the following and it worked properly:
1. Add a plain "Artifact" to a diagram.
2. Create and then edit a linked document for that "Artifact".
3. Add a "Document Artifact" to a diagram.
4. Create and then edit a linked document for that "Document Artifact".
5. Generate RTF documentation for the package containing the diagram with "Linked Document" checked under "Element" in the RTF Template Editor.
6. View the generated document and verify that the contents of the linked documents are in fact in the generated document.

Suggestions and Requests / Re: template editor should be fixed
« on: December 27, 2009, 11:46:33 am »
Maybe Epiphany present?  :)

Sparx has always had the shortest update cycle of any commercial tool (or open source tool, for that matter) I have encountered. That's good. They have also been very quick in implementing new features related both to UML and integration with other tools. That's also good in theory, but in practice has been a mixed blessing.

EA's growth has been organic, and that means that new features sometimes grow on top of old ones that never quite worked correctly in the first place. Several of us in this forum have expressed concern that the EA code base is sorely in need of bottom-up refactoring (starting with the database schema, which has been hacked worse than Janet Leigh in "Psycho"). Maybe 8.0 is a good place to start?

Fred W

Suggestions and Requests / Re: Making the Generated TOC working
« on: December 24, 2009, 05:02:23 am »
Keep at 'em, Marcelloh. EA's documentation capability has always been - to me at least - a key feature of the product, which is why it's so frustrating that it gets you almost there, but then (to wax metaphorical) dumps you out at a deserted bus stop in the middle of nowhere without a transfer (or a schedule!).

Fred W

PS: At least there's no cropduster shooting at you ala Cary Grant in North by Northwest...

Suggestions and Requests / Re: Search Based on Diagram Selected
« on: December 17, 2009, 09:46:26 am »
I seem to recall some discussions a while back about how badly the EA schema is is need of an overhaul  ;) ...

Suggestions and Requests / Re: Project Constants
« on: December 17, 2009, 09:42:52 am »
Even more belatedly, I agree.

Fred W


Mea culpa for not being clear enough. I'm referring to element issues, not model-wide issues. The element issues list on the maintenance tab provides the option to create an Issue element on the current diagram linked to the element it relates to (good so far...), but the new Issue element and the original list entry thenceforth have nothing to do with each other, as far as I can tell. It would be quite useful, I think, to maintain a link (via GUID, perhaps, maybe by means of the factotum table t_xref) so that updates to one can be reflected in the other.

Fred Woolsey

Hi all,

It would be great if things like the Issues and Changes lists provided in the Maintenance view gave you the ability to create persistently linked Issue and Change objects in the model, with full round-tripping between the lists and their corresponding objects. It is possible, for example, to create an Issue object from an Issue in the Issues list, but the link between the list and the newly created object disappears once the object is created and placed on the diagram. (A side note - it would be much better if the newly created object was placed somewhere in the current diagram view rather than at the upper left corner!)

Fred Woolsey

Suggestions and Requests / Re: Model search and multiple stereotypes
« on: October 28, 2009, 01:43:53 pm »
Cheers Geert,

I tried using SQL search, but you need to set up a join btw. t_object and t_xref on t_object.ea_guid = t_xref.Client (or whatever the precise field name is), AFAIK, in order to access all the stereotypes. In addition, once you have the string defining the stereotypes from t_xref, you need to parse it since it's encoded using SOML (Sparx Own Markup Language!), to wit, @STEREO; Name=valueType; @ENDSTEREO or some such. A script can handle this nicely (as can an add-in, albeit with a bit more work) , but the Model Search feature is so darn convenient that it would be great to have a straightforward search capability ala' Paolo's suggestion (Stereotype = "stereotype", "stereotype" IN StereotypeEx/ SterotypeEx CONTAINS "stereotype").

Suggestions and Requests / Model search and multiple stereotypes
« on: October 27, 2009, 01:10:16 pm »
The Model View and Model Search features are powerful tools for organizing... well, model views, but one feature that seems to be lacking is the ability to search on stereotypes beyond the first one on the list in cases where multiple stereotypes have been assigned. This appears to be the case for SQL query searches as well; the "Stereotype" property can be accessed, but not "StereotypeEx". Since I often use stereotypes with SysML <<valueType>> elements to organize data elements (and thus have at least 2 stereotypes for each element), the ability to search on any or all stereotypes would be a big plus.

Fred Woolsey

Suggestions and Requests / Re: Showing Alias in addition to Name
« on: September 24, 2009, 01:19:01 am »

While yer at it, perhaps you could fix the alias + name implementation so that it stops showing [CR][LF] characters as "unprintables" (square blocks in most fonts) between the alias and element name when both are displayed on the same line? This has been addressed in some cases, but every relevant use case and its corresponding code needs to be checked for (wait for it, Paolo...) CONSISTENCY! ;)

Fred W

Pages: 1 2 3 [4] 5 6 ... 29