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 - Geert Bellekens

Pages: 1 [2] 3 4 ... 22
16
Details:
The Use Case relation between Actors and Use cases is not accessible from the quicklink or from the relationship matrix view on a diagram.
The relation is still available from the toolbox, and EA doesn't complain about it, even with the option "strict connector syntax" enabled.
If the connection is indeed valid, it should be accessible from the quicklink and relationship matrix. If it's invalid, EA should not allow it with strict connector syntax.

Steps to Reproduce:
- Create a use case diagram
- Add an actor an a use case
- Use the quicklink from the actor to the use case.
- Notice that the use case (Use) relation is not available
- Switch to the relationship view
- right click on the cell between actor and use case and click Create New Relationship
- notice that UseCase relation is not amongst the options.

Reported

Geert

17
Details:
When selecting an attribute in the project browser, the tagged values defined on the stereotype don't show in the docked properties window.
Only if the owner of the attribute is on the current diagram, the tagged values are shown.

In the properties dialog the tagged values are always visible.

Steps to Reproduce:
- create an attribute stereotype with some tagged values
- create a class with a stereotyped attribute and put them on the current diagram
- select the attribute in the project browser
- Notice that in the docked properties window the tagged values are visible
- Close the diagram
- select something else, and then the same attribute again in the project browser
- notice that the docked properties window doesn't show the tagged values. It looks like it's simply collapsed, but it is not possible to expand that section.

Reported

Geert

18
Automation Interface, Add-Ins and Tools / Scripting version control
« on: January 04, 2021, 06:56:14 pm »
For those who are more serious about script development in EA, I have added some tools to the EA-Matic add-in that make my life as a script developer a bit easier.

- It now automatically saves all of my scripts to a designated folder, where I can version control them
- It now integrates EARefdata splitter and TextHelper, two tool I use very often when developing script.

Here's more info: https://bellekens.com/2021/01/03/ea-matic-v2-3-introduces-developer-mode/

Geert

19
Bugs and Issues / Package.Alias not updated before Package.Update
« on: December 24, 2020, 08:07:41 pm »
If you set the Package.Alias before the package has been saved using Update(), the alias doesn't stick.
You have to first Update() the package and only after that setting the Alias has any effect.

Steps to Reproduce:
- Execute the script below
- Notice that the first line of the output reads "Alias before update: ''" where it should read Alias before update: 'Alias before update'

Code: [Select]
sub main
    dim package as EA.Package
    set package = Repository.GetTreeSelectedPackage
    dim newPackage as EA.Package
    set newPackage = package.Packages.AddNew("NewPackage","")
    newPackage.Alias = "Set Before update"
    Session.Output "Alias before update: '" & newPackage.Alias & "'"
    newPackage.Update
    newPackage.Alias = "Set after update"
    Session.Output "Alias after first update: '" & newPackage.Alias & "'"
    newPackage.Update
    Session.Output "Alias after second update: '" & newPackage.Alias & "'"
end sub

main

Reported

Geert

20
Bugs and Issues / User created multiple times
« on: December 16, 2020, 10:54:23 pm »
Today one of our users noticed something strange.
After re-opening the model he was working on, he noticed that the diagram he was working on was locked by another user. After trying to lock to apply a user lock he got the message that the diagram was locked by himself.

Trying to diagnose the issue I found that the user was created multiple times, but this time with his email address instead of the Domain\User like the other users.
We use the link between the EA user group and an AD group, so the users are created automatically by EA.

We recently upgraded to version 15.2.1555, so I guess it's a pretty recent change.

Reported

Geert

21
Details:
The description on the relation in the traceabiltiy view for the ArchiMate3::Specialization relation is inversed.
It reads "specialized by" when it should be "specializes" and vice versa

Steps to Reproduce:
- Create an ArchiMate Service called Parent
- Create an ArchiMate Service called Child
- Create a ArchiMate Specialization relation from Child to Parent
- Open the traceability view
- Select the child element in the diagram
- Notice that the relation to Parent is named "Specialized by"

Reported

Geert

22
Hi,

I've been asked to create a shapescript similar to that of the process in EA's analysis toolbox.
I first did with a simple single shape approach, but the problem is that the start and end angles change when resizing the element (because they are defined in relative rather then absolute size)
The solution would then be to use the border layout with preferred width for bot sections, so only the middle section would elongate when changing the size.

This works just fine, with one problem: each subshape keeps it's own color gradient, making it look like three shapes stitches together.
Does anyone know if it's possible to either get

- a gradient over the complete shape
- no gradient at all

Here's wat the result looks like now


https://imgur.com/03s6S9p

And here's the shapescript

Code: [Select]
shape main

