Миграция Tech Param Src#
Локальный скрипт модуля MCT. Используется для служебной настройки, миграции, очистки или восстановления данных, связанных с объектами модуля.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Внимание
Скрипт привязан к объектам конкретного модуля и требует проверки на целевой базе. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.
Тип: JEXL-скрипт
//простановка класса источника ссылочных параметров
sql(`
select
tp.id
,case when a.ssystemname = 'id'
then c.id
else ac.id
end as "idRefClass"
from mct_techparameter tp
join btk_class c on tp.idsrcclass = c.id
join btk_attribute a on tp.idsrcattr = a.id
left join btk_class ac on a.srefclass = ac.sname
where tp.stype = 'Ref'
and tp.idsrcattr is not null
and tp.idrefclass is null
`).foreach(function(r){
var rop = Mct_TechParameterApi.load(r.id);
Mct_TechParameterApi.dpi().setidRefClass(rop, r.idRefClass);
});
commit();
//перенос в коллекцию источника значений
sql(`
select
tp.id
,tp.idsrcclass as "idSrcClass"
,tp.idsrcattr as "idSrcAttr"
from mct_techparameter tp
where tp.idsrcattr is not null
and not exists (
select 1 from mct_techparametersrc s
where s.idtechparameter = tp.id
and s.idsrcclass = tp.idsrcclass
and s.idsrcattr = tp.idsrcattr
)
`).foreach(function(r){
Mct_TechParameterSrcApi.register(r.id, r.idSrcClass, r.idSrcAttr);
});
commit();