Обновление 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();
}