{

layouttype="border";
noshadow=true;
//set the fill color based on tagged value "heat map"
if(hastag("heat map","good"))
{
//light green
SetFillColor(112,255,145);
}
else if(hastag("heat map","problematic"))
{
//light yellow
SetFillColor(255,253,170);
}
else if(hastag("heat map","poor"))
{
//light red
SetFillColor(255,142,142);
}
else if(hastag("heat map","not evaluated"))
{
//white
SetFillColor(255,255,255);
}
else if(hastag("heat map","missing"))
{
//light purple
SetFillColor(227,168,255);
}
else
{
//default white
setfillcolor(255,255,255);
}

//main shape
setFontColor(0,0,0);


//fillandstrokepath();     
//subshapes
StartPath();
addsubshape("left","W");
addsubshape("center","center");
addsubshape("right","E");
Endpath();
FillAndStrokePath();


shape left
{
noshadow=true;
preferredWidth=20;
StartPath();
moveto(100,0);
lineto(0,0);
lineto(100,50);
lineto(0,100);
lineto(100,100);
endpath();
FillPath();
//draw outline
moveto(100,0);
lineto(0,0);
lineto(100,50);
lineto(0,100);
lineto(100,100);
}

shape right
{
preferredWidth=20;
StartPath();
MoveTo(0,0);
lineto(100,50);
lineto(0,100);
endpath();
FillPath();
//draw outline
MoveTo(0,0);
lineto(100,50);
lineto(0,100);
}

shape right
{
preferredWidth=30;
}
shape padding
{
preferredheight=10;
}

shape center
{
layouttype="border";

startPath();
rectangle(0,0,100,100);
// moveto(0,0);
// lineto(100,0);
// moveto(0,100);
// lineto(100,100);
endPath();
fillPath();
moveto(0,0);
lineto(100,0);
moveto(0,100);
lineto(100,100);

addsubshape("padding","n");
addsubshape("name","center");
shape name
{
v_align="top";
h_align="center";
printwrapped("#name#");
}
shape padding
{
preferredheight=10;
}
}
}

decoration composite
{
orientation="SW";
if(hasproperty("iscomposite","true"))
{
ellipse(0,40,40,60);
ellipse(60,40,100,60);
moveto(30,50);
lineto(70,50);
}
}

Thanks

Geert

23
We are experimenting with the new Azure icons.

We would like to use them on our ArchiMate elements.
The idea is to have a set of elements in our library that represent the azure services and components we use.

On a diagram I can use Appearance | Select an Image Asset to and then select the «Image» element from the standard Azure icons library.

The problem with this approach is that this image is local to the diagram.
When I use the element on other diagrams, the element diagram isn't shown.

This works with Appearance | Select a Default Image but that only lets met select an image from the image manager.

And I see no easy way to get the images from the Azure library into the image manager. The only way I see is save each image to a file, and then import that into the image manager.

Does anyone see an easy way to solve that problem?
I'm willing to write a script to automate it, but I was hoping that either wouldn't be necessary, or that it wouldn't take days to write.

Geert

24
Bugs and Issues / ArchiMate 2 toolbox and diagrams missing
« on: December 09, 2020, 12:14:45 am »
For some reason I can't create new ArchiMate 2 diagram anymore.
This happens in versions 15.1 and 15.2 on both SQL Server as local (empty) .eap files.

Regardless of which perspective I choose (including all) I don't see any options for adding ArchiMate 2 diagrams, or selecting ArchiMate 2 toolboxes.
Archimate 3.1 works correctly.

Reported

I've noticed this problem on my own computer and at two different clients (one on 15.2, another on 15.1)
Tested on an empty .eap model and that doesn't make a difference either.

Anyone else having this problem?

Geert

25
Creating a trace relation between an association and a class seems to be working fine, but after reloading the diagram the relation is not found.
This seems to happen only on my existing SQL Server repositories, not on a new .eapx repository.
On the same repository, with version 15.1 this is not a problem.

This is after running a project integrity check, and disabling all add-ins.

Steps to Reproduce:
- Create a diagram with three classes A, B, C and an association between A and B
- Select Trace from the toolbox and create a relation between the association and class C
- Save the diagram
- Close the diagram and reopen it
- Notice that the trace relation is gone.

Reported like this.

In the meantime I did some more experiments, and apparently is not really linked to version 15.2. I've been able to reproduce this issue in 15.1 as well.
And sometimes it also seems to work in 15.2.
If I create both the association as the trace in one go and then save diagram is seems to be saved.

If I create the association first, then save the diagram, and then create the trace, the trace is lost after reloading the diagram.

Geert

26
Bugs and Issues / «codeEntry» tagged values are not shown
« on: November 12, 2020, 06:39:10 pm »
When using the UPCC3 Enum library, the tagged values for «codeEntry» values are not shown in the properties window (and also not in the tags tab)
The only way to show the tagged values is to open up the attribute details dialog and select the Tagged Values section.

Steps to reproduce
- Create a diagram of type UPCC3 - EnumLibrary
- Add a «ENUM» element from the toolbox
- Add a «codelistEntry» attribute from the toolbox
- Select the new codelistentry
- Check the properties window and notice that the tagged values "status" and "codename" are nowhere to be found. Not in the properties section (where they should be) but also not in the Tags tab.

