2015-11-11 3 views
0

Используя JScript, я хотел бы перечислить элементы под конкретным пакетом.Сценарий Sparx Enterprise Architect: перечисление элементов пакета

Я получил # OBJECTID #, который является идентификатором элемента пакета.

Я использовал это, чтобы получить Элемент.

Но когда я Сосчитайте элементы, они всегда 0.

Что шаг я пропустил?

function devTest() 
{ 
    var package = Repository.GetPackageByGuid("{2255D8C8-F1BB-4069-BDAF-8B303D108C62}"); 

    // When testing use the Element associate to the Package, not 
    // the Package ID itself (Pretty sure that that 
    // this equivalent to the #OBJECTID# macro). 
    var packageElementId = package.Element.ElementID; //NOT: package.PackageID; 

    var packageElement = Repository.GetElementByID(packageElementId); 

    var elementCollection = packageElement.Elements(); 
    Session.Output("Element Count: " + elementCollection.Count()); 

    //ALWAYS ZERO. Not showing Classes and Attributes that are nested under the Package. 
} 

Спасибо за помощь!

+1

Я рекомендую искать/пересылать сообщения на форум Sparx. Внутренние кодовые обезьяны читают и публикуют там, насколько я знаю, они нигде не так плодовиты на этом сайте. – user5151179

+0

Спасибо за подсказку. – Ciel

ответ

2

Оказалось, что мне нужен метод GetPackageByGuid, чтобы вернуться к пакету, связанному с элементом. Кажется, коллекция элементов пакета является правильной для использования. Go figure ...

//Get back to the package that is related to the Element before you count Elements: 
var package = Repository.GetPackageByGuid(packageElement.ElementGUID); 
var elementCollection = package.Elements; 
Session.Output("Element Count: " + elementCollection.Count()); 
+0

Вы можете отметить это как ответ. –

Смежные вопросы