Миграция Tech Param Src

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