Sparx Enterprise Architect:BPMN 从多个通道实例中收集活动
Sparx Enterprise Architect: BPMN collecting activities from several lane instances
我有几个在 EA 中建模的业务流程。都有相同的通道,所以(正如我在一些教程中看到的那样)我添加了一个通用元素,并且流程通道都通过 "partitionElementRef" 引用到相同的通用元素。 (见屏幕,下层业务流程包含一个车道捕获,它链接到上层"Lanes assigned to Roles")。
我如何查询 EA 我可以收集引用同一通道的不同业务流程中的所有活动?这样,我可以从所有业务流程中收集具有相同通道 "Capture" 的所有元素?
因此,列表或矩阵将是完美的。
我认为您不应该对通用元素使用 Lane
,而应该使用 BPMN PartnerRole
或 PartnerEntity
元素。
使用通道将违反 BPMN 语法。
除此之外,如果您想查询模型以获取所有车道及其通用元素,您可以使用这样的查询
select o.ea_guid AS CLASSGUID, o.Object_ID as CLASSTYPE, o.Name, o.Stereotype, gen.Name as GenericElement
from ((t_object o
inner join t_objectproperties tv on (tv.Object_ID = o.Object_ID
and tv.Property = 'PartitionElementRef'))
left join t_object gen on gen.ea_guid = tv.Value)
where o.Stereotype = 'Lane'
Lane
链接到 通用元素 ,其标记值 PartitionElementRef
包含通用元素的 GUID。
如果你想在你的车道上进行活动,你可以使用 ParentID
再次加入 t_object
select act.ea_guid AS CLASSGUID, act.Object_ID as CLASSTYPE, act.Name, act.Stereotype,
o.Name as Lane, gen.Name as GenericElement
from (((t_object o
inner join t_objectproperties tv on (tv.Object_ID = o.Object_ID
and tv.Property = 'PartitionElementRef'))
left join t_object gen on gen.ea_guid = tv.Value)
inner join t_object act on (act.ParentID = o.Object_ID
and act.Stereotype = 'Activity'))
where o.Stereotype = 'Lane'
额外提示:如果您将泳道名称留空,它将在图表上显示 generic 元素的名称。
基于 Geert Bellekens 的解决方案,我只是添加了最后一个 where 子句...
select act.ea_guid AS CLASSGUID, act.Object_ID as CLASSTYPE, act.Name, act.Stereotype,
o.Name as Lane, gen.Name as GenericElement
from (((t_object o
inner join t_objectproperties tv on (tv.Object_ID = o.Object_ID
and tv.Property = 'PartitionElementRef'))
left join t_object gen on gen.ea_guid = tv.Value)
left join t_object act on (act.ParentID = o.Object_ID
and act.Stereotype = 'Activity'))
where (o.Stereotype = 'Lane' and act.Stereotype = 'Activity')
最后在查询结果中,按Generic Element分组
我有几个在 EA 中建模的业务流程。都有相同的通道,所以(正如我在一些教程中看到的那样)我添加了一个通用元素,并且流程通道都通过 "partitionElementRef" 引用到相同的通用元素。 (见屏幕,下层业务流程包含一个车道捕获,它链接到上层"Lanes assigned to Roles")。
我如何查询 EA 我可以收集引用同一通道的不同业务流程中的所有活动?这样,我可以从所有业务流程中收集具有相同通道 "Capture" 的所有元素? 因此,列表或矩阵将是完美的。
我认为您不应该对通用元素使用 Lane
,而应该使用 BPMN PartnerRole
或 PartnerEntity
元素。
使用通道将违反 BPMN 语法。
除此之外,如果您想查询模型以获取所有车道及其通用元素,您可以使用这样的查询
select o.ea_guid AS CLASSGUID, o.Object_ID as CLASSTYPE, o.Name, o.Stereotype, gen.Name as GenericElement
from ((t_object o
inner join t_objectproperties tv on (tv.Object_ID = o.Object_ID
and tv.Property = 'PartitionElementRef'))
left join t_object gen on gen.ea_guid = tv.Value)
where o.Stereotype = 'Lane'
Lane
链接到 通用元素 ,其标记值 PartitionElementRef
包含通用元素的 GUID。
如果你想在你的车道上进行活动,你可以使用 ParentID
t_object
select act.ea_guid AS CLASSGUID, act.Object_ID as CLASSTYPE, act.Name, act.Stereotype,
o.Name as Lane, gen.Name as GenericElement
from (((t_object o
inner join t_objectproperties tv on (tv.Object_ID = o.Object_ID
and tv.Property = 'PartitionElementRef'))
left join t_object gen on gen.ea_guid = tv.Value)
inner join t_object act on (act.ParentID = o.Object_ID
and act.Stereotype = 'Activity'))
where o.Stereotype = 'Lane'
额外提示:如果您将泳道名称留空,它将在图表上显示 generic 元素的名称。
基于 Geert Bellekens 的解决方案,我只是添加了最后一个 where 子句...
select act.ea_guid AS CLASSGUID, act.Object_ID as CLASSTYPE, act.Name, act.Stereotype,
o.Name as Lane, gen.Name as GenericElement
from (((t_object o
inner join t_objectproperties tv on (tv.Object_ID = o.Object_ID
and tv.Property = 'PartitionElementRef'))
left join t_object gen on gen.ea_guid = tv.Value)
left join t_object act on (act.ParentID = o.Object_ID
and act.Stereotype = 'Activity'))
where (o.Stereotype = 'Lane' and act.Stereotype = 'Activity')
最后在查询结果中,按Generic Element分组