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
Hi you three,

thank you very much for your suggestions and links.

I will take a look at it and if I have specific questions, I will post them in new topics :-)

@Nizam: I read that page from Sparx, I just didn't manage to have the script-called fragment to insert anything inside PDF

@Geert: I avoided RTF until now, so I will try to forget RTF experiences from outside EA and start over again.

@Nabil: thanks for providing a full eap, will take a look.

Shegit

2
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

3
@Simon M:

Thanks for your answer, that fits to my intention of my question.
So the license management of a company decides to have everywhere e.g. the same minimum off functionality over all users (or whatever the reason finally was).

In mentioned situation it was already a service based keystore as I had to enter a server address the very first time and never again.
So support fixing the problem also did nothing else than installing new on top.

Thank you!

4
Hi,

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?

Thanks,
Shegit

5
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

6
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.

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

8
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


9
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.

10
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

11
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

12
@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.

13
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.

14
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.

15
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

Pages: [1] 2 3