Enterprise Architect: установка состояния запуска из начальных значений атрибута при создании экземпляра - PullRequest
0 голосов
/ 14 ноября 2018

Я нахожусь на Enterprise Architect 13.5, создаю диаграмму развертывания. Я определяю наши серверы как узлы и использую атрибуты на них, чтобы я мог указать их детали, такие как Disk Controller = RAID 5 или Disks = 4 x 80 GB.

При перетаскивании экземпляров этих узлов на диаграмму я могу выбрать для них «Установить состояние выполнения» и установить значения для всех определенных мной атрибутов, как это делается на диаграмме развертывания в проекте EAExample:

Instance with attributes defined via Set Run State

Поскольку в нашем проекте будет несколько серверов, использующих одну и ту же конфигурацию, я планировал использовать столбец «начальное значение» в определении атрибута на узле, чтобы указать конфигурацию по умолчанию, чтобы все создаваемые мной экземпляры автоматически находили приемлемые значения и когда меняется значение по умолчанию, я бы изменил только Начальные значения на исходном узле, вместо того чтобы переходить ко всем экземплярам:

Defining Initial Values on the Node

Моя проблема в том, что, хотя я определяю начальные значения, все создаваемые мной экземпляры не показывают какие-либо значения, когда я перетаскиваю их на диаграмму. Только установив состояние выполнения для каждого экземпляра, я могу заставить их отображать нужные мне значения:

enter image description here

Это ожидаемое поведение? Кстати, я могу воспроизвести то же самое, используя классы и их экземпляры, так что это не просто проблема схемы развертывания.

Любые идеи очень ценятся! Я также благодарен, если вы можете описать лучший способ достижения того же результата с EA, на случай, если я делаю это неправильно.

1 Ответ

0 голосов
/ 15 ноября 2018

Что вы можете сделать, это написать сценарий, который поможет с этим, или даже создать надстройку для большей автоматизации.Сценарии проще в реализации, но вам нужно запустить сценарий вручную (который, однако, может добавить значения в пакет для вновь созданных объектов диаграммы).Использование надстройки может сделать это при создании элемента, если вы подключитесь к EA_OnPostNewElement.

Что вам нужно сделать, это сначала получить классификатор объекта.Использование

Repository.GetElementByID(object.ClassifierID)

вернет это.Затем вы можете проверить атрибуты этого класса и составить список из них с начальным значением.Наконец, вы добавляете состояния выполнения объекта, присваивая object.RunState с грубой строкой.Например, для a != 33 это будет

@VAR;Variable=a;Value=33;Op=!=;@ENDVAR;

Просто объедините столько, сколько вам нужно для нескольких состояний запуска.

...