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.

Topics - Oliver F.

Pages: 1 2 3 [4]
Bugs and Issues / OpenFile2 connects with single signon user
« on: September 26, 2008, 10:41:06 pm »
Just filed this bug...

When Windows authentication is turned on the OpenFile2 method connects to the repository with the current Windows logon regardless what is given in the username and password string.


Connect to repository:

Get an arbitrary package and apply user lock:

Open EA and look in the project browser for the package in question: Not the user "admin" given but the windows user has applied the user lock.


Bugs and Issues / createBaseLine returns false
« on: September 26, 2008, 11:34:26 pm »
I wondered what might be the criteria for Repository.createBaseline to return false as result.

What I have checked so far:

- The package is unlocked (apply user lock) by the correct user
- The correct XMLGUID is used to define the package in question
- Version and notes are unique
- It works manually from within EA with the same user and package
- The same result from EAP file and SQL server repository

Unfortunately the method is not very descriptive when it comes to errors and the manual is not very helpful here either.


Bugs and Issues / (825) No Drag and Drop from project browser
« on: February 20, 2008, 08:35:20 pm »
Suddenly drag and drop from to a diagram stopped working.
In fact I am unable to take elements, packages and other features and drag/drop  them onto a diagram, regardless the lock state.
I can see the cursor change when moving the element (with the + symbol), I can drop it but nothing happens afterwards. EA just simply returns without showing anything or giving any feedback.
On rather few occasions a dropped element is appearing but I would say this is one out of 20 attempts. From the toolbox I can drag and drop new elements without any problems.

Some days ago it used to work normally. I noticed this behavior with several different projects, be it database driven or from file system.

This is a serious issue, anybody noticed this or is it just me having overlooked something ?

[Update]: No issue with 818 so it is a bug related to 825. I will file this one.


Bugs and Issues / Note: Virtual RTF documents bug
« on: January 22, 2008, 11:32:10 pm »
Hi all.

Please note: If you are using virtual documents by dragging packages on a <<model document>> stereotyped class, it is not a good idea to edit the class attributes afterwards, especially not to edit the attribute name and alias.

It will result in the RTF generator bailing out right after the generation process has been started leaving the generated document in a structural mess.
I had a hard time finding that beast as I first blamed the template for it (because experienced usually showed that this is the correct suspect).

This bug is present until 7.0 build 818.

Sparx Systems is informed and will fix it in one of the next builds.



There is one thing about MDA transformations which is driving me straight into crazyness: String handling via addin.

I am trying to transform classes with attributes which have default values (initialValues).
Some attribute default values are of type char[] and others are unsigned int. These attributes are processed with a C# addin.

Now to the interesting part:

The addin tries to determine whether the type is integer or char[] and returns the original, unprocessed value if it´s a string.

