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

Pages: [1] 2
1
General Board / Re: EA model of a product with multiple clients
« on: May 09, 2018, 07:18:06 pm »
As per my understanding of Deployment whitepaper, Version Control deployment and EA cloud deployment are mutually exclusive.
However, as Peter mentioned, there's a way to use them both in some cases. EA Cloud deployment currently is in use in our case with different multi-site read/write access. Is using version control possible in such case?
Thank you all.

2
General Board / Re: EA model of a product with multiple clients
« on: May 09, 2018, 06:49:11 am »
Appreciated and I would like to thank you all for your detailed reply and continues support...
I'll explore mentioned ideas and search for similar posts.
Thanks.

3
General Board / Re: EA model of a product with multiple clients
« on: May 09, 2018, 05:00:48 am »
Hi Peter,
Thanks a lot for your reply and help.
I didn't mean anything by my reply, I've removed it anyways. What I mean by my reply is only to mention that I have had a lot of issues with this and couldn't figure out the best practices to this. I'm really sorry if my words aren't showing the intention.

Your replies and notes are so appreciated and respected.
Best Personal Regards.

4
General Board / EA model of a product with multiple clients
« on: May 08, 2018, 07:39:00 pm »
Hi,
Hope this is the best location to ask such question.
Generally, what are the best approach to manage EA model for a product that have multiple client and each client has different set of customization?
Each client has their own customization and set of features that may or may not interfere with other clients needs.
How to keep artifacts in sync for product level and client level model?
I know it's big question and posting it to see how experts resolve such problem in EA.
Thanks in Advance

5
Automation Interface, Add-Ins and Tools / Re: Diagram Filters
« on: April 16, 2018, 04:56:35 pm »
I've found this post for copy diagram http://sparxsystems.com/forums/smf/index.php?topic=6111.0
But I couldn't find one to apply diagram filter?
Thanks

6
Automation Interface, Add-Ins and Tools / Diagram Filters
« on: April 12, 2018, 04:34:47 pm »
Hi,

As there are no diagram filters in WebEA yet, I need to create script that copy a diagram and create new one for each defined diagram filter in EA with filter applied
1- Is there an API to get the defined diagram filters a script?
2- Is there an API to apply a diagram filter on a diagram?
3- Is there an API to create a copy of of a diagram?

Thanks in Advance

7
General Board / Re: WebEA - Diagram Filters
« on: April 12, 2018, 04:26:39 pm »
Thanks you. I hope this will be added in future versions of WebEA

8
General Board / WebEA - Diagram Filters
« on: April 11, 2018, 06:46:36 pm »
Is there a way in WebEA/ProCloud to allow diagram filters to be accessible by reader?

10
General Board / Re: how to merge two project files of EA
« on: April 10, 2018, 05:06:10 pm »
You could use shared repository (e.g. MySQL) for all of the team members and this will fix merge issue

11
I've built script that done some of the functionality using Diagram Scripts

' After building User Story Map diagram, run this script to
'1. Align user stories to their Epic if they aren't already (consider +/- 25 px alignment difference between Epic and its user stories)
'2. Sequence Epics as per their position in map (add Dependency connector between Epics)
'3. Aggregate User Stories to their corresponding Epic in Diagram (add Aggregation connector between user story and its Epic)
'4. Save left/top position of each element as tagged values to serve 2 purposes (a. Priority of user story under Epic, b. rebuild diagram programmatically just in case)

Hope this help others facing same issue
Code: [Select]
option explicit

!INC Local Scripts.EAConstants-VBScript

'
' This code has been included from the default Diagram Script template.
' If you wish to modify this template, it is located in the Config\Script Templates
' directory of your EA install path.
'
' Script Name:
' Author:
' Purpose:
' Date:
'

' After building User Story Map diagram, run this script to
'1. Align user stories to their Epic if they aren't already (consider +/- 25 px alignment difference between Epic and its user stories)
'2. Sequence Epics as per their position in map (add Dependency connector between Epics)
'3. Aggregate User Stories to their corresponding Epic in Diagram (add Aggregation connector between user story and its Epic)
'4. Save left/top position of each element as tagged values to serve 2 purposes (a. Priority of user story under Epic, b. rebuild diagram programmatically just in case)


