tkouno

tkouno

Takeshi Kouno

Sparx Systems Japan (Chief Executive Officer)
 
Sparx Systems Japan offers regional support and sales in Japan, and develops RaQuest and some Add-ins for Enterprise Architect. For detail, visit https://www.sparxsystems.jp/en/ .
Tuesday, 15 September 2020 07:08

BPMN Smart Layout Add-in

This Add-in adjusts following points at one step:

  • Align centers of 'near' objects (both vertically and horizontally)
  • Adjust start and end points of flows to the center of object edge if related objects are aligned
  • Adjust start or end points of flows to 'near' center of object edge
  • Delete unnecessary bended points

How to use

  1. Download the zip from the following website
    https://www.sparxsystems.jp/en/BPMNLayout.zip
  2. Install the add-in by running EAAddinSetupEn.bat with administrative rights
    (for detail, see: https://www.sparxsystems.jp/en/EAAddinSetupEn.htm)
  3. Run EA, open a BPMN diagram, then right-click and select 'Specialize' | 'BPMN Smart Layout'

Demo

You can watch the basic usage and behaviour of this Add-in with the following Youtube video:

https://youtu.be/wdYovcGmGeg (2m18s, no voice)

Notes

- You cannot undo the layout, so please back-up your project before using this Add-in.
- If you find a model which cannot be layouted correctly, please send an image to This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Friday, 27 July 2018 06:42

Model Conveter from ChangeVision Astah

EAImport is a converter from ChangeVision's astah (formerly JUDE) to Enterprise Architect.

System Requirements

  • Astah community 6.9
  • Enterprise Architect 13.0 or later
  • Java Runtime Environment 7 (JRE 7/32 bit version)
    • If you installed astah 32bit version, it is already installed.
    • JRE 8 may work, but it is unconfirmed.
    • If it does not exist, download the 32-bit version for Windows from the Oracle website and install it.
      (64-bit Java cannot be used.)

The following "Working Directory" assumes "c:\work" in this manual.

 

How to Set up the Converter

1. Copy the following files to the Working Directory.

  • all files in the EAImporter.ZIP file
  • "SSJavaCOM.dll" and "eaapi.jar" in the "Java API" folder in the Enterprise Architect installation directory
  • "astah-api.jar" and "astah-community.jar" in the Astah installation directory
  • slf4j-api-1.6.6.jar in the "lib" directory under the Astah installation directory
  • astah's file to convert (.asta)
  • EAP file to import (.eap/.eapx) - You can use "EABase.eap" file in the Enterprise Architect installation directory.

2. Open the run.bat file with a text editor such as Notepad

  • You need to modify the line which starts with "set JAVA_HOME =". Please specify the directory where Java runtime is installed. 

 

How to Convert

1. Run the Command Prompt from the Windows start menu.
2. Navigate to your working directory.

  • Example: cd \work

3. Run the batch file

  • Example: run Sample.asta EABase.eap
  • You can ignore messages of "SLF 4J"

 

Notes

  • Depending on the size of the asta file to be converted, Out of memory error may be shown. If the message is shown, adjusting the value of STACK_SIZE and MAXIMUM_HEAP_SIZE may be improved.
  • If there are any issues you can not convert successfully, please contact me with asta file to reproduce issues.

 

Limitations

  • Template information of Classes is not supported.
  • Ports which are owned by Parts are not supported.
  • Notes are automatically added in Use Case diagram if a Use Case in the diagram has Extension Points. Plese delete the Notes element.
  • Size of Use Case elements might not be maintained.
  • Call Behavior actions are converted as normal Action elements.
  • Levels of Execution Specification in Sequence diagrams are reset.
  • Some properties of fragments in Sequence diagram are not converted.
  • Deletion Mark (X) in Sequence diagrams is not supported.
  • Positions of messages in Communication diagram are not converted.
  • You need to enable SysML 1.3 if you need to convert SysML Requirements.
  • Style of Nesting connectors in SysML Requirement diagrams is not converted.
  • Some styles of connector are not supported.
  • Position of self-connectors and Labels (text) might not be maintained.
  • Order in the Project Browser is reset.
  • All non-UML elements are not supported.

 

This XML file is MDG Technology for GSN. You can create GSN (Goal Structure Notation) model on Enterprise Architect. For detail about GSN, please visit http://www.goalstructuringnotation.info/ .

 

With this MDG Technology, you can use GSN Diagram, GSN Toolbox, GSN objects and Quicklinker rule for GSN objects. To use this Technology, import the attached file via Specialize Ribbon | Publish-Tech button | Import MDG Technology menu item.

 (Update on 15th October 2019: Update text drawings for some objects)

Friday, 13 April 2012 02:30

Apply Windows7 Jump Lists to EA.exe

Prerequisites:

- Windows 7 Administrator rights

- The Windows 7 Jump List feature currently works with existing applications

 

Please Note: Modifying Windows Registry Settings may cause severe issues.  Do not edit the Windows registry unless you are confident about doing so.  We recommend that you backup your registry settings before any modifications are made.

 

Steps:

 

1. Copy the following text and paste to a text editor. Then save it with .reg extension

 

-- from here --

 

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.eap\OpenWithProgIds]
"EAPFile.JumpList.1"=""

 

