EA16 - Helmut-Ortmann/EnterpriseArchitect_hoTools GitHub Wiki

EA16

hoTools now works also for:

  • EA16 32 and 64 bit

There are two Setup WIX projects were you can see how it works. The *.msi takes care of everything.

Env. Project *.msi Install-Folder Registry (HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)
AppData\Local\Apps\ho\ HKEY_CURRENT_USER\Software\Sparx Systems
x86 Setup hoTools.msi hoTools EAAddins\hoTools = hoTools.HoToolsRoot
x64 Setup64 hoTools64.msi hoToolsX64 EAAddinsX64\hoTools = hoTools.HoToolsRoot

Add-Ins

32Bit and 64Bit AddIns for the respective EA 32/64 bit version.

See: X64 Add-Ins

SQLITE

You need to adapt some SQLs in Queries and in Add-Ins.

In EA SQL Searches the easiest way is to use the macro:

#DB=Other#  my SQLITE code #DB=Other# 

Example

Handles:

  • Mid() ==> Substr()
  • Macros to encapsulate DB differences

SQL:

select d.ea_GUID,
   d.Diagram_Type,
   d.Name,
   d.Diagram_Type, 
   d.stereotype, 
   d.Author, 
   #DB=ORACLE# Cast(d.ModifiedDate As Varchar(20)) As Modified, #DB=ORACLE#
   #DB=JET#    d.ModifiedDate As Modified, #DB=JET#
   #DB=Other#  d.ModifiedDate As Modified, #DB=Other#
   #DB=SQLSVR# d.ModifiedDate As Modified, #DB=SQLSVR#

   #DB=ORACLE# Cast(SubStr(d.notes,1,200) As Varchar(200))        #DB=ORACLE#
   #DB=JET#    Mid(d.notes,1,200)                #DB=JET#
   #DB=Other#  Substr(d.notes,1,200)             #DB=Other#
   #DB=SQLSVR# Substring(d.notes,1,200) As Notes #DB=SQLSVR#
from t_diagram  d
where d.ea_GUID = '<Search Term>'

Date Diff

Handles:

  • Date Differences

SQL:

SELECT d.ea_GUID AS CLASSGUID,
    d.diagram_type AS CLASSTYPE,
    d.ModifiedDate, 
    #DB=ORACLE#    /* Modified diagrams */                    #DB=ORACLE#
    #DB=ORACLE#  Trunc(SYSDATE - d.ModifiedDate)    As "Days" #DB=ORACLE# 
    #DB=JET#     DateDiff("d",d.ModifiedDate,Now()) As "Days" #DB=JET#
    #DB=Other#   d.ModifiedDate - date('now')       As "Days" #DB=Other#
    #DB=SQLSVR#  DATEDIFF(day, d.ModifiedDate, getdate())     #DB=SQLSVR#
    ,d.Name, d.diagram_type As Type, 
    d.Author, u.firstname, u.surname, d.StereoType, d.CreatedDate
FROM t_diagram d 
     left join t_secuser u on u.userlogin = d.author
WHERE d.package_id in ( #Branch#)
             and d.name like '<Search Term>#WC#'
Order By modifiedDate desc

Format

Handles:

  • Format()
    • Format(o.Object_ID) = op.Classifier => o.Object_ID= op.Classifier

SQL:

select o.ea_GUID,
 o.Object_Type,
 'ReturnType',
 o.name,
 o.Object_Type,
 o.stereotype,
 '',
 pkg.name,
  o.ea_GUID 
from t_operation op,   
    t_object o1, t_object o INNER JOIN t_package pkg on (o.package_id =pkg.package_id) 
where 
    op.ea_GUID = '<Search Term>' AND
    #DB=SQLSVR#    o.Object_ID = op.Classifier             #DB=SQLSVR# 
    #DB=JET#          Format(o.Object_ID) = op.Classifier  #DB=JET#
    #DB=Other#          o.Object_ID= op.Classifier         #DB=Other#
    #DB=ORACLE#     o.Object_ID = op.Classifier            #DB=ORACLE#
    AND      op.object_id = o1.object_id   

References