在Enterprise Architect中访问Repository.GetElementSet时发生异常

好人

我试图使用VBA脚本自动化Enterprise Architect中元素之间的可追溯性。如果元素之间已经存在可追溯性,那么我需要跳过这些元素。

我使用一个简单的查询编写,其中EAP中存在对象ID。

   set useCaseCollection = Repository.GetElementSet("select Start_Object_ID from t_connector where (Start_Object_ID = -1222814411  and End_Object_ID = 505879126 and Connector_Type = 'Realisation')",2)
   If Err.Number <> 0 Then
   Session.Output( useCaseCollection.Count)
   End if 
   On Error Goto 0

现在的问题是,如果元素之间存在可追溯性,我将收到一个异常,因为在集合中找不到Item如果没有可追溯性,那么它将值打印为零。以上方法有什么问题吗,或者有其他解决方案可以解决此问题?

qwerty_so

我想答案很简单。GetElementSet仅适用于t_object(元素),不适用于t_connector使用SQLQuery代替。或使用aJOIN来实际返回连接的元素,而不是对象ID。

遵循这些原则:

dim useCaseCollection as EA.Collection
set useCaseCollection = Repository.GetElementSet("select * from t_object WHERE object_ID in (SELECT start_object_id FROM t_connector)",2)      
Session.Output( useCaseCollection.Count)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章