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 - Shegit Brahm

Pages: [1] 2
General Board / How to "restore" a dialog to pop up next time? [solved]
« on: August 03, 2019, 01:03:30 am »
Hi there,

I want to do this:
- rightclick on diagram
- "Insert Other Element ..."
- select an activity and press OK
- activity gets inserted

What is missing? - The dialog box that offers me some inserting options.
(like object nodes which are now missing)

In this case like "show all object nodes" (it is called similiar)

How to restore this dialog? Or any other that I once decided to "don't ask me again" and now want to be asked again?

In settings I tried "Reset BPMN Prompts" (Diagram -> Behavior) - did nothing here due to no BPMN.
The help from insert dialog leads to which has no talks about.

Thanks, Shegit

General Board / How to use Parameter Sets for Action Pins?
« on: July 31, 2019, 01:45:06 am »
As part of the UML I did not yet found a way to achieve Parameter Sets for Action Pins with the EA (v13.5):

Can someone please guide in case it is possible or confirm EA's inability?

Thanks, Shegit

General Board / using eapx with EA v13 possible?
« on: July 25, 2019, 07:04:40 pm »
Question: what should I do to open an eapx file with EA v13.5 (Build 1351)?

- I have partners that published an eapx on a team share
- I use eap and v13.5 until now.

the aim I hope for:
- stay on 13.5, open and edit .eap and .eapx "simultanously"

possible workaround:
- convince partner to use a .eap - and hope to get it used with my v13.5
- convince some responsible administrator of my company to upgrade...
- use free offered download to read eapx

=> what is possible, what is best?

As far as I understand it was introduced in EA v14.

That would simply deny a usage with anything earlier.
-> If I create a new project, I get offered .eap & .feap - no .eapx.

in Geert Bellekens said it should work to open eapx with EAv13.
Just when I try to open the eapx file, I cannot select it as the EA file open dialog does not list ist (only eap & feap).

When I rename to .eap and try to open, my EA claims:
- Cannot overwrite existing file
- An error has occured: Unrecognized database format,39464.msg248431.html suggests for me,
that there is a setting to enable or disable Jet4 support inside EA.

-> I just don't find any. In case there is this setting - where to find? suggests, I should be able to use a eapx repository sind June 2016, while,38291.msg238327.html indicates that EA v13.5 was available after May 2017

The user guide on the other hand does not suggest for EA v13.5 that there should eapx be possible:
in comparison to v14


PS: within Excel, I once was able to select Jet4 as database engine to get an .mdb imported - which was simply an eap renamed. I just can't remember the circumstances (excel version, click through path).

Uml Process / how to "merge" object flows in activity diagram
« on: June 26, 2019, 09:48:06 pm »
I have the following simple activity diagram:

My problem / question about is the last activity and its incoming object flows:

- how to model proper UML here?

In UML-Spec 2.5.1 I find these quotes: Activities
An object token is a container for a value that flows over ObjectFlow edges [...]. An object token with no value in it is called a null token. [...] Each token is distinct from any other, even if it contains the same value as another. Object Flows
Object tokens pass over ObjectFlows, carrying data through an Activity via their values, or carrying no data (null tokens). A null token can still be passed along an ObjectFlow and used like any other token. Merge Nodes
A MergeNode is a control node that brings together multiple flows without synchronization. [...] if the outgoing edge is an ObjectFlow, then all
incoming edges must be ObjectFlows Pins
The multiplicity bounds on a Pin constrain the total number of values that may be input or output by a single execution of an Action, not the number of tokens it contains (see the upperBound property inherited from ObjectNode). A Pin may hold null tokens that contain no values. [...] An Action cannot start execution if one of its InputPins has fewer values than the lower multiplicity of that InputPin. Actions and Pins in Activities
Executing an Action in an Activity requires all of its InputPins to be offered all necessary tokens, as specified by their minimum multiplicity (except for the special cases of ActionInputPins and ValuePins, as discussed above).

I understand it that way, that my model is currently wrong - because it is impossible to have both object G as input due to the decision before.

So I have to reduce the object flows to 1 to succeed.

