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

Pages: [1] 2 3
1
Automation Interface, Add-Ins and Tools / Re: GUID of a diagram
« on: December 11, 2017, 08:30:51 pm »
Hi Geert,

thanks for your repeat how to get it and I see that my way to get a diagram's guid is broken.

I'm sorry that I made you uncomfortable and I apologize for my tone. Thank you for raising this issue.

(it is based in my personal frustation with wrong usage and "gui bug" - so never ever a reason to get aggressive against you)

Thanks,
Shegit

2
Automation Interface, Add-Ins and Tools / Re: GUID of a diagram
« on: December 11, 2017, 07:42:01 pm »
Well, I'm here to learn: please upload an eap-file with a few diagrams (at least one package with two diagrams) and list the ea-guids.

I use as guid-search this query:
select * from t_object where ea_guid like '*<Search Term>*'

If I understand you right, then I will find none of your guids with this query.

If I find all and they direct me to the package instead (using control + g as shortcut in resultlist)  - what else do I do wrong? I expect to find this guids only querying t_diagram.
Because whenever I switch from an element or package to a diagram and have properties window open all time, the shown guid either disappears or does not change.

Thanks,
Shegit

modified: more detailed description of my pov.

3
Automation Interface, Add-Ins and Tools / Re: GUID of a diagram
« on: December 11, 2017, 06:36:27 pm »
Sorry Viking,

you may expore your eap-file as database and find an ea_guid column inside table t_diagram - but that's only to fool you.

Diagrams don't have their own ea_guid.

If any is shown than the one from the package they are in. Because searching for the ea_guid of t_diagrams always leads me to the packages.

Cheers,
Shegit.

4
I was already ready :)

create a fragment "MyFragment" containing a table with needed values (insert custom field ->{}):
custom >
Call-IDreleasestatusname
{Call_ID}{release}{status}{name}
<custom

click on document options for this fragment and change Custom Query to Custom SQL and insert:
Code: [Select]
select
ob.Alias as Call_ID,
ob.Phase as Release,
ob.Status as Status,
ob.name as Name,

from
t_object ob, t_connector con
where
con.Start_Object_ID = #OBJECTID#
and ob.Object_ID=con.End_Object_ID
and (ob.Object_Type = 'UseCase' or ob.Object_Type = 'Requirement')
order by ob.Alias asc
(for the connection the other way round exchange Start with End in the where-part and if need both: build two fragments, the combination via "or" is extremely slow)

Then create the containing template.  In my case I need this:
diagram >
{Diagram.DiagramImg}
element >
{Template - MyFragment}
< element
< diagram

The tricky part was: I had to Insert Template between "diagram >" and "element >" via rightclick, then cut this part and insert it between "element >" and "< element". Because in EA (12.1) it is impossible to use rightclick for Insert Template.

Thanks for your help,
now I dig deeper into fragments and reading eap by SQL :)

Shegit


5
I'm coming closer to my aim - now I can list element details of elements shown inside a diagram which constraint that the elements are located in a different package than the diagram and document generation is done over diagram package.

Code: [Select]
select
ob.Alias as Call_ID,
ob.Phase as Release,
ob.Status as Status,
ob.name as Name,
ob.Object_Type as Type,
dia.Diagram_ID as diade,
dia.Package_id as diapack,
dia.Diagram_Type as typus,
dia.Name as dianamus,
pac.package_id as pacpac
from
t_diagram dia, t_diagramobjects diaob, t_package pac, t_object ob
where
dia.package_id =  #PACKAGEID#
and pac.package_Id = dia.package_id
and diaob.diagram_id = dia.diagram_id
and ob.object_id = diaob.object_id
order by ob.alias asc
fills the fragment
custom >
Call_ID   Release   Status   Name   Ob-Type   diade   diapack   dia-typus   dianamus   pacpac
{Call_ID}   {Release}   {Status}   {Name}   {Type}   {diade}   {diapack}   {typus}   {dianamus}   {pacpac}
< custom

inside the template at
diagram >
{Template - MyFragment}
< diagram

My next steps will be:
- list the diagram element with its needed description one by one
- list the connections of each element in a table (see fragment querying t_object and q_connections)

Any suggestions appreciated ;-), I will post my solution when I'm done,
Shegit

PS: Having a unused table in the "from" part gives me the rows multiple times. Was quite a relief after getting it back to previous look.

6
Thanks for your suggestions, I will try to figure out how to build "more complex queries" with fragments that work.
At least I can assume that opposite to a programming language where I would get at least the text of a function entered, fragments need to be working fully to return a result.
("Custom SQL-Fragment just plot a lot:" did not appear)