What I see when I read out attInitial of that attribute is an escaped string like:
"\"Hey there\"".
Sending the string back to the transformation process without modification leads to the escaping chars ('\') being stripped away and the template code

Code: [Select]
$values = %EXEC_ADD_IN("Parameter_AddIn","modifyParameterArray", attInitial)%
default = %qt%$values%qt%

leads to ""Hey there"" in the transformation log thus failing the process.
The surrounding %qt% statements are mandatory for assignments in the template so they can´t be skipped anyway and this would not be of use anyway.

Handling the string determination inside the MDA template also failed as I have been unable to find the correct escaping sequence to identify the \" sequence.

So any idea what is the correct way to return a quoted string from an addin or a clever way for string determination inside the MDA templates?

Thanks in advance.


This one is a bit odd- does anyone know which is the correct keyword for setting the file name of a package in a transformation template?

The XSD code engeneering seems to rely on the package file name but actually I fail to set it correctly as it always returns with an error.
It works ok for classes so I suspect it is labelled differently.

Should look like this:

Code: [Select]

%list="Class" @separator="\n" @indent="  "%

Thanks in advance,


We are proud to announce the beta release of the EA protocol handler and the included EA add-in.
The EA protocol handler enables access to elements, packages and diagram in a repository from outside EA by using a ea:// URL.
An optional add-in eases handling by creating the required URLs from a context menu.

The setup programs can be acquired from Feel free to download them from the file section and read the user manual to get an idea how to use the tools.

The software can be installed and used as is without liability or warranty for damage or data losses.

Feedback is highly appreciated as this is a beta version so do not hesitate to give it.

Many thanks go to Eric Johannsen from Canonic Corporation ( for starting the project and donating it to the open source community.
Further thanks go to Adam Hearn for writing the add-in and improving EA interoperation.

In the name of the EA protocol handler team


As there seems to be some progress now I have created this thread to keep you folks updated about what is going on.

For those who have not followed the history of this feature, the ea protocol handler enables (at least Windows) users to access elements in EA from the outside via a EA://<guid> protocol scheme.
Canonic corporation ( had started such a handler but shifted priorities so the software is unfinished as for now.
Actually efforts are underway to open source the software. I am in direct contact with them and currently the license and open source repository is discussed at Canonic.
I will post updates as soon as they become available. Developer volunteers are still welcome as well as thoughts, ideas and feedback.


We create the primary key of a table via transformation templates, explicitely from the attributes template.
To do this we assign the first attribute (which is guaranteed to be labeled as "Idx") to be the primary key.
Though this operation is done first and the attribute is per definition the first in the originating PIM model the PK is always moved to the end of the attributes list. However we have to keep the modeled attribute order for various reasons.
What is the prefered way of keeping the order of the attributes especially for the primary key?
Is there a way to explicitely set the attribute position in the template?

The code in the template:
Code: [Select]
%if attName=="Idx"%
            %TRANSFORM_CURRENT("alias","stereotype", "collection", "constant", "containment", "ordered", "static", "volatile")%
            $value=%EXEC_ADD_IN("xbadsl", "attTaggedValueFromGUID", attClassifierGUID,"SQLType")%
  %TRANSFORM_CURRENT("alias","stereotype", "collection", "constant", "containment", "ordered", "static", "volatile")%
  $value=%EXEC_ADD_IN("xbadsl", "attTaggedValueFromGUID", attClassifierGUID,"SQLType")%

Thanks for any hints.


OK, I have figured out without problems how to set the behavior, pre and post conditions of a method via automation interface so I can set check constraints for the database tables.
Now the interesting part: How can I set the column property of a table operation which is normally accessed via the column tab?

This one seems to be missing from the API as well as from the template language. Without this triggers have to be manually set in the PSM which is a no-go.

Any ideas?


I am raising this topic in addition to my other topic because I would like to start a discussion regarding the MDA capabilities of EA.
I have the slight feeling that I have come far across the limits of what EA can do so I would like to state a few things which I do not seem to be handled without writing further code.

Basically all examples in the EA help file and the literature assume that there is a 1:1 relation between a common datatype and a domain type.
For instance a common type Integer used in the PIM is equivalent to an int in Java, a NUMBER type in the Oracle DDL, a string is a String or VARCHAR, etc.
The interesting question now: What if there are several integer types necessary whith different constraints?
It can't be that unusual to have attributes of PIM objects representing different ranges, precision, etc.
Actually those can't be set per Attribute except in tagged values, eg. via stereotype.
But then how are they transformed into eg. a DDL constraint of an Oracle database? Such a constraint would translate into a check method with a behavior field in the DDL table like:
Code: [Select]
( A BETWEEN 1 AND 2147483644 )
      OR ( A = 2147483645 )
      OR ( B = 0 )
      OR ( B = 2147483647 )

Actually such an automatism is not supported in EA as far as I know.

A solution would be to work with custom datatypes. Those can then have a different precision, range, etc. but then transformation of those datatypes into the psm types is not accomplishable.

Is that true that the MDA capabilities end here? This strikes me a bit odd as eg. having different ranges per attribute can't be that unusual.

As usual: Ideas and comments are appreciated.


Let's see, if somebody comes up with a clever solution how to do this in EA. I believe this is a challenge as we have a hard time here.

A business domain model (PIM) is comprised out of classes which have attributes. Each attribute is not of simple but of complex (business) classifier type.

This looks like this in pseudo code:
Code: [Select]
business class A
     attribute x: Type_X;

class Type_X

Classifier Type_X holds tagged values which describe the platform specific datatype in the corresponding technology (SQL, JAVA, C#, etc.).
We have to do this as code and databases are existing and we can not choose arbitrary datatypes which do not conform to the current solution.

Now the challenge: Create transformation templates for the platform specific model to fill in the corresponding datatypes.

This means: Read the classifying datatype (Type_X) and use its tagged values (SQLType, DevType, etc.) to fill the correct PSM datatype of the platform class A (to be generated) so that A looks like:

Code: [Select]
class A
     attribute x: INT(4);

So now a clever solution is sought as all attempts we have tried with the transformation templates revealed no success. It seems impossible to read the tagged value of a classifier of an attribute.

The datatype mapping dialog also did not work properly for custom datatypes (which is a reported but uncared bug, actually).

So ideas are welcome.

Thanks in advance.


Hi all.

Just to let you know and before people fall into the same pit...

When creating UML profile one is able to "override" the ExposedInterface and Port elements by creating the corresponding metaclasses and  extended stereotypes.

If you do this and export the profile make sure not to check the "Element size" option to include the element sizes in the profile.
If you do this EA will get confused about the display and dragging size because it does not expect size information for non-resizable elements like ports and ExposedInterfaces.
It will lead to very strange effects in the diagrams.

Just to let you know, I have not decided yet whether it should be considered to be a bug or not.


Pages: 1 2 3 [4]