1
我正在尝试使用C#脚本来重新创建Enterprise Architects功能获取所有最新信息。我已经succeedet通过扫描每包和期待,如果它的版本用下面的代码控制,这样做:在Enterprise Architect中获取所有版本控制软件包的最快方法。
Collection models = eaRepository.Models;
foreach (Package package in models) {
resolveRecursivelyGetLatestOnPackage(package);
}
eaRepository.ScanXMIAndReconcile();
Console.WriteLine("GetLatestFinished.");
private void resolveRecursivelyGetLatestOnPackage(Package package)
{
if (package.IsVersionControlled) {
package.VersionControlGetLatest(false);
}
foreach (Package childPackage in package.Packages) {
resolveRecursivelyGetLatestOnPackage(childPackage);
}
}
但是我用这对EAP模式是相当大的和上代码需要花费大量的时间,因为它扫描所有包。因此我试图通过使用Select语句来获取所有版本的受控软件包。
SELECT * FROM t_package WHERE IsControlled = True
遗憾的是我没有发现任何方式接收包的集合在EA的自动化接口。
我迄今为止尝试:
eArepository.GetElementSet ("SELECT * FROM t_package WHERE IsControlled = True", false);
eArepository.SQLQuery ("SELECT * FROM t_package WHERE IsControlled = True");
的getElementSet不返回空集,因为它是没有任何元素我寻找。
SqlQuiery似乎给了我想要的,但格式错误。我不知道如何从它给我的XML中获取软件包。有没有办法做到这一点?
如何快速获得所有版本控制包的集合?