Windows Registry Editor Version 5.00

 

[HKEY_CLASSES_ROOT\.eap\OpenWithProgIds]

"EAPFile.JumpList.1"=""

 

 

-- end here --

 

2. Double-click the file and add Registry values.

 

3. Similar to step 1, save the following texts as .reg file

-- from here --

 

Windows Registry Editor Version 5.00

 

[HKEY_CLASSES_ROOT\EAPFile.JumpList.1]

 

[HKEY_CLASSES_ROOT\EAPFile.JumpList.1\DefaultIcon]

@="C:\\Program Files (x86)\\Sparx Systems\\EA\\EA.exe,1"

 

[HKEY_CLASSES_ROOT\EAPFile.JumpList.1\shell]

 

[HKEY_CLASSES_ROOT\EAPFile.JumpList.1\shell\open]

 

[HKEY_CLASSES_ROOT\EAPFile.JumpList.1\shell\open\command]

@="\"C:\\Program Files (x86)\\Sparx Systems\\EA\\EA.exe\" \"%1\""

-- end here --

 

 

4. Before applying the .reg file, check the EA install path in the .reg file. The above example is for Windows 64 bit environment. You need to modify the path on 32bit OS or

 

5. Right-click any .EAP file, then select 'Open With' | 'Choose Program'. There are two Enterprise Architect settings, select the second Enterprise Architect setting.

6. EA will start and open the EAP file. Please check the EAP file is added to the Jump Lists.

 

You do not need to repeat the above steps if the step6 works fine. When you double-click any EAP file after this setting, the file will be added to the Jump Lists automatically.

 

 