The query that does not do anything inside a fragment worked like a charm as custom search. That's why I was a bit confident :)

I tried to put them everywhere where Sparx states it should work: http://www.sparxsystems.com/enterprise_architect_user_guide/12.1/report_generation/adding_fragments_to_a_template.html

Shegit

7
I tried an approach similiar to EAUser3200's suggestion because I need both ways: from requirement to use case and vice versa.

Using template with fragment and fill the fragment with custom sql queries.

This query as a custom search delivers what I am looking for:
Code: [Select]
select

ob.Alias as Call_ID,
ob.Phase as Release,
ob.Status as Status,
ob.name as Name,
ob.Object_Type as Type,
from
t_object ob, q_connections cons
where
cons.DestID like #OBJECTID#
and
ob.Object_ID=cons.SourceID
order by ob.Alias asc

the call inside the fragment ist more plain:
Code: [Select]
custom >
Custom SQL-Fragment
just plot a lot:
{Call_ID}
{Release}
{Status}
{Name}
{Type}
< custom


I tried a very simple template to focuse on "getting a fragment included that returns something from the fragment":
Code: [Select]
select

ob.Object_ID as Obejct_ID
from
t_object ob
where
ob.Object_ID like #OBJECTID#
order by ob.Object_ID
put into this fragment definition
Code: [Select]
custom >
the object id from database
{Obejct_ID}
< custom

and surrounded by this template:
Code: [Select]
package >
Package {Pkg.Name} begins
1. Option for a fragment:
{Template - IncludeFragment_SQLFragment}

obejct id:
{Template - IncludeFragment_ObjectID}

diagram >
need diagram for sub element from root diagram
diagram {Diagram.Name} begins here
fragment is technically possible: (2nd option)
object id {Template - IncludeFragment_ObjectID}

element >
element {Element.Name} begins here
no fragment in rightclick

< element
diagram {Diagram.Name} ends here
< diagram
element >
new root element {Element.Name} begins
3rd option for fragment
object id: {Template - IncludeFragment_ObjectID}
attribute >
next official fragment option
attribute {Att.Name} begins here
object id: {Template - IncludeFragment_ObjectID}
attribute {Att.Name} ends
< attribute
method >
finally the method {Meth.Name} is reached
object id via fragment: {Template - IncludeFragment_ObjectID}
and method {Meth.Name} ends
< method
child elements >
some childish element {Element.Name}
< child elements
< element
child packages >
< child packages

package {Pkg.Name} ends
< package

just what I get is half the aim:

- the object id is returned every now and then.
- the only once at the beginning referenced fragment  {Template - IncludeFragment_SQLFragment} does not get computed at all.

My question is so far slightly  shifted:
- Are fragments only processed if they could be processed at all? That would explain why even the manual text does not appear
- I start the query building  as a custom search, there I need to write
Code: [Select]
cons.DestID like '#<SearchTerm>#', I cannot use =
- any suggestions, if = would help inside fragment?

Thanks

8
@Geert:
thanks for your help, I just can't force my EA 13.5 to do it:
what I understood you suggested:
from PACKAGE | PACKAGE ELEMENT | EXTERNAL REQUIREMENTS | LINKED DOCUMENT
Code: [Select]
package element >

external requirements >
NAME
{ElemExtRequirement.Name}

NOTES
{ElemExtRequirement.Notes}

TYPE
{ElemExtRequirement.Type}

STEREOTYPE
{ElemExtRequirement.Stereotype}
linked document >

< linked document
< external requirements

but none of these referenced field were generated at all. What am I missing?

This is what I now tried:
PACKAGE | ELEMENT | CONNECTOR | SOURCE | ELEMENT
Code: [Select]
connector >
source >
element >
[from Package/Element/Connector/Source/Element]
Element-Name
{Element.Name}
{Element.Notes}
{Element.Type}
{Element.Version}
< element
linked feature >
[from Package/Element/Connector/Source/Linked Feature]
Linked Feature
{LinkedSourceFeature.Type}
< linked feature
< source
< connector

this brings up linked use case and again only if the requirement is inside the package of the diagram.

@EAUser3200: thanks for your suggestion, I will check it, no experience with these scripts right now.

9
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]
{ReportName}


 

package >

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

< tagged value

< package element

child packages >
< child packages

diagram >
{Diagram.DiagramImg}

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

description:
{Element.Notes}

Type Name Version Release
{Element.IsSpec} {Element.IsLeaf} {Element.Owner} {Element.Phase}
< element
connector >
SourceColumns
{Connector.SourceColumns}
TargetColumns
{Connector.TargetColumns}
Notes
{Connector.Notes}
IsRoot
{Connector.IsRoot}
< connector
< diagram