'
' Diagram Script main function
'
sub OnDiagramScript()

' Get a reference to the current diagram
dim currentDiagram as EA.Diagram
set currentDiagram = Repository.GetCurrentDiagram()
'This for testing purposes
'set currentDiagram = Repository.GetDiagramByGuid("{A81FC73F-6C83-40ff-9120-4B3AB21A4C56}")

if not currentDiagram is nothing then
' Get a reference to any selected connector/objects
dim selectedConnector as EA.Connector
dim selectedObjects as EA.Collection
dim diagramObjects as EA.Collection
set selectedConnector = currentDiagram.SelectedConnector
set selectedObjects = currentDiagram.SelectedObjects
set diagramObjects = currentDiagram.DiagramObjects

if not selectedConnector is nothing then
' A connector is selected
elseif selectedObjects.Count > 0 then
' One or more diagram objects are selected
else
' Nothing is selected
end if

if diagramObjects.Count > 0 then
dim sortedObjects
dim obj as EA.DiagramObject
dim currentEpicObj as EA.DiagramObject
dim elm as EA.Element
dim currentEpic as EA.Element
set currentEpic = nothing
' Sort User Story Map elements based on thier aligments (left and top) to be Epic1, Us1, Us2, Epic2, Us3,Us4 etc..
set sortedObjects = sortDiagramObjectsCollection(diagramObjects)
'Play with sorted list
for each obj in sortedObjects
set elm = Repository.GetElementByID(obj.ElementID)
if not elm is nothing then
'Consider epic in BABOk profile or custom Epic stereotype, you may change this to match your own
if(elm.Stereotype = "epic" or elm.Stereotype = "Epic") then
if not currentEpic is nothing then
'sequence Epics - link currentEpic to next epic
linkElement currentEpic, elm , "Dependency"
end if
'change current Epic to new one
set currentEpic = elm
set currentEpicObj = obj

elseif(elm.Stereotype = "UserStory") then
'unlinkStoryFromOtherEpics(elm) This will be handled manulally in case there is a meaning for that link
'link user story to current Epic
linkElement elm, currentEpic, "Aggregation"

'Align UserStory to Epic left edge if not already
if( obj.left <> currentEpicObj.left) then
obj.left = currentEpicObj.left
obj.right = currentEpicObj.right
obj.Update()
end if

end if

' Save postion Top/Left as tagged value
saveAsTaggedValue elm, "Top", obj.top
saveAsTaggedValue elm, "Left", obj.left

end if
Next

end if
Repository.ReloadDiagram(currentDiagram.DiagramID)
else
Session.Prompt "This script requires a diagram to be visible", promptOK
end if
Msgbox "Links, Alignment and Save Position are Completed"
end sub

sub saveAsTaggedValue(element, tagName, tagValue)
dim tv as EA.TaggedValue
set tv = element.TaggedValues.GetByName(tagName)
if not tv is nothing then
'No need to update in case value is already exist
if tv.Value <> tagValue then
tv.Value = tagValue
tv.Update()
end if
else
set tv= element.TaggedValues.AddNew(tagName, tagValue)
tv.Update()
element.TaggedValues.Refresh()
end if
end sub

' Link source and target
sub linkElement(sourceElement,targetElement, linkType)
dim source as EA.Element
set source = sourceElement
dim target as EA.Element
set target = targetElement
dim link as EA.Connector
dim i

dim isConnectorExist
isConnectorExist = false
for each link in target.Connectors
if (link.ClientID = source.ElementID ) then
isConnectorExist = true
end if
next

If (not isConnectorExist ) Then
set link = source.Connectors.AddNew("", linkType)
'now connect it to the target
link.SupplierID = target.ElementID

'association.Stereotype = "EpicToStory"
if linkType = "Aggregation" then
link.ClientEnd.Navigable = false
end if
link.Update()
End If
end sub