With this Add-in, when you create a new Association connector and set its name, a reading direction mark (black triangle) is automatically added. (the direction is connector's source to target.)

To enable this Add-in, follow the steps:

 

1. Unzip the attached file.

2. Run EAAddinSetup.bat file. If you run on Windows Vista or Windows 7, please run the bat file as Administrator (right-click the file and run as Administrator).

3. Run Enterprise Architect.

4. Create an Assocation.

5. Double-click the Assocation and set its name.

6. The add-in works on the background automatically, and the reading direction mark will be added automatically.

 

Friday, 30 October 2009 07:13

Replace text in Element Name and Notes

Dim fromString, toString

'Replace text in Name and Notes
 Function ReplaceString(obj)

    Dim modified
    modified = False

    'replace string in Name
    If InStr(obj.Name, fromString) > 0 Then
        obj.Name = Replace(obj.Name, fromString, toString)
        modified = True
    End If
   
    'replace string in Notes
    If InStr(obj.Notes, fromString) > 0 Then
        obj.Notes = Replace(obj.Notes, fromString, toString)
        modified = True
    End If
   
    'call Update if modified
    If modified Then
        obj.Update
    End If
   
    ReplaceString = modified
   
End Function

'Replace texts of an element
Sub ReplaceElement(elem)

    Dim method
    Dim attr
    Dim i
    Dim modified
    modified = False
   
    ' element methods
 For i = 0 To elem.Methods.Count - 1
  Set method = elem.Methods.GetAt(i)
    
  modified = modified Or ReplaceString(method)
 Next
           
    ' element attributes
 For i = 0 To elem.Attributes.Count - 1
  Set attr = elem.Attributes.GetAt(i)
   
  modified = modified Or ReplaceString(attr)
 Next

    ' element properties
 modified = modified Or ReplaceString(elem)
   
 ' tell EA changes if modified
    If modified Then
        Repository.AdviseElementChange elem.ElementID
    End If
       
       
End Sub

' Replace texts of a Package
Sub ReplaceInPackage(pkg)

    ' elements in the Package
    Dim elem
    Dim i
    For i = 0 To pkg.Elements.Count - 1
        Set elem = pkg.Elements.GetAt(i)
               
        ReplaceElement elem
    Next
    
    ' packages in the Package
    Dim childPkg
   
 For i = 0 To pkg.Packages.Count - 1
  Set childPkg = pkg.Packages.GetAt(i)
  
  ReplaceInPackage childPkg
 Next
   
    ' Package properties
 If ReplaceString(pkg) Then
  ' tell EA changes if modified
  Repository.AdviseElementChange pkg.Element.ElementID
 End If

End Sub

'Main function
Sub Main()

 fromString = InputBox("Find what:","Replace text")
 If fromString = "" Then Exit Sub
 toString = InputBox("Replace with:","Replace text")
 If toString = "" Then Exit Sub

 ReplaceInPackage Repository.GetTreeSelectedPackage
 
 Msgbox "Complete.",,"Replace text"

End Sub

'Call main function
Main

 

Wednesday, 28 October 2009 11:47

Swap Element Name and Alias Properties

'Swap a Method or an Attribute
Private Sub Swap(obj)
    Dim sTmp

    If obj.Style <> "" And obj.Name <> "" Then
        sTmp = obj.Name
        obj.Name = obj.Style
        obj.Style = sTmp
           
        obj.Update
       
        Repository.AdviseElementChange obj.ParentID
    End If
   
    'Parameters of Method
    If obj.ObjectType = 24 Then
  Dim i
        For i = 0 To obj.Parameters.Count - 1
            SwapParameter obj.Parameters(i)
        Next
    End If
   
End Sub

'Swap Parameters
Private Sub SwapParameter(param)

    Dim sTmp
    If param.Alias <> "" And param.Name <> "" Then
        sTmp = param.Name
        param.Name = param.Alias
        param.Alias = sTmp
       
        param.Update
    End If
   
End Sub

'Swap ConnectorEnds
Private Sub SwapConnectorEnd(connEnd)

 Dim sTmp

    If connEnd.Role <> "" And connEnd.Alias <> "" Then
        sTmp = connEnd.Role
        connEnd.Role = connEnd.Alias
        connEnd.Alias = sTmp
       
        connEnd.Update
    End If
   
End Sub

'Swap an Element
Private Sub SwapElement(elem)
    Dim method
    Dim attr
 Dim conn
    Dim i
    Dim sTmp
   
    ' Methods of Element
    For i = 0 To elem.Methods.Count - 1
        Set method = elem.Methods.GetAt(i)
               
        Swap method
    Next
           
    'Attributes of Element
    For i = 0 To elem.Attributes.Count - 1
        Set attr = elem.Attributes.GetAt(i)
           
        Swap attr
    Next

    'Connectors of Elements
    For i = 0 To elem.Connectors.Count -1
  Set conn = elem.Connectors.GetAt(i)

  If elem.ElementID = conn.SupplierID then
   If conn.Alias <> "" And conn.Name <> "" Then
    sTmp = conn.Alias
    conn.Alias = conn.Name
    conn.Name = sTmp
    conn.update
   End If

   SwapConnectorEnd conn.SupplierEnd
   SwapConnectorEnd conn.ClientEnd
 
   Repository.AdviseConnectorChange conn.connectorID
  End If
    Next

 'Element Name
    If elem.Alias <> "" And elem.Name <> "" Then
        sTmp = elem.Name
        elem.Name = elem.Alias
        elem.Alias = sTmp
       
        elem.Update
       
        Repository.AdviseElementChange elem.ElementID
    End If
       
End Sub

'Swap a Package
Private Sub SwapPackage(pkg)

    'Elements in Package
    Dim elem
    Dim i
    For i = 0 To pkg.Elements.Count - 1
        Set elem = pkg.Elements.GetAt(i)
               
        SwapElement elem
    Next
    
    'Packages in Package
    Dim childPkg
   
    For i = 0 To pkg.Packages.Count - 1
        Set childPkg = pkg.Packages.GetAt(i)
       
        SwapPackage childPkg
    Next
   
    'Package Name
    Dim sTmp
    If pkg.Alias <> "" And pkg.Name <> "" Then
        sTmp = pkg.Name
        pkg.Name = pkg.Alias
        pkg.Alias = sTmp
       
        pkg.Update
    End If
   
End Sub


'Main Function
Sub Main()

 SwapPackage Repository.GetTreeSelectedPackage

 Msgbox "Completed."+vbcrlf+"Please reload all opened diagram."

End Sub

'Call the Main function
Main