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

Pages: 1 ... 8 9 [10] 11
Off the top of my head I think you will need to do a sync of the relevant MDG type aft the import.  The import alone will not understand that the element type / stereotype is BPMN - it just creates elements.

I'm not in my office today so don't have a machine with EA on so can't test.  But if you look for "synchronize tagged values" - it could solve your problem.

This is from help file:

"You can apply the updated or missing Tagged Values and constraints using the Synchronize Stereotype function. This operates on any profiled element in your model, from any technology that is integrated with or imported into Enterprise Architect."

Must add that Sparx  (Dermot!) were really great in providing me some useful information that help me better understand their implementation of workflow and I'll  be writing up in due course.  Look out for their paper / model.

Hi Dermot,

Thanks - clearly what was missing for me was a description of the approach and the context in which workflow operates.  I suppose my assumption was that so much of EA is visually orientated that workflow would be as well, not least as the description in the help talks about policies and procedures; the later implying processes for me.

I'll ping you and email - as an example will be really useful.


Hi Guys

I've been playing with EA today rather than working (!) - trying to discover how some of the stuff I haven't used in EA works and in relation to Workflow have come up against a brick wall.

I get the scripts / event / functions etc - I looked back in the forums and can see that Phil and Geert had some function issues a long time ago, I assume that has all been resolved, but I didn't even get to the point that my functions were being called!

I think I have completely misunderstood what EA workflow is and how it could work.

I started with the assumption that I could define a process (in a diagram?) and provides some rules (e.g. in a script) stuff would move through the flow between users and subject to the rules?
Yes / No?

If yes is there an example / tutorial - couldn't find anything on Sparx site nor Google. Doesn't seem a lot written on this (same as many EA subjects).