element >
extension points >
{ElemExtPoints.ExtensionPoint}
< extension points
tagged value >

< tagged value
connector >
source >
element >
[Package/Element/Connector/Source/Element]
Element-Name
{Element.Name}
< element
linked feature >
[Package/Element/Connector/Source/Linked Feature]
Linked Feature
{LinkedSourceFeature.Type}
< linked feature
< source
< connector
attribute >
[right-click-to-insert-Attribute-field(s)]
< attribute


child elements >
< child elements
< element

connector >
[right-click-to-insert-Connector-field(s)]
source >
element >
Connector/Source/Element - Type:
{Element.Type}

Connector/Source/Element - Name:
{Element.Name}

Connector/Source/Element - Notes:
{Element.Notes}
< element
linked feature >
Connector/Source/LinkedFeature - Stereotype:
{LinkedSourceFeature.StereotypeEx}
< linked feature
< source

target >
[right-click-to-insert-Target-field(s)]
element >
Connector / Target / Element - Type:
{Element.Type}

Connector / Target / Element - Name (full):
{Element.FullName}

Connector / Target / Element - Notes:
{Element.Notes}
< element
linked feature >
Connector / Target / Linked Feature - Type:
{LinkedTargetFeature.Name}

Connector / Target / Linked Feature - Type:
{LinkedTargetFeature.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?

Thanks

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.

10
General Board / Re: How to delete file/ usage history? [solved]
« on: July 26, 2017, 11:32:10 pm »
Well: yes, that works  :o

nagivate to HKEY_USERS\S-1-5-21-[...]\Software\Sparx Systems\EA400\EA\MTS Recent File List
... well, search for "MTS Recent File List" because replacing user id is not that obvious.

I just hoped for a ea internal solution.

11
I digged into MDG and created several technology exports.

Now I realize: the dropdown of "open an existing mts file" is filled - and denies any new ones. And the existing ones occur in random order.

My question: how to get rid of these entries?

If I delete one in windows file explorer, EA does (obviuosly) not know and just tells me: oops, this is unknown and has no information stored.
But it persists as dropdown entry.

http://www.sparxsystems.com/enterprise_architect_user_guide/13.0/user_interface/configurelocaloptions.html
is quite quiet about.

Thanks, Shegit

12
using "action" on a stereotype does also what you say / I expect. ActivityIntial not.

If I understand you correct, reporting a bug does never imply reporting it here inside "Bugs and Issues" but using http://sparxsystems.com/registered/reg_bug_report.html ? Well, that would explain something.


13
Using EA 13.0

If I define a stereotype extending metaclass "ActivityInitial" with some attributes,
create myToolbox with it and export all as MDG,
import it to other eap.

In activity diagram I
- have to drag'n'drop from myToolbox to receive my customization (see http://sparxsystems.com/forums/smf/index.php/topic,38479.0.html for my observation)
- if I whyever delete any tagged value (originally attributes) from this node, I'm unable to restore them.
- neither sync nor "apply" again works.

Looking for a workaround I tried to define Tagged Values in UML1-style: using "UML Types"

But "AppliesTo" is fully ignored on ActivityInitial:

- e.g. for Decision works fine:
Type=RefGUID;
Metatype=Decision;
AppliesTo=Decision;

- for ActivitiyInitial doesn't show up:
Type=RefGUID;
Metatype=Decision;
AppliesTo=ActivityInitial;

"AppliesTo=Action" works as well, but not these nodes.

Any ideas how I can workaround this bug set a "model" Tagged Value that only applies to ActivityInitial?

14
General Board / Re: Figure numbers in captions in generate documents?
« on: July 20, 2017, 06:25:52 pm »
Sorry, I have no idea how they do it - it just works. My company uses a third party plugin that generates our documents of EA and it puts these informations on correct place.

15
Could solve CallBehavior that it "does something useful".

Extend metaclass "action" and set the generated attribute "kind" to the initial value "CallBehavior".
Define in myToolbox this stereotype in short form (myProfileTB::myCallbehavior) - that results in an action.
see

If I drag'n'drop now from myToolbox into an activity diagram, I will get an action of kind CallBehavior.

Only disadvantage: If I create an clean UML action and add in properties page the stereotype "myCallBehavior" - the kind on subpage "Advanced" will stay unchanged, but anything else looks like it should.

Works too with ExpansionRegion to set mode on iterative, e.g..
Stays only the annoying Initial and Final that resist any setting of stereotype, they still need creation from myToolbox.

Pages: [1] 2 3