' This code till end of script is copied from "Geert Bellekens" github repository @https://github.com/GeertBellekens/Enterprise-Architect-VBScript-Library/blob/master/Projects/Project%20A/Diagram%20Group/Business%20Requirements%20Document.vbs
' Some changes done to consider elements alignment
' Many Thanks to Geert Bellekens
function sortDiagramObjectsCollection (diagramObjects1)
dim sortedDiagramObjects
dim diagramObject as EA.DiagramObject
set sortedDiagramObjects = CreateObject("System.Collections.ArrayList")
for each diagramObject in diagramObjects1
sortedDiagramObjects.Add (diagramObject)
next
set sortDiagramObjectsCollection = sortDiagramObjectsArrayList(sortedDiagramObjects)
end function

function sortDiagramObjectsArrayList (diagramObjects1)
dim i
dim goAgain
goAgain = false
dim thisElement as EA.DiagramObject
dim nextElement as EA.DiagramObject
for i = 0 to diagramObjects1.Count -2 step 1
set thisElement = diagramObjects1(i)
set nextElement = diagramObjects1(i +1)
if  diagramObjectIsAfterXY(thisElement, nextElement) then
diagramObjects1.RemoveAt(i +1)
diagramObjects1.Insert i, nextElement
goAgain = true
end if
next
'if we had to swap an element then we go over the list again
if goAgain then
set diagramObjects1 = sortDiagramObjectsArrayList (diagramObjects1)
end if
'return the sorted list
set sortDiagramObjectsArrayList = diagramObjects1
end function

'returns true if thisElement should come after the nextElement (both diagramObjects)
'some
function diagramObjectIsAfterXY(thisElement, nextElement)
' dim thisElement as EA.DiagramObject
' dim nextElement as EA.DiagramObject
if thisElement.left > nextElement.left  then
if (thisElement.left - nextElement.left)  < 25 then
if thisElement.top > nextElement.top then
diagramObjectIsAfterXY = false
else
diagramObjectIsAfterXY = true
end if
else
diagramObjectIsAfterXY = true
end if
elseif thisElement.left = nextElement.left then
if thisElement.top > nextElement.top then
diagramObjectIsAfterXY = false
else
diagramObjectIsAfterXY = true
end if
else
if (nextElement.left - thisElement.left )  < 25 then
if thisElement.top > nextElement.top then
diagramObjectIsAfterXY = false
else
diagramObjectIsAfterXY = true
end if
else
diagramObjectIsAfterXY = false
end if
end if
end function



OnDiagramScript


Many Thanks.

12
Suggestions and Requests / Re: User Story Map Diagram
« on: March 29, 2018, 05:58:41 pm »
Thanks for your reply,
Kanban diagram serves different purpose from user story map diagram and the links has to be automatically linked based on position of the user story under its EPIC.

Kanban now only changes a value of a an attribute to kanban column value. However, what user story map need is to have EPIC on top and Releases swim-lanes and user story position is to automatically to be linked to the related EPIC automatically and to change its Phase or custom Tagged Value to its related release swim-lanes.

If this won't be considered as new feature in road map of EA, then at least add a event on Add-In model for diagram to get the position of an element after Drag and Drop event.

Many Thanks.

13
Suggestions and Requests / User Story Map Diagram
« on: March 26, 2018, 02:58:28 am »
Hi, It would be great to add more support for agile in EA. The most important one is User Story Map diagram, where EA automatically links User Story under an EPIC to that EPIC elements and update User Story Release to be its corresponding swim lanes release. thanks

14
Thanks a lot for your reply. I find an event that triggers once diagram is closed, i think this would be more practical to build the links for now until such events are available.   

15
Hi,

I'm using custom diagram to build user story map with elements of <<UserStrory>> and <<EPIC>> stereotypes.

User stories are positioned under their related EPIC on the map.

I need to build a script or add-in that automatically link the user story to its EPIC on the diagram once that user story positioned under the EPIC on the diagram.
The link could be any type such as aggregation.

I searched Add-IN model events, I couldn't find event for moving element in a diagram.

Thanks in Advance,

Pages: [1] 2