Обновление WS Journal#
Локальный скрипт модуля MCT. Используется для служебной настройки, миграции, очистки или восстановления данных, связанных с объектами модуля.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Внимание
Скрипт привязан к объектам конкретного модуля и требует проверки на целевой базе. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.
Тип: JEXL-скрипт
var nvCount = sql(`
with states as (
select
cast(jsonb_array_elements(jWSJournalFillState) as bigint) as id
from mct_setting ms
)
,ws as (
select
ws.gid
from mct_workstructure ws
join states s on ws.idstate = s.id
join Mct_WrkStructSet wss on ws.idPostype = wss.idpostype
join mct_workstructuregds wsg on wsg.gidSrc = ws.gid
where coalesce(ws.bImpExtSystem, 0) = 0
and wss.bFillMaterialJournal = 1
--and not exists (select 1 from mct_materiallistSrc mls where mls.gidsrc = wsg.gid)
group by ws.gid
)
select count(*) as "nCount" from ws
`).asSingle().nCount;
var nvIter = nvCount / 100 + 1;
for (i : (1 .. nvIter)){
var nvOffset = (i-1) * 100
var sel = sql(`
with states as (
select
cast(jsonb_array_elements(jWSJournalFillState) as bigint) as id
from mct_setting ms
)
select
ws.id
,ws.gid
from mct_workstructure ws
join states s on ws.idstate = s.id
join Mct_WrkStructSet wss on ws.idPostype = wss.idpostype
join mct_workstructuregds wsg on wsg.gidSrc = ws.gid
where coalesce(ws.bImpExtSystem, 0) = 0
and wss.bFillMaterialJournal = 1
group by ws.id
order by ws.id
`
+ "offset " + nvOffset + " limit 100")
sel.batchObjLoad(Mct_WorkStructureApi, "id");
sel.foreach(function(r){
Mct_JournalPkg.fillByWorkStructure(r.gid, true);
});
commit();
}