That seems to give me these options:

 1. set multiplicity to zero
 - but multiplicity is on value, not on token, so a token would be required to flow in
 - I just don't create even a null token in B if I decide for A
 2. use a separate merge for the object flow
 - simply said: the EA does not allow an object flow to an object or action pin
- could be a bug

Then there is more in spec: Central Buffer Nodes

[...] It accepts all object tokens offered to it on all incoming flows, which are then held by the node. Held object tokens are offered to outgoing flows [...]. When an offer for a token is accepted by a downstream object node, that token is removed from the CentralBufferNode and moved to the accepting object node, as for any object node.

Well, sounds like a way out: any input is accepted and the moment an output is accepted, it is done.

Problem smaller:

the EA now offers only Dependency, Trace and Information Flow (2) - no object flow to the receiving Action Pin. All I could get is an object flow (1) to the related action. Which misses the visualization - might it be necessary because an action pin is unable to accept a token?

I found that I can use ExpansionNodes to have object flows in and out of a Merge Node.

Just my actions are no ExpansionRegions as in

16.14.22 ExpansionNode
An ExpansionNode is an ObjectNode used to indicate a collection input or output for an ExpansionRegion.

Suggestions how to get valid UML here?

PS: Sidenote: in some cases it is necessary that the object is transfered to a later action than the one right behind the merge / decision.

what I have:

a model with some signals, some statemachines and some triggers on state's transitions from type signal (=using existing signals as specification).

what I want:
search for a signal's name or ea_guid and find all triggers that are based on them (additionally their start state and end state)

what I did:
using advice in,37989.msg236784.html to find corresponding states to a trigger (and their start state and end state), works well

What I observed:
in t_xref is also the link between a signal and its trigger:
in t_xref.Description there is "RefGUID={6BE433ED-92D8-4ff4-8CBF-BE947A2B5627};RefName=signaltrigger_to_stm3St2" and t_xref.Client contains the ea_guid of the trigger, e.g. "{AC0F2201-0378-46d7-B825-124F8220A686}"

So I thought:
I need to search for the signal's ea_guid in t_xref.Description and from there I will get the trigger via t_xref.Client

step one: create search column for signal (and use this advise:,40370.msg247193.html):
Code: [Select]
select 'RefGUID=' + ob1ob.ea_guid  + ';RefName=' + + ';'as something from
t_object ob2
inner join (select ob1.ea_guid, from t_object ob1 where object_type = 'Signal') ob1ob on ob1ob.ea_guid = ob2.ea_guid

