Показать сообщение отдельно
Старый 15.06.2012, 16:16   #16  
anchuck is offline
anchuck
Участник
 
4 / 10 (1) +
Регистрация: 14.06.2012
Узлы ("если", "коды" и т.д.) начинают "действовать уже после нажатия кнопки "ОК" пользователем, который устанавливал параметры модели. Речь идет о этапе конфигурирования продукции пользователем. То есть, когда он устанавливает значения переменным моделирования. На этом этапе работают правила (validation). Попробую подробнее описать задачу. Например, имеется различные коллекции продукта. Каждая коллекция подразумевает свой набор опций применимых к продукту. Первая переменная дает возможность выбрать коллекцию. Далее должно срабатывать правило, в котором в завимисти от выбранной модели в другом поле (другой переменной моделирования) выдается список возможных опций для этой коллекции.
Пример, может, надуманный, можно создать свою модель для каждой коллекции, но задача именно в динамическом изменении возможного набора значений в переменных моделирования, таких как "Перечислимые тексты" и "Таблица".
Для таких типов переменных моделирования список возможных значений задается на этапе создания этих переменных моделирования.
Насколько я понимаю, поменять это значение возможно где то в правилах обработки события "изменилось значение первой переменной". Код правила записывается в функцию, которая вкладывается в один из getActions-методов класса PBAExecutable_000XXX. Этой функции доступны только передаваемые ей текущие значения указанных переменных моделирования.
Но также ей доступен объект класса PBAVarMap, который и содержит все определения переменных моделирования.
Если в каждый сеанс конфигурирования передается копия этого объекта, то можно попытаться в коде обработки правила занести новый список возможных значений (для перечислимых текстов) или изменить запрос (для переменных типа Таблица).
Имея такую возможность, насколько я себе представляю, можно делать более динамичные (универсальные) модели конфигурирования продукции. Возможно было бы создать пользовательские формы, например для технологов, где они сами могли указывать какие опции для какой продукции применимы. И эта информация сама попадала бы в конфигуратор без редактирования моделей.
Поправьте меня, если я заблуждаюсь.