Обновление Journal

Обновление Journal#

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

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

Внимание

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

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

var nvCount = sql(`
	select 
	count(j.id ) as "nCount"
	from mct_journal j
	join btk_objecttype ot on j.idobjecttype = ot.id 
	where coalesce(cast(j.jobjattrs_dz ->> 'bProcessed' as numeric), 0) = 0
	and ot.scode in ('InitMatList', 'WorkSpSheet', 'PkMatSheet')
	`).asSingle().nCount;
var nvIter = nvCount / 100 + 1;
for (i : (1 .. nvIter)){
	var ropList =  sql(`
		select 
			j.id
		from mct_journal j
		join btk_objecttype ot on j.idobjecttype = ot.id 
		where coalesce(cast(j.jobjattrs_dz ->> 'bProcessed' as numeric), 0) = 0
		and ot.scode in ('InitMatList', 'WorkSpSheet', 'PkMatSheet')
		order by j.id
		limit 100
		`).batchObjLoad(Mct_JournalApi, "id");
	for (rop : ropList){
		Mct_JournalPkg.updateJournal(rop);
		Mct_JournalApi.setAttrValue(rop, "bProcessed", 1B);
	}
	commit();
}