pageInfo=#pageInfo# id="#d.modifier_id#" status=#pageInfo.status# trackOut="tr" idAttributesOut="id" /> select a.login as creator, a.shortname as creator_shortname, m.login as updater, m.shortname as updater_shortname from #pageInfo.entity# e left outer join usr a on (e.creator_id=a.usr_id) left outer join usr m on (e.updater_id=m.usr_id) where e.#pageInfo.key#= select m.modifier_id, c.modifier_class from modifier m left outer join modifier_class c on (m.modifier_class_id=c.modifier_class_id) where m.modifier_id= Характеристика (модификатор) #qDecoration.modifier_class# [#d.modifier_class_id#]: #d.modifier# [#d.modifier_id#]
#status.errorMessage#
Класс характеристики
select modifier_class_id, modifier_class from modifier_class order by 2 />
Характеристика (RUS)
Характеристика (ENG)
Код
Сортировка
Целое число - порядок, в котором Характеристика будет выводиться в списке (или соответствующий Вариант услуги в списке вариантов). Рекомендуется ставить через 100, чтобы потом удобнее было тасовать
Описание
Создано
#dateFormat(d.dt_created,'DD.MM.YYYY')# #timeFormat(d.dt_created,'HH:MM')# #qUsr.creator# (#qUsr.creator_shortname#)       Изменено #dateFormat(d.dt_updated,'DD.MM.YYYY')# #timeFormat(d.dt_updated,'HH:MM')# #qUsr.updater# (#qUsr.updater_shortname#)
select distinct s.service_id ,a.abstract_service_id ,a.code as abstract_service_code ,a.abstract_service ,m.modifier from service s left outer join modifier m on (s.modifier_id=m.modifier_id) left outer join abstract_service a on (s.abstract_service_id=a.abstract_service_id) where s.modifier_id= order by a.code, a.abstract_service

Используется услугами (#qService.recordCount#)

Код услуги Абстрактная услуга Характеристика
#abstract_service_code#.#d.code# #abstract_service# #modifier#

Конкретные услуги (варианты услуги) определяются значением характеристики-модификатора. В тривиальном случае услуга может иметь только один вариант. Разные варианты услуги могут иметь различный состав компонентов (более того, этот состав определяется именно для конкретной услуги), например, в разных кластерах виртуализации может быть доступен разный набор типов дисков.

Один и тот же класс модификатора может применяться к разным абстрактным услугам.

Модификатор может состоять из нескольких переменных, например, система виртуализации + частота процессора. В этом случае в справочник нужно включить все актуальные комбинации