确定元素是 Enterprise Architect 中的叉子还是连接

Identify if an element is a fork or a join in Enterprise Architect

我有一个 activity 图,其中使用了 fork/join 元素。我必须弄清楚该元素是用作分叉还是使用数据库或其 API 的连接。有什么办法可以找到这个吗?

仅通过查看传入和传出连接器的数量。 Fork 正好有一个入边,Join 正好有一个出边。

不太可能,但有可能:如果附有注释,您需要检查(最好总是)连接器是否属于对象类型 and/or 控制流。

在 EA 中它是同一个对象,所以在对象本身你看不到它是一个连接还是一个分支。

所以你需要想出另一种方法来知道它是用作连接还是分支。

不同之处在于链接的控制流

  • 分叉:一个传入流,多个传出流

  • 加入:多个传入流,一个传出流

我想我会给我们一个 SQL 查询来确定我的对象是用作 Fork 还是用作 Join

检查分叉的查询

select o.Object_ID from t_object o
where o.ea_guid = '{3E91C35F-A454-4282-944C-F07BD0D86F91}'
and 1 = --only one incoming flow
  (select count(*) from t_connector c
  where c.End_Object_ID = o.Object_ID
  and c.Connector_Type = 'ControlFlow') 
and  1 < --more than one outgoing flow
  (select count(*) from t_connector c
  where c.Start_Object_ID = o.Object_ID
  and c.Connector_Type = 'ControlFlow')

检查加入的查询

select o.Object_ID from t_object o
where o.ea_guid = '{0CD27AF4-873C-4c64-A230-B40CE57E7F83}'
and 1 < --more than one incoming flow
  (select count(*) from t_connector c
  where c.End_Object_ID = o.Object_ID
  and c.Connector_Type = 'ControlFlow') 
and  1 = --exactly one outgoing flow
  (select count(*) from t_connector c
  where c.Start_Object_ID = o.Object_ID
  and c.Connector_Type = 'ControlFlow')

将查询中的GUID替换为疑似Fork/Join的GUID 您可以使用 EA.Repository.SQLQuery() 来执行这些查询。