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 - Paolo F Cantoni

Pages: [1] 2 3 ... 420
Bugs and Issues / Insert related elements- NOT!
« on: November 16, 2018, 12:46:15 pm »
The "Insert Related Elements" functionality needs to be renamed to "Insert Connected Elements" since it does not include some pretty fundamental relationships which are not implemented as connectors, to wit: Nesting and Classification.  The functionality only references elements related to the root element by an entry in t_connector.


Bugs and Issues / Re: FK association not created at import from ODBC
« on: November 16, 2018, 12:14:49 pm »
Hi Geert,

When I try this on MS SQL Server, I get:
Code: [Select]
Msg 1776, Level 16, State 0, Line 63
There are no primary or candidate keys in the referenced table 'dbo.MESSAGE_IN' that match the referencing column list in the foreign key 'FK_MESSAGE_OUT_MESSAGE_IN'.
Msg 1750, Level 16, State 0, Line 63
Could not create constraint. See previous errors.
Msg 4917, Level 16, State 0, Line 66
Constraint 'FK_MESSAGE_OUT_MESSAGE_IN' does not exist.
Msg 4916, Level 16, State 0, Line 66
Could not enable or disable the constraint. See previous errors.

Could these be related to the issue?


Bugs and Issues / Re: Unsafe form when searching Help
« on: November 16, 2018, 12:06:42 pm »
When I type text in the magnifying glass field (e.g. here) and press enter my browser (Safari under OS X as well as Chrome under Windoze) tells me that I'm using a non-safe form and whether I want to proceed. This can't be intended behaviour, can it?

YMMVWFM  - also which magnifying glass, there are two.


Automation Interface, Add-Ins and Tools / Re: ApplyUserLockRecursive
« on: November 16, 2018, 12:03:39 pm »
Hi Markus,

here's a couple of the queries we use.  They are ANSI-92 MS Access, but you should be able to convert (if necessary).

Code: [Select]
UPDATE t_seclocks AS PL INNER JOIN ((t_seclocks AS OL INNER JOIN t_object AS O ON OL.EntityID = O.ea_guid) INNER JOIN t_package AS P ON O.Package_ID = P.Package_ID) ON PL.EntityID = P.ea_guid SET OL.GroupID = [PL].[GroupID], OL.UserID = [PL].[UserID]
WHERE (((OL.GroupID)<>[PL].[GroupID]));

Code: [Select]
UPDATE (t_secgroup AS OG INNER JOIN t_seclocks AS OL ON OG.GroupID = OL.GroupID) INNER JOIN (((t_secgroup AS PG INNER JOIN t_seclocks AS PL ON PG.GroupID = PL.GroupID) INNER JOIN t_package AS P ON PL.EntityID = P.ea_guid) INNER JOIN t_diagram AS D ON P.Package_ID = D.Package_ID) ON OL.EntityID = D.ea_guid SET OL.GroupID = [PL].[GroupID], OL.UserID = [PL].[UserID]
WHERE (((OL.GroupID)<>[PL].[GroupID]));

They are part of a larger MS Access macro that also reports on locking errors etc.


Automation Interface, Add-Ins and Tools / Re: Insert Related Elements - Q
« on: November 16, 2018, 11:49:12 am »
2. Paolo has implemented that and he calls it context diagram (I did something similar but not to the extend Paolo did).

Hi kewldee,

We have built a C# add-in that creates what we call a "Neighborhood diagram".
For any element, we "hi-jack" the composite diagram and create our own.  The element (we call it the Root Vertex) is presented "in all its glory" (in rectangular mode) with all aspects visible.

We then use the API to locate the elements related to the root vertex.  These related elements are added/removed from the diagram (if the relationships have changed) but in simplified icon form.  If there are any relationships between the non-Root vertices, they are suppressed.  Finally, we use the API to determine which other diagrams (other than Neighborhood diagrams) the root vertex appears in and these are listed as diagram hyperlinks down the left-hand side.

Using this technology, which we run as required, or during our overnight processing; our users are never more than two double-clicks away from anywhere in the repository the root vertex appears in.

This functionality has been under development for nearly a decade and has evolved as we tackle new versions and issues (diagramming embedded elements, handling ProxyConnectors etc. etc.)

While it isn't "rocket science" it IS non-trivial.


Automation Interface, Add-Ins and Tools / Re: ApplyUserLockRecursive
« on: November 14, 2018, 10:37:55 am »
Hi Markus,

We gave up on API based locking.  Instead, as part of our overnight processing, we run queries to reset the security on all necessary objects to the correct value.  Since then we've only had security and locking problems extremely rarely (and typically caused by people leaving a livelock on an element by not exiting the product overnight).

If you need help with the queries, let me know.  They're pretty straightforward.



We reverse engineered an XSD containing the following:
Code: [Select]
<xs:simpleType name="ISO_3166-1_Alpha-2-Code">
<xs:documentation xml:lang="en">AF AFG Afghanistan</xs:documentation>
<xs:documentation xml:lang="en">AX ALA Aland Islands</xs:documentation>
<xs:documentation xml:lang="en">AL ALB Albania</xs:documentation>
<xs:documentation xml:lang="en">DZ DZA Algeria</xs:documentation>
<xs:documentation xml:lang="en">AS ASM American Samoa</xs:documentation>
<xs:documentation xml:lang="en">AD AND Andorra</xs:documentation>
<xs:documentation xml:lang="en">AO AGO Angola</xs:documentation>
<xs:documentation xml:lang="en">AI AIA Anguilla</xs:documentation>
<xs:documentation xml:lang="en">AQ ATA Antarctica</xs:documentation>
We found only the first <xs:documentation> entry was imported (into the Notes field).  I'm not an XSD guru. Should the other entries have been imported (as additional lines in the field)?


