Обновление Sfi Struct#
Локальный скрипт модуля MCT. Используется для служебной настройки, миграции, очистки или восстановления данных, связанных с объектами модуля.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Внимание
Скрипт привязан к объектам конкретного модуля и требует проверки на целевой базе. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.
Тип: JEXL-скрипт
sql(`
select
pv.id as "id"
from bs_prj p
join bs_prjver pv on pv.idproj = p.id
where sCDClassifier = 'SFI'
and exists (
select 1
from mct_document d
where d.idprjver = pv.id
and d.gidlastverinuse is not null
)
order by pv.id
`).foreach(function(r){
var nvCount = sql(`
select count(*) as "nCount"
from mct_specification s
join mct_document d on s.gid = d.gidref
where s.idprjver = `+r.id+`
and d.gidlastverinuse is not null
`).asSingle().nCount;
var nvIter = nvCount / 200 + 1;
for (i : (1 .. nvIter)){
var nvOffset = (i-1) * 200
sql(`
select s.gid as "gid"
from mct_specification s
join mct_document d on s.gid = d.gidref
where s.idprjver = `+r.id+`
and d.gidlastverinuse is not null
order by s.id
`
+ "offset " + nvOffset + " limit 200").foreach(function(f){
flush();
Mct_StructureGenPkg.updateStructureByDoc(f.gid, Mct_StructViewTypeApi.idSFI());
});
commit();
}
});