step two: search for that in t_xref.Description:
Code: [Select]
select * from t_xref where t_xref.Description in
    (select 'RefGUID=' + ob1ob.ea_guid  + ';RefName=' + + ';'as something
        from t_object ob2
        inner join (select ob1.ea_guid, from t_object ob1 where object_type = 'Signal') ob1ob
        on ob1ob.ea_guid = ob2.ea_guid

throws the error:
DAO.Database [3342] invalid memo or OLE object in subquery ('t_xref.Description')

checking with fixed values - works fine:
Code: [Select]
select * from t_xref where t_xref.Description in

Did I miss some general SQL knowledge here or is it EA specific and what can I do to solve it?


Hi there,

I have the following "software reality in working code" (also no access to it):

    There is a class Class1 with different attributes
        AttributeA - sums up all "ordinary attributes"

It is realized that there are some objects John... of type Class1, so they all have these 4 attributes. They can be set via GUI. The tricky part is: First EnumType has to be chosen. Depending on this choice the possible choices for DataType might be reduced. And the "attribute type" of AttributeValue might differ:

    EnumType = None => DataType: int | char && AttributeValue: Field
    EnumType = List => DataType: int | char | double | String && Value: []-Array
    EnumType = Diction => DataType: int | char | double | String | XML && Value: DictCollection

That means:
If "None" than Value is only a single "field" of some possible data types.
If "List" than Value is like an []-Array where there is a long list of storable entries, it is gui chosen which data type this instantiation gets (and than all entries have same), possible data types are a bit more than "None".
If "Diction" than Value is like a collection of attribute pairs, it is gui chosen which data type this instantiation gets (and than each pair has the same combination), possible data types are more than "List".

JohnA: None=>Field | => char ='a' | AttributeA
JohnB: None=>Field | => int = 23 | AttributeA
JohnC: List=>[]Array | => String =["hello","world","list"] | AttributeA
JohnD: Diction=>DictCollection | => {XML, double} = {(<length>, 2.34); (<width>, 5.43)} | AttributeA

How to model Class1 in UML class diagram?

Additional info: this Class1 also needs to be used in another class as data type of attributes over there as well - just in case that is relevant to ensure that while using it as data type the class structure and inner dependencies are coming into affect.

I read a bit and got some hints, I just don't understand them fully:
- when (not) to use a "refine"?
- when (not) to use a "derive"?

I understood, that a "refine" is useful in specialization where the subclass attribute has same name and different data type.
I understood, that  a "derive" is useful in case an attribute depends on e.g. values of another like it gets calculated (calc "age" from "birthday" and "today").
I understood that a "readonly" is useful e.g. in a specialization in combination with a default value when this default is the only one possible for this subclass. (despite "query" which just describes that the attribute has no changing effect to this class).

The hints are summarized in this approach:

As you might see,
  • the Class1 became abstract
  • there are three specializations for each EnumType
  • ClassDiction has no "redefines Value" (due to my lack of understanding)
  • DictCollection is shown as separate class as pair of key, counterkey
  • the enums for data types got specializations the way down

I have the feeling that "Value" needs two attributes: one aspect is: it defines the structure, second aspect is: it defines the data type inside the structure.
Or is this stored in "DataType" because this attribute is there to determine the data type of "Value" - and then it needs somehow an information to store this piece for just 'Field' / '[]-Array' or more data types for DictCollection as well?

Thank you very much for clarification, Shegit

Hi there,

while exploring the world of RAS (Reusable Asset Service), I stumbled upon this error while I do the mandatory dependency check before registering an asset:

Microsoft OLE DB Provider for ODBC Drivers [-2147217865]

[MySQL][ODBC 5.3(w) Driver][mysql-5.7.24-0ubuntu0.16.04.1]Table 'EA_RAS_Client.t_taggedValue' doesn't exist

the creation code says:
Code: [Select]
CREATE TABLE `t_taggedvalue`
`PropertyID` VARCHAR(40) NOT NULL,
`BaseClass` VARCHAR(100) NOT NULL,
CONSTRAINT `pk_taggedvalue` PRIMARY KEY (`PropertyID` ASC)
COLLATE utf8_general_ci


This page indicates, that there might be a problem with different OS and their settings - just the EA script uses only lower case.

And the DB also shows me the table, all lower case.

Any idea what I could do about it?
Searching for first error line brings up (mostly) "you are connecting to a mispelled table" - so the mysql statement might be all.
Just ... the table created by Sparx' script is lower case.

I would claim that after the initial setup, there was no such error.
Maybe it was only an error on one of three DB's and while I moved assets from a to b to c and vice versa - this error got "exported"?

Or is it a bug inside RAS feature?

Thanks, Shegit

General Board / How to setup a RAS (Reusable Asset Service)? [solved]
« on: September 12, 2018, 09:26:22 pm »

this RAS feature sounds nice. So my object is to find out - what is possible, which (technical) limits exist etc.
(Have EA Enterprise 13.5 at hand)

I started reading on Sparx' page to get started (setting up)

My problem starts in the second sentence of the first step (identify registry):
- The Registry server holds the Storages of the Reusable Asset Service.
- It will have been previously configured by your system administrator, to be accessed through a Cloud Connection.

Because - I am in that case the system administrator and - I struggle to find any "next" page what I need to do to get a "registry" up and running.

I have a server, where the Sparx EA service is running.
I can create a database (MySQL), initialize it as an EA repository.
Take the connection details, open an local EA on a client machine and connect. And model my way through.

So my first question is:
- Which components must be up and running to create a registry server? (And how do I connect to it?)

I am able to open the RAS view on my local EA, right now it is empty.

Than there is the second part: also notes that I should do it on the Registry Server
- How do I get there?

After anything is up and running, I guess this is more easy:
- Do I create a storage from my local machine? The part of "Create Storages" implies it.

Many thanks,

Hi there,

I have an EA 13.x with MDG to evaluate how to combine an EA model with Eclipse (photon), like the UML models or code stuff.

My aim is to get a vice versa connection between these two "UMLable" platforms. To add stuff here and edit it there and an update has both on same level.

My (main) question is:
  • What did / do you use successfully and which way?
  • What would you recommend to use / have a look at?

The build-in extension from Sparx cannot cope with declarations like "static class Swapper implements Sorter.Swapper" - EA kills "Sorter." which is not nice.  And it shows eclipse warnings as errors, at least it builds the project anyway. And if I change code, the build transfers it - it is just not offered while using "merge with eclipse".,37328.msg234218.html#msg234218 pointed out how to get the feature inside EA running to get a connection itself to eclipse (copy sparx jars into eclipse folders). It just did not appear inside eclipse gui - only under "installed software - plugins" are two mentioned.
The official guide does not tell anything that or how I could use it from eclipse side. And it is from 2008.

Regarding this post,39647.msg244365.html I tried also Luna (=4.4), but behavior was the same with photon. (mentioned above)

openArchitectureWare with EclipseLink like suggested here,28169.msg212539.html is no option any longer since it is discontinued in 2008 with 4.3.1 and no download available - and I don't understand how the "successor" Xtext and Xpand fill the "gap" between EA and eclipse. They seem to focus on DSL building instead.

I tried to get in contact with the guys from modelbus (see,30833.msg223984.html), but they lack time to answer. Just their descriptions sound more than wanted.
The Yakindu EA Bridge I still need to look at. As well as on "export UML to eclipse" suggestion

Thanks for reading and some ideas,
Shegit Brahm

Hi there,

I try to generate a documentation on package_1 by using virtual documents, see project browser structure:
  • Package_1
    • UC diagram
  • (...)
  • Package_5
    • sub package_5.1
      • sub sub package_x.y.z
        • UC1
          • AD (Composite of UseCase)
            • Activity
              • Action1
              • (...)   
              • Final
              • Initial
        • UC2

  • UC diagram - UC: UC imported as “Link” in diagram
  • UC - AD: AD is composite child diagram of UC, stored in same package as UC
  • AD - AD elements: AD elements have the activity as parent and are stored in same package

There's need to get UC diagram, UCs, AD, activity, action, (…), initial and final included in that documentation.

The first approach to get that done was to use template and fragments. The resulting documentation contains UC diagram, UCs, but neither AD, activity nor anything being a child-child of the UseCase.

So I turned to virtual documents. In order to grab the missing AD and its diagram elements and get them reported, I tried to create a model search applied as tagged values of a model document.

But it turned out that my created model search doesn't work. I think, my approach of implementing a model search into a model document isn't correct.
Beside any general solution to my context I think I need to understand first:
How to use model search in model document?
Where do I have to write what? The modal search as a query is a custom sql of a fragment within the template that is chosen for the modal document?

I was unable to use the help in to get a working virtual document that uses a modal search. The semi-automated approach published there by Geert is not “copyable” for me because I need to start on a package, not a diagram.


PS: If you prefer to revitalize the old thread as it seems to be the topic: short notice and I will to so.

General Board / How to create / design completely new elements for EA?
« on: February 09, 2018, 01:12:42 am »

in my understanding there is a vast variety of toolset available for EA.
OMG modeling like UML, SPEM, SoaML, BPMN and others like ICONIX, DatabaseModeling, Win32 User Interface, NIEM.
These come with there own element description the EA can work with.

I already configured UML profiles and created toolboxes, providing them via MDG Technology.

How to create something "new" that is not derived from existing models?

Own elements with there own shape and stuff.

The problem I want to solve?
Well there is an new interface description in research and I'd like to model with it.
Right now I would use an UML Profile which comes up with stereotypes and stuff, but it is not "right" as it is yet not based on the UML.


Hi there,

I'm writing template fragments and need to play around with the SQL queries as I'm not that familiar with it.

Now it happens that I get more or less useful error messages from EA and I wonder: which way could I use to debug a template fragment?

I tried to create a search first and use it. It seems that it's not always possible - should it be?
(like usage both of #PACKAGEID# and #OBJECTID# inside a query)

Even if I don't get an error, the fragment does nothing because my query didn't deliver anything - so I need to evaluate why.


Hi there,

I have following situation:
I'd like to use as much onboard mechanics as possible to create a customized PDF of a package's content.

EA has build in the way: F8 on a package and selecting some templates (front, toc, main) and set some options and ... voila, a PDF is generated.

What I think I don't want: write my own addin. Because the more "wysiwyg" is visible via template and the less code, the better for maintenance by other people (I suppose).

The tricky part already started that the achieved PDF is that individual, that I start with a template, go over to a fragment with TemplateSelector and run specific fragments.

In my attempts I figured out that a TemplateSelector can only decide by element type and a sql query misses something like "if then else". Because I would need for each table a fragment - otherwise the tables got mixed up.

So I'd like to point the template to a JScript-fragment which should point to a fragment again. (JScript instead VBScript by flip of a coin)
Because I want to decide e.g. on element's colour which I cannot so far by using a template selector.

My questions:
- Is that possible, to go from a template to JScript then to a fragment and having everything inside the PDF which is created by the template in the first place?
- Where can I read about it?

I'm able to pass the object id and package id from template to JScript  - main(#OBJECTID#, #PACKAGEID#) - and create a separate document (Class EA.DocumentGenerator).
I just tried to read through EA pages and examples and don't know which keywords I need to look for.

Thanks, Shegit


I was working on a costumers notebook with EA and one day I was told that my EA version / build does not fit the requirements to gain a license.

Support just installed the newest version and everything was fine.

Now I want to know: as for my own company - do "I" as the license server owner configure it that way? Or does it come together with bought (corporate, floating) licenses as a default feature?
I didn't find any answer on sparx or google.

In earlier scenarios a file based keystore allowed EA 7 as well as  and EA 9 and EA 11.

So who decides which version I need to have in a floating license environment? Sparx or the company?


Hi there,

I have a question about documenation generation:

I have a package and there a diagram that contains some requirements. These requirements are linked to several use cases.

I want to generate a document that lists me the package with the diagram and afterwards each requirement with description and a table with use case to which this requirement is linked (source-target relationship is shown in relationships window).

circumstances: the requirements and the use cases are located inside project browser somewhere else, they are not stored inside the package of the diagram.

from section package I chose:
- package
-- package element
--- external requirements
--- tagged value
-- child packages
-- diagram
--- element
--- connector
-- element
--- extension points
--- tagged value
--- connector
---- source
----- element
----- linked feature
--- attribute
--- child elements
-- connector
--- source
---- element
---- linked feature
--- target
---- element
---- linked feature

so the template looks like:
Code: [Select]


package >

package element >
external requirements >
< external requirements
tagged value >
Member Company- department
{ElementTagVal.Value} {ElementTagVal.Notes}

< tagged value

< package element

child packages >
< child packages

diagram >

image {Diagram.Figure}: {Diagram.Name}
element >
state: {Element.Status}    release: {Element.Phase}  version: {Element.Version}  modified: {Element.DateModified}
author: {Element.Author}


Type Name Version Release
{Element.IsSpec} {Element.IsLeaf} {Element.Owner} {Element.Phase}
< element
connector >
< connector
< diagram

element >
extension points >
< extension points
tagged value >

< tagged value
connector >
source >
element >
< element
linked feature >
[Package/Element/Connector/Source/Linked Feature]
Linked Feature
< linked feature
< source
< connector
attribute >
< attribute

child elements >
< child elements
< element

connector >
source >
element >
Connector/Source/Element - Type:

Connector/Source/Element - Name:

Connector/Source/Element - Notes:
< element
linked feature >
Connector/Source/LinkedFeature - Stereotype:
< linked feature
< source

target >
element >
Connector / Target / Element - Type:

Connector / Target / Element - Name (full):

Connector / Target / Element - Notes:
< element
linked feature >
Connector / Target / Linked Feature - Type:

Connector / Target / Linked Feature - Type:
< linked feature
< target
< connector
< package

property setting for this diagram: "add each contained element in documenation"

After prompt for document generation comes up, I choose "include all diagram elements in report" and set all exclude filters to "none".

What do I miss - in explanation here and in generation there?
Bug, feature, wrong concept of documentation?


PS: If the requirement is stored in the same package as the diagram then it works. But that is not useful as I need seperate packages for documents and for the model itself.

Pages: [1] 2