So I assume NO - as none of the EA documentation (what little there is ! >:() provides definition of the process and clarity on terms.

So a few questions to help me, please:

1. What is meant by workflow - is it just that I can write code to intercept events that relate to creating/editing items and allow or otherwise?  Or can I define and execute the process I imagine?
2. Follow on from this is the workflow window under personal tasks - is this related and if so how.
3. What kicks off the calls to my workflow scripts?  I have a script and saw no calls - so assume I must do something. So what do I need to do to effect the call - are there settings (none found so far) that enable workflow for users / projects?
4.  Does EA call each script which has workflow functions? i.e. is it working on a broadcast as with the AddIn model.

BTW: I have security enabled and groups etc set up

Really interested in the answers, and of course examples.  

Workflow seems so promising ...


A little update:

I've observed that at times the calls to the events are called -  but behaviour seems to be odd, in that after making a change to a script you have to save it, refresh and then use.

If you only save then the event wasn't handled at all - i.e. appears that the script has been disabled.  Also appeared that it could take a few times and then I remembered that there was a potential issue with caching so assume that this is the same problem.  Not very friendly - so with lazy load off looks like it is working - however still interested in responses to questions above as this helps with the broader picture. Tnx

Hi André,

I think Geert was using Wix, in which case here are the code fragments I included in my WXS file.

Start by adding a new Directory group for your MDG, noting the following:

1. 3 Unique GUIDs used
2. The key (Key="Software\COMPANY\PRODUCT") used in the registry is up to you but ensure it is consist
3. Ensure that the source line (Source="$(var.myproduct.ProjectDir)\MDG\MDGXMLFILE.xml")  reflects your project.

Code: [Select]

<!-- feature to store the MDG technology into the PerUser %AppData%\Roaming\Sparx Systems\EA\MDGTechnologies directory -->
      <Directory Id="AppDataFolder" Name="AppDataFolder">
        <Directory Id="MYMDG" Name="Sparx Systems">
            <Component Id="MYMDG" Guid="A UNIQUE GUID" >
              <RemoveFolder Id="MYMDG" On="uninstall" />
              <RegistryKey Root="HKCU" Key="Software\COMPANY\PRODUCT">
                <RegistryValue Name="installed" Type="integer" Value="1" KeyPath="yes"/>
              <Directory Id="EA" Name ="EA">
                <Component Id="EA" Guid="ANOTHER UNIQUE GUID" >
                  <RemoveFolder Id="EA"  On="uninstall" />
                  <RegistryKey Root="HKCU" Key="Software\COMPANY\PRODUCT" >
                    <RegistryValue Name="installed" Type="integer" Value="2" KeyPath="yes"/>

              <Directory Id="MDGTechnologies" Name="MDGTechnologies">
              <Component Id ="MDGTechnologies" Guid="YET ANOTHER UNIQUE GUID" >
                <File Id="MDGFile" Source="$(var.ProjectDir)\MDG\MDGXMLFILE.xml"  Vital="yes" />
                <RemoveFolder Id="MDGTechnologies"  On="uninstall" />
                <RegistryKey Root="HKCU" Key="Software\COMPANY\PRODUCT">
                  <RegistryValue  Name="installed" Type="integer" Value="3" KeyPath="yes" />              

Then in the features section add this MDG group

Code: [Select]
<ComponentRef Id="MYMDG"/>  

On  install the MDG file will be placed in the Sparx Application data folder "C:\Users\NAME\AppData\Roaming\Sparx Systems\EA\MDGTechnologies" from which EA reads MDG files on startup.

I hope that helps - it took me ages to sort out all the Wix stuff - its really powerful but so complicated 1st time around - even looking back now I wonder.



I tend to always do the refresh (well nearly always) following updates as more often than not I will access the element collections again, and think its quicker, and safer, to refresh at point of update rather than have to do a refresh before accessing.  Good/bad habit - with EA I tend to over do!


Not exactly sure I fully understand issue, however what I do after having added the taggedvalue after:


is to update the owner of the TV collection and refresh


As I understand it this will ensure stuff gets stored in the database rather than just sitting around in memory and never getting store.

Should probably check the return status of the mt.Update and op.Update and act as appropriate.


You are correct about the issue of inheriting and that was solve for me in the single case by setting the ElementID doing the update and then setting the Sequence.

But your case is more complicated than mine and clearly highlights the crosstalk issue.  There is clearly something that they are doing such as setting the sequence when they establish the link to the ElementID which overwrites any values set. I wonder if you reversed the order of creating you objects (i.e. going from the leaf upwards) whether the behaviour changed.  Or possibly create the objects with ElementID's and then set the sequencing after diagram objects / elements all established.  A bit of a mess and clearly not ideal, however if its a bug and you need a solution may be worth a quick test.  

Be interested to know - sorry I've not got the time to try myself ... one of those days ahead!

Hi André

I had problems with the same thing and not even sure I fully understood, however what appears to work for me is having created the diagram object dobj, set the ElementID and perform an update on the diagram object before doing other stuff as below:

 dobj.ElementID = myElement.ElementID
 dobj.Update() = top
 dobj.bottom = bottom
 dobj.left = left
 dobj.right = right
 dobj.Sequence = order

Not really happy and the fact that there appears to be crosstalk that affects the setting of properties is a little alarming, in particular as there is no documentation to highlight any dependencies; it does make one feel like building on sand at times!


Automation Interface, Add-Ins and Tools / Re: Reload project event
« on: October 28, 2013, 08:09:50 pm »

Agree separate event is exactly what is needed for all key events

Automation Interface, Add-Ins and Tools / Re: Reload project event
« on: October 28, 2013, 08:28:06 am »
That's what I thought but clearly isn't as the FileOpen event isn't being called.

I know the event is caught as I already use it for other stuff.

I guess they are not reopening the file just re-reading and their event is raised in the File open code. :(

Automation Interface, Add-Ins and Tools / Reload project event
« on: October 28, 2013, 01:57:57 am »
I've been looking through the events and can't find anything that is raised when a user performs a "Reload Project".

Checked potential candidates e.g. obvious File Open, context change etc
but nothing fired and can't see anything in readme file, so guess that it's purely internal - anyone aware of anything?


You could also check out which integrates with EA - there is a trial version you can download to check if it does what you need.

Automation Interface, Add-Ins and Tools / Re: How to close a tab?
« on: September 19, 2013, 02:10:17 am »
I agree - especially as the focus for "documenting" our systems is to use EA in which we have all the knowledge rather than in snapshot word documents.

I find having the Object Model (derived from the InterOp DLL) and AddIn model (hand coded :-?) in EA to be really useful.

When developing a new AddIn I clone a copy of AddIn interface, edit as needed and do my initial code generation - it forces me to do the "right thing" and document what I'm expecting at this interface :)

Automation Interface, Add-Ins and Tools / Re: How to close a tab?
« on: September 18, 2013, 10:25:11 am »
Hi Ian

There is a Repository.RemoveTab(tabname) method - just not listed in the help file.

I've found it useful to do a code import of the EA Object model DLL (as suggested by Sparx tech support some time ago) to get a complete picture of the available operations.  Useful for keeping notes on usage and you can then use eaDocX to get produce the additional documentation you may need :)

Pages: 1 ... 8 9 [10] 11