Создание групп авторов для библиотечных модулей#
Создает группы авторов для всех найденных библиотечных модулей lbr__ и выстраивает их иерархию.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Внимание
Скрипт привязан к объектам конкретного модуля и требует проверки на целевой базе. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.
Тип: JEXL-скрипт
sql(`
select regexp_replace(ssystemname, 'lbr', '') as "sNum"
from btk_module bm
where ssystemname like 'lbr__'
`).foreach(function(r){
var sClassName = "Lbr" + r.sNum + "_Author"
var list = [["Group1807", "Зарубежная литература", null], ["Group1902", "Отечественная литература", null], ["Group1806", "Русская литература советского периода", "Group1902"], ["Group1803", "Русская литература 18 века", "Group1902"], ["Group1805", "Русская литература серебряного века (конец 19 - начало 20)", "Group1902"], ["Group1804", "Русская литература золотого века (19 ВЕК)", "Group1902"], ["Top1**", "1** лучших зарубежных автора", "Group1807"]]
var api = Btk_ClassApi.getApiBySimpleClassName(sClassName);
var idvRootGroup = Btk_ClassApi.load(api.idClass()).copyAro().idGroupRoot();
for (t : list){
var svCode = "Lbr" + r.sNum + "_" + t.0;
var idv = Btk_GroupApi.findByMnemoCode(svCode);
if(idv == null){
var rop = Btk_GroupApi.insert();
Btk_GroupApi.setsSystemName(rop, svCode);
Btk_GroupApi.setsCaption(rop, t.1);
}
}
commit();
for (t : list){
var svCode = "Lbr" + r.sNum + "_" + t.0;
var svParentCode = "Lbr" + r.sNum + "_" + t.2;
var idv = Btk_GroupApi.findByMnemoCode(svCode);
var idvParent = Btk_GroupApi.findByMnemoCode(svParentCode);
if(idv != null){
var rop = Btk_GroupApi.load(idv);
if(idvParent != null){
Btk_GroupApi.setidParentGroup(rop, idvParent);
} else {
Btk_GroupApi.setidParentGroup(rop, idvRootGroup);
}
}
}
commit();
}) ;