Current workaround:
- Press F9 to open the attribute details dialog and select Tagged Values
- Notice that the tagged values are visible here.

Reported

Geert

27
I have this stereotype on a connector that has 5 boolean tagged values
Create, Update, Delete, Load, and Determine.

Now I want to show the ones that are true on the diagram as a sort of constraint.
So if Update = True, and Determine = True, I want to show {Update, Determine}

But I'm struggling a bit on how to implement such a thing in shapescript.
Below is the best I could come up with. It works, but if feels like it's written by an 8 year old who just learned about IF/THEN/ELSE (plus I'm and I'm very happy there aren't 8 or 10 tags)

Does anyone know a more intelligent way to get the same result (or can assure my that I'm not THAT thick :-[)

Code: [Select]
shape middleBottomLabel
{
if (HasTag("Create", "True"))
{
if (HasTag("Update", "True"))
{
if (HasTag("Delete", "True"))
{
if (HasTag("Load", "True"))
{
if (HasTag("Determine", "True"))
print("{Create, Update, Delete, Load, Determine}");
else
print("{Create, Update, Delete, Load}");
}
else if (HasTag("Determine", "True"))
print("{Create, Update, Delete,  Determine}");
else
print("{Create, Update, Delete}");
}
}
else if (HasTag("Delete", "True"))
{
if (HasTag("Load", "True"))
{
if (HasTag("Determine", "True"))
print("{Create, Delete, Load, Determine}");
else
print("{Create, Delete, Load}");
}
else if (HasTag("Determine", "True"))
print("{Create, Delete, Determine}");
else
print("{Create, Delete}");
}
else if (HasTag("Load", "True"))
{
if (HasTag("Determine", "True"))
print("{Create, Load, Determine}");
else
print("{Create, Load}");
}
else if (HasTag("Determine", "True"))
print("{Create, Determine}");
else
print("{Create}");
}
else if (HasTag("Update", "True"))
{
if (HasTag("Delete", "True"))
{
if (HasTag("Load", "True"))
{
if (HasTag("Determine", "True"))
print("{Update, Delete, Load, Determine}");
else
print("{Update, Delete, Load}");
}
else if (HasTag("Determine", "True"))
print("{Update, Delete , Determine}");
else
print("{Update,  Delete}");
}
else if(HasTag("Load", "True"))
{
if (HasTag("Determine", "True"))
print("{Update, Load, Determine}");
else
print("{Update, Load}");
}
else if (HasTag("Determine", "True"))
print("{Update, Determine}");
else
print("{Update}");
}
else if (HasTag("Delete", "True"))
{
if (HasTag("Load", "True"))
{
if (HasTag("Determine", "True"))
print("{ Delete, Load, Determine}");
else
print("{ Delete, Load}");
}
else if (HasTag("Determine", "True"))
print("{Delete, Determine}");
else
print("{Delete}");
}
else if (HasTag("Load", "True"))
{
if (HasTag("Determine", "True"))
print("{Load, Determine}");
else
print("{ Load}");
}
else if (HasTag("Determine", "True"))
print("{Determine}");
else
print("");
}

Geert

28
I was looking at the new "Allow non domain users" to try and figure out what it means, and if I can use it.

But unfortunately the manual does not include a description of that option.
https://sparxsystems.com/enterprise_architect_user_guide/15.2/team_support/managingusers.html

Updating the manual should really be included in the Definition of Done.

Geert

29
If you set the option Image Type to bitmap, and the (new) option Image Quality to "Very High Resolution" then EA crashes when generating a document of the selected package containing a large diagram.
The happens with any template containing diagrams I tested with, including the standard model report or diagram report.

Reported

Geert

30
When I write script I tend to format the SQL Queries I use a certain way.

I go from

Code: [Select]
select o.Object_ID from t_object o
where o.Stereotype = 'Pool'
and o.Name <> 'Aquafin'
and not exists
(select s.Object_ID from t_object s where s.ParentID = o.Object_ID)
and o.Package_ID in (123)

to

Code: [Select]
"select o.Object_ID from t_object o                                     " & vbNewLine & _
" where o.Stereotype = 'Pool'                                           " & vbNewLine & _
" and o.Name <> 'Aquafin'                                               " & vbNewLine & _
" and not exists                                                        " & vbNewLine & _
" (select s.Object_ID from t_object s where s.ParentID = o.Object_ID)   " & vbNewLine & _
" and o.Package_ID in (123)                                             "

I got bored of having to do that manually in Notepad++ each time, so I wrote a little tool that does this formatting for me:

https://github.com/GeertBellekens/TextHelper/releases/tag/v1.0

I guess it's a pretty niche type of thing, but if you happen to have the same itch, enjoy ;D

Geert

Pages: 1 [2] 3 4 ... 22