使用VBScript API for Enterprise Architect'GetElementsByQuery'

时间:2018-03-27 15:12:49

标签: vbscript enterprise-architect

我正在努力理解Enterprise Architect的VBScript API。

我想添加一个人工制品,当且仅当它还没有被添加时,它是一个很大的导入,所以我想使用GetElementsByQuery接口来检查是否已经创建了类或接口,然后使用现有的引用而不是一个新的。

以下代码每次抛出一个异常,即使我知道strSourceName已经添加到存储库中。

on error resume next ' in case no object found the query will throw an exception 
objCollection = Ea.Repository.GetElementsByQuery( "Simple", "strSourceName" )
If Err.Number = 0 Then
    Session.Output( "info: found :" & strSourceName & ":" )
Else
    Session.Output( "warn: not found :" & strSourceName & ":" )
    Err.Clear
End If

我不熟悉EA或VBScript,所以请放轻松。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你的剧本有几个怪癖。试试这个:

dim o as EA.Collection
set o = Repository.GetElementsByQuery ("Simple", "strSourceName" )
Session.Output( "info: found :" & o.Count & ":" )

您将看到o.Count为0或大于0的内容。