sql - 在 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 。如果不存在可追溯性,则将值打印为零。上述方法有什么问题,或者有任何其他解决方案可以解决这个问题吗?
解决方案
我想答案很简单。GetElementSet
仅适用于t_object
(Elements) 不适用于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)
推荐阅读
- javascript - 增加 crypto-js 加密中的文件大小限制
- sql - 查询年龄计算和日期比较不一致
- python - 使用 pynput 键盘记录器监听特定键?
- html - 调整视差图像的大小并正确定位
- sql-server - 等效于 SQL Server 中的 Oracle sys_context ('USERENV', 'Client_Identifier')
- java - 重新排序 XML 节点 - Java DOM 解析器
- swift - 是否有通过 firebase firestore 提交通配符搜索请求的功能?
- python - 在 python Singleton 设计模式中得到错误的输出
- laravel - Laravel 测试失败并显示“... ReflectionException: Class config does not exist ...”
- java - 测试使用弹簧服务的方法