Создание каталогов для библиотечных модулей

Создание каталогов для библиотечных модулей#

Создает каталоги для всех найденных библиотечных модулей 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 + "_Catalog"
	var list = [["002", "Художественная литература", "001", 0.000000000000000000B], ["003", "Проза", "001", 0.000000000000000000B], ["004", "Классическая русская литература", "001", 0.000000000000000000B], ["005", "Публицистика", "001", 0.000000000000000000B], ["006", "Жизнь знаменитых людей", "005", 0.000000000000000000B], ["007", "Деятели культуры и искусства", "006", 0.000000000000000000B], ["001", "Все категории", null, 1.000000000000000000B]];
	var api = Btk_ClassApi.getApiBySimpleClassName(sClassName);
	for (t : list){
		var svCode = t.0;
		var idv = api.findByMnemoCode(svCode);
		if(idv == null){
			var rop = api.insert();
			api.setsCode(rop, svCode);
			api.setsCaption(rop, t.1);
			api.setnImage(rop, t.3);
		}
	}
	commit();
	for (t : list){
		var svCode = t.0;
		var svParentCode = t.2;
		var idv = api.findByMnemoCode(svCode);
		var idvParent = api.findByMnemoCode(svParentCode);
		if(idv != null && idvParent != null){
			var rop = api.load(idv);
			api.setidParent(rop, idvParent);
		}
	}
	commit();
}) ;