Перейти к основному содержанию
`Ctrl`+`K`

# Миграция 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();