[Edit:  I checked locally and I've been informed that the notation is invalid.  However, I'd like some corroboration that this is indeed invalid.]

General Board / Re: Shape script control by external switch
« on: November 12, 2018, 10:28:00 am »
Hi Sunshine & Paolo,
good idea. That sounds like it could do the trick if I create several diagram stereotypes and switch between them. Will give it a try. Thanks.
Hi Dirk,
If I understand what you're suggesting, I would caution against changing stereotypes "on the fly".  That's not what they're there for.

If you need to change the rendering on the fly, then you should use the user-defined properties - that's what they're there for.


General Board / Re: Shape script control by external switch
« on: November 09, 2018, 10:54:51 am »
You could use diagram stereotype. In the shape script you can check if the diagram stereotype is set to certain value and show the bubble otherwise if not don't. Eazy peazy aye?
Best practice (It's Friday, so I'll stick my neck out  ;))  Is to use user-selectable properties (Search Help for "user-selectable").

They allow you to vary the rendering of the item via the shape script on a diagram by diagram basis.

We intend to use them to select the "level of richness" of the item rendering.  We've done some experiments and it will work, but the current implementation of the properties and their selection makes it a bit cumbersome.

If there are rules relating the diagram type to the richness of the rendering, then, as Sunshine says, you should use the diagram stereotype.


General Board / Re: Customer Journeys in EA
« on: November 09, 2018, 10:41:11 am »
I use ArchiMate value chains, business processes and collaborations etc.
Can use timeline graphs to show the mood of customer - happy, sad etc
There are examples of similar approaches using ArchiMate for customer journeys
Hi Sunshine,  for Value Chain, do you merely mean "chains of business function/processes"?  There is no occurrence of the term "Value Chain" in the ArchiMate 3.0 spec.  We're looking at implementing Porter-style Value Chains in out MDG, so I'm interested in others' experiences.

The existing EA "Value Chain" mechanism, is a starting point but needs some conceptual "jiggering" to make it work correctly with other elements.


Suggestions and Requests / Re: Copy and Link
« on: November 08, 2018, 10:35:56 am »
A variation on the copy/paste full-structure-for-duplication would be useful in that it would create a dependency between each original and copied element. If the dependency type could be user-specified that would great but I'd be happy with <<copy>> or <<trace>> as a default.

Regards, Mark
Hi Mark,
Have a look at Time Aware Modelling.  That's, effectively, what it does.

It's a bit tricky, but it works for some use-cases.


Automation Interface, Add-Ins and Tools / Re: SQL Query question
« on: November 02, 2018, 04:47:58 pm »
Also use #WC# for wildcard (will be replaces by * or % depending on the database you run it on)

Out of curiosity (cos we're about to try moving from .eap to SQL Server)
- Is this a Sparx feature (substituting the #WC# for the right wildcard character) or is it done by the database driver?
- Does anyone know if Sparx .eap files can be configured to use the ANSI-92 syntax (matches SQL Server, incl. the right wildcards) rather than ANSI-89 syntax (the non-standard Access syntax)
(my emphasis)
We have our .eap files set for ANSI-92 syntax and it is extremely rare that our queries don't work in both (Access and MS SQL Server).  In over a decade, and developing literally thousands of queries, I could count on one hand those that didn't work in both.
Where there IS a discrepancy, the query can usually be recast to work in both.
We use an MS Access DB with linked tables to our repositories.


PCS General Board / Re: I can post here!
« on: November 02, 2018, 10:34:28 am »
So can I?


[Edit:  Yes we can!  With apologies to B. Obama.  Happy Friday!]

Automation Interface, Add-Ins and Tools / Re: Problem building Add-In
« on: November 01, 2018, 04:00:25 pm »
So, I've been "around the houses" on this.

I found some of the .csproj file reference entries were slightly different (for the dependent subprojects).  They are NOW identical, and all use a direct (as opposed to relative) reference to the Interop.EA.dll.  But again, no difference in behaviour.  The 1308 file works, the 1427 file doesn't.

As an interesting sideline, I found an old v10 Interop.EA.dll.  If I use that instead, I get errors due to the fact that I'm referencing non-existent API calls, but NOT that the entire namespace is missing!

I've spent enough on this, for the present.


Automation Interface, Add-Ins and Tools / Re: Problem building Add-In
« on: November 01, 2018, 12:31:18 pm »
That's what Sparx have suggested.  However, the registration occurs during installation and (presumably) points to the dll in the EA folder.  So why does one file work and the other not?  (<caveat>By NO means a dll expert</caveat>)

I'm not sure why you'd do a full reinstall then.  The logical thing to do is to re-register that one dll ( and see if anything changes.
The regsvr32 requires the /i:<sdomething> option since DLLRegisterServer entry point is not found.  Whatever EA does on install to register the server, I'm not privy to.  So I'm going to uninstall EA and re-install and see what happens.

Also, for the record, it happens on multiple machines both under VS2017 and VS2010!


Pages: [1] 2 3 ... 420