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 - RIL

Pages: [1] 2 3 ... 10
1
Suggestions and Requests / Re: Fully functional API for TaggedValues
« on: September 28, 2020, 08:55:16 pm »
Hi Geert,

I should have been clearer. I think the problem was either that the TV's were not autoinserted on AssociationEnds (when adding a link) like they are with all the other members and classes, or that the code generator didn't have properties for reading these TV's. I have to check which of these problems it was, or if it was both.

In either case, I had to give it up back then since I didn't even get a response on the problems I described at the time.

If the problem are fixed by now, then it's really good news because it's not trivial to find a tool which covers the MDA concept to 100%  (the other tool that comes close, but not all the way, is MDriven Designer. It has nice features (which I'm not interested in) but it's very slow and it lacks qualifiers on links and.. well, it's not complete. I think EA is closest to being complete.

// Rolf

2
Suggestions and Requests / Re: Fully functional API for TaggedValues
« on: September 28, 2020, 05:41:30 am »
No. Not in 15.1 (and likely you will not see it in any other upcoming version). Can you still recommend EA? ... q.
Thanks for the quick reply!

Hm. Sounds like people at Sparx isn't really interested in what they are doing.  It's really like day and night compared to something way more complex than this "telephone book" level of complexity - Rhino3D for example. There the whole development team takes turns on the public (mcneel) forum to answer - and fix - problems with the software, and that is in addition to a dedicated forum-guy. Incredible people, polite, helpful, just...

Well, unique I guess. It sucks to have to deal with any other product/company, really. So, if you're into CAD (or development related to CAD, just go there and breath some fresh air. Here's an example when the chief architect gives me a hint about how to tweak into their (proprietary) Mesh class as to give me access to C++ speed when traversing mesh vertices. And a few days later they had added to the .NET API a whole bunch of super fast conversion methods to the Mesh.

https://discourse.mcneel.com/t/direct-access-to-struct-fields-for-gpu-compatibility/71033/22?u=ril

And with monthly minor releases (with weekly release candidtaes inbetween) we are now at Version 6.30(!) after three years since release of 6.0. That's kinda different compared to almost any other thing out there. But in comparison to EA... mm.

I can even follow "my issues" via their issue tracker:
https://mcneel.myjetbrains.com/youtrack/issues

So different. Gotta ask some space observatory to look out for on which different planet those guys enjoy their daily.

Have a good one!

// Rolf


3
Suggestions and Requests / Re: Fully functional API for TaggedValues
« on: September 28, 2020, 04:21:51 am »
== MDA FRAMEWORK LOOKING FOR A UML MODELLER ==

Has there been any progress on this? The lack of support for TaggedValues for AssociationEnds turned out to be a showstopper at the time so my then EA/Bold Framework project had to be postponed (or, abandoned for good?).

BREAKING NEWS:
News is that Embaracedro is open-sourcing the Bold Framework (see Embarcadero Announcement: https://blogs.embarcadero.com/bold-for-delphi-is-open-source/)

And now the community around this framework (yes, there's still a bunch of serious systems running on this framework) lacks a modern UML modelling tool (most of us still wrestle with old Rose98 or Rose 200x).

But EA could have been the tool of choice had the TV system gone all the way. Or has it been fixed since my original post on this?

BOLD RESSURECTED
In any case, Bold will come back to life, and people needs to have a capable modeling tool for the most advanced MDA out there. The community around the open sources all having their own sources which they bug-fixed, optimized, and enhanced with Unicode, x64 and many new features and addons are currently working hard on preparing their sources for sharing (merging) with the public repository on Github.

https://github.com/Embarcadero/BoldForDelphi

MODELLER TO USE
Please, tell me I can recommend EA as the tool of choice. At least respond to my question, which was: Is there support for TV's of AssiciationEnds ("roles") in newer versions of EA? (I stopped at EA v12.1 when I didn't even get an answer).

// Rolf

EDIT: Also related: https://www.sparxsystems.com/forums/smf/index.php/topic,10906.msg148467.html#msg148467

4
You either use GetElementSet or SQLQuery, no need to use both.

Yes, I was just curious to try the other alternative as suggested by Simon (extracting the value from xml doesn't seem optimal).

Have a nice weekend.

// Rolf

5
Use SQL to do quick lookups.

Thanks, got the Repository.SQLQuery working (fetched an Element "Object_ID" from t_object)

Besides the XML result from SQLQuery, I also tried assigning the result  to a collection, like so:

Code: [Select]
Dim coll
Set coll = GetElementSet(sql, 1)

... but I don't know how I can make use of this result since the resulting single collection item seems to be an object reference(?). I'm obviously not getting how to use VBScript collections since id =  Coll(0) doesn't return the ID. :-[ ... 

// Rolf

6
General Board / How do I model this .NET Function?
« on: March 26, 2017, 05:43:21 am »
Being new to .NET I have not learned how to represent the following code construct in UML, therefore, how do I model this function in EA?

VB.NET:

Code: [Select]
Public Function SetEnumValue(Of T As {Structure, New, IConvertible}) (
key As String,
enumValue As T
) As Boolean

The same as C#.NET:

Code: [Select]
public bool SetEnumValue<T>(
string key,
T enumValue
)
where T : struct, new(), IConvertible


// Rolf

7
Thank you all for your replies.

It looks like you'll benefit from running a data integrity check... will find all the operation parameters without a valid operation.
I'm working on a new import script, so I regenerate the whole thing from start, no problem. While testing my code I manually emptied the operation & operation parameter table

It works fine now, except for lookups of Classes being very slow (checking if class exist, since I must import in different runs from different sources files). I've got some 400 classes and 14.000 class members to import, so it takes tiiiime....

Is there a good way to speed up lookups?

// Rolf


8
Solved.

Apparently the method must be "updated" before adding parameters. I added "MethodObj.Update()" before creating the parameters, and now it works.

Code: [Select]
Set MethodObj = aClass.Methods.AddNew(aMethodName, aResultType)
--> if not MethodObj.Update() then _
--> Forcelog "Method '" + aMethodName + "' failed during create."
CreateSignature MethodObj, aSignature

9
Hi all,
(Edit: EA 12.1)
For some reason adding method parameters into new classes & methods fails consistently during (import from text file). When I look at the db tables (t_operationparams) I noticed that the parameters end up in the table, but no OperationID is ever assigned (or, the params  are not actually attached to the method it seems). Classes and Methods are successfully created though (at least they show up in the model treeview).

This code (with valid string data, see log text below)

Code: [Select]
Private Sub CreateSignature(ByRef aMethod, aSignatureString)
Dim ParamObj As EA.Parameter
''' blah blah
For i = 0 to UBound(arr)
''' Blah, blah
sType = EnsuredTypeName(sType)
Set ParamObj = aMethod.Parameters.AddNew(sName, sType)
''' Blah, blah
LogForced "----------------------------"
LogForced "Parameter Name: " + sName
LogForced "Parameter Type: " + sType
if ParamObj.Update() = False then _
LogForced "#### Error creating Parameter: " + ParamObj.Name
Next
aMethod.Parameters.Refresh
aMethod.Update()
End Sub

... results in consistent errors, like so:


Code: [Select]
[410218891]      14:18:18: ----------------------------
[410218892]      14:18:18: Parameter Name: val
[410218892]      14:18:18: Parameter Type: System.Drawing.Font
[410218900]      14:18:18: #### Error creating Parameter: val
[410218922]      14:18:18: ----------------------------
[410218922]      14:18:18: Parameter Name: key
[410218923]      14:18:18: Parameter Type: String
[410218931]      14:18:18: #### Error creating Parameter: key
[410218936]      14:18:18: ----------------------------

Tables looking like this:


Not one single parameter (out of several hundred) is successfully added to any method. Any ideas about where to look for the problem?

Scratching head.

// Rolf

10
General Board / User Interface models to Html?
« on: August 26, 2016, 08:37:17 pm »
Hi all,
Is it possible to somehow export UI models to html?

I need do make a bunch of forms & dialogs to be used with RhinoScript that supports forms/dialogs only by loading html pages (calling Rhino.HtmlBox).  But I really really don't want to handcraft the html...

If EA isn't the tool for it, is there any other option out there that would be worth looking into?

// Rolf

11
Suggestions and Requests / Fully functional API for TaggedValues
« on: December 03, 2015, 03:45:00 am »
Hi,
A number of problems with the lack of proper API access to Default Values defined as UML Types (table t_propertytypes) needs a proper API.

The problems involved is described in detail in this post (from the fifth post in the thread) :
http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1448991338/3

Although not describing here all the problem involved, there's an absolute need for adding two attributes to TaggedValue with the following functionality:

[size=11]TaggedValue.Value()
TaggedValue.DefaultValue()
TaggedValue.GlobalDefaultValue()[/size]

- DefaultValue() would retrieve what we could call "overridden" Default Values, if any, from the table corresponding to its parents type ( "t_<element type>tag"). This value is the value defined as "initial value" of the TaggedValue names when entered as attribute members to Stereotypes in Profile models.

- If no value is present, it returns the Default Value as defined in the table [size=12]t_propertytypes[/size], or better, from the property GlobalDefaultValue().  The logical flow would be as follows :

[size=12]
''' TaggedValue.DefaultValue()
Function DefaultValue()
    DefaultValue = ""
      If ContainsStr(Notes, "Default:") Then
            DefaultValue = '// The value to the right of "Default:"
      Else
            DefaultValue = GlobalDefaultValue()
      End If
End Function[/size]



[size=12]''' TaggedValue.GlobalDefaultValue()
Function GlobalDefaultValue()
      GlobalDefaultValue = '// Retrieve from the table "t_propertytypes"
End Function[/size]



Now the existing Value() property could have the following implementation:


[size=12]''' TaggedValue.Value()
Function Value()
      ''' The pseudo property "_Value" here represents the internal storage
      if _Value <> "" Then
            Value = _Value
      ElseIf DefaultValue() <> "" then
            Value = DefaultValue()
      ElseIf GlobalDefaultValue() <> "" Then
            Value = GlobalDefaultValue()
      Else
            Value = ""
      End If
End Function[/size]


"Polymorhism"
One could think of the approach as TaggedValues a sort of "polyphormism" for DefaultValues, sorts of, which in my case has proven being very very useful. This is when the same UML Types/TaggedValues are used in different contexts, i.e. in different Stereotypes.
Again, see a more detailed description of this workaround/feature in the linked post.

Hide complexity
The above functionality would hide the extra complexity due to TaggedValues having different ways of storing its info for different model element types, for example AssociationEnds, which needs to have the same support as any other group for TaggedValues (in my framework solutions the Role TVs are the most important, but they have the least support in EA).

Model Maintenance
The complexity of dealing with TaggedValues as EA API works today is a real problem, and when models or UML Types changes, updating the TaggedValues is, well a nightmare. I have no solution for that though, given how the values are stored today, which is an indicator of how this actually can become a showstopper for MDA Framework projects, which I'm into.

Performance
In my current (application Framework) model I have over 80 thousand Tagged Values to deal with (from Class, Attributes, Operations, Connections and ConnectionEnds). See the linked post for screenshots of the numbers involved.

Huge models, in turn, indicates that any solutions also needs to regard performance, since code generation from such a model is at risk of taking too long (maximum 1-2 minutes for a 250 classes model).

[edit]+Code Generation Template
Moreover, implementing this logic behind the Value() property would also bring the Code Generation Template system back to life, since it would suddenly start give access to the (default) values in TaggedValue system (given that the values of the [size=12]<element kind>Tag[/size]'s[/color] are actually read from the Value() property)[/edit]
Best regards,
// Rolf Lampa

12
General Board / Re: Locating and relocating Connectors (in Package
« on: February 20, 2015, 07:27:41 am »
Quote
A connector always has two elements,

Two elements? Did you mean the ConnectorEnds?

// Rolf

13
General Board / Locating and relocating Connectors (in Packages)
« on: February 20, 2015, 05:14:02 am »
Hi all,

I drew a device with a composite diagram as Class diagram. Then I tried to move the Classes to another Package, but, it seems the Connectors (didn't move along, and they) don't seem to be able to be Located & Relocated (between packages).

I can find the Connectors by clicking on the classes, but the "owning" package doesn't seem to be able to list them, and, no option (that I could find) to move the Connectors to another Package of choice.

When I try to export the model (my own VBScript to JSON) the Connectors simply aren't in the Package structure (since the relations were drawn while all classes were located outside of the Package for the class structure).

Q: Is there any simple UI access to locating Connectors ("by Package") and any command for moving them to another package?

// Rolf Lampa

14
General Board / Re: EA10 - Failed to initialize Javascript engine
« on: December 29, 2014, 05:15:21 pm »
Quote
Ideally it would work "Out of the box"...

First thing to do is check if a later version of EA will help. Make sure you're using at least 1007. ...
I'm using 10.0.1006 Ultimate. I thought that was the last one before EA11...
Anyhow, I couldn't find any later version for download. Do you have any link to 10.0.1006+ ?

// Rolf Lampa

15
General Board / EA10 - Failed to initialize Javascript engine
« on: December 28, 2014, 02:45:43 am »
Hi all,

EA10 on Win7 Ulitmate.

I'm trying to debug a VBscript (not javascript) but I keep getting the following debug log:

[84269569]      Stack recording threshold set to 3 frames
[84269632]      Default Directory is C:\Windows\system32
[84269633]      Agent dll found: C:\Program Files (x86)\Sparx Systems\EA\VEA\SSScriptAgent.DLL
[84269633]      Default Directory is C:\Windows\system32
[84269633]      Agent: Started
[84269673]      Failed to initialize Javascript engine


So far I can only close the debugging session, nothing happens (no execution) and I can't step or anything, only close down the debugging session.

I also tried to turn off all script debuggers except for VBscript.

All the related dlls are located in the C:\Program Files (x86)\Sparx Systems\EA\VEA folder (6 dlls).

Shouldn't this work "Out of the box"?

// Rolf Lampa

Pages: [1] 2 3 ... 10