Обновление Res Tech Proc

Обновление Res Tech Proc#

Локальный скрипт модуля MCT. Используется для служебной настройки, миграции, очистки или восстановления данных, связанных с объектами модуля.

Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт

Внимание

Скрипт привязан к объектам конкретного модуля и требует проверки на целевой базе. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.

Тип: JEXL-скрипт

var nvCount = sql(`
	select count(*) as "nCount" 
	from (
		select tpv.id 
		from mct_techProc tp 
		join btk_objectType ot on tp.idObjectType = ot.id 
		join Btk_SubClass sc on ot.idsubclass = sc.id 
		join mct_techProcVer tpv on (tpv.idmctdocument = tp.id and tpv.bislast = 1 and tpv.idstatemc = 300)
		where sc.scode = 'Mct_TechProc_UnitProduct'
		and exists (
			select 1 
			from mct_techproclist tpl 
			join mct_techproclistnorm tpln on tpl.id = tpln.idtechproclist
			join mct_techprocnorm tpn on tpln.idtechprocnorm = tpn.id 
			where tpl.idtechprocver = tpv.id 
			and tpn.idresource is not null 
			)
	) t 
	`).asSingle().nCount;
var nvIter = nvCount / 300 + 1;
for (i : (1 .. nvIter)){
	var ropList =  sql(`
		select tpv.id 
		from mct_techProc tp 
		join btk_objectType ot on tp.idObjectType = ot.id 
		join Btk_SubClass sc on ot.idsubclass = sc.id 
		join mct_techProcVer tpv on (tpv.idmctdocument = tp.id and tpv.bislast = 1 and tpv.idstatemc = 300)
		where sc.scode = 'Mct_TechProc_UnitProduct'
		and exists (
			select 1 
			from mct_techproclist tpl 
			join mct_techproclistnorm tpln on tpl.id = tpln.idtechproclist
			join mct_techprocnorm tpn on tpln.idtechprocnorm = tpn.id 
			where tpl.idtechprocver = tpv.id 
			and tpn.idresource is not null 
			)
		order by tpv.id
		`
		+ " limit 300 offset " + ((i-1) * 300)).batchObjLoad(Mct_TechProcVerApi, "id");
	for (rop : ropList){
		Mct_TechProcApi.registerResTechProc(rop);
	}
	commit();
}