Я пытаюсь использовать C# Script для воссоздания функциональности 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 Statement.
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, который он мне дает. Есть ли способ сделать это?
Как я могу получить коллекцию всех пакетов с контролируемой версией Fast?