![]() v10.25 (build: Aug 22 2024) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Утилита синхронизации данных из файловУтилита stcsvsync выполняет преобразование данных из .csv-таблиц в SQL-скрипт с целью дальнейшей синхронизации настроек комплекса.Скачать утилиту можно здесь
Общие положения
Входные данные должны быть представлены как .csv (разделитель - точка с запятой ";") в мультибайтовой кодировке UTF-8. Важно: при экспорте, MS Excel ошибочно сообщает, что разделитель "запятая", но на самом деле, разделителем будет поддерживаемая "точка с запятой".Выходные данные будут также представлены в кодировке UTF-8. Вы можете указывать расширение .sql для выходных файлов в форматах MSSQL, PGSQL. Сообщения об ошибках и предупреждениях направляются в STDERR, выходные данные без указания выходного файла - в STDOUT. Совет: если вы только начинаете работать с утилитой, не используйте сразу параметры [-of -o]. Так вы сможете получить визуализированный результат на экране, и провести оценку работы алгоритма и верность получаемых данных. Универсальные параметры командной строки
-i [--input] - входной файл. Без этого параметра основной функционал программы будет недоступен. -o [--output] - выходной файл. Если данный параметр не указан, выходные данные будут отображаться в терминале. -of [--output-format] - выходной формат данных. TEXT по-умолчанию, MSSQL, PGSQL. -t [--type] - тип алгоритма преобразования данных. D - Досье, H - Иерархия, P - СКУД, S - Субординация, V - Отпуска. -tt [--template] - получить .csv файл шаблон для указанного алгоритма [--type]. Например, так можно получить шаблон для построения структуры организации: > stcsvsync -t H -tt id;parent;name;[user;[NB_domain]];[computer;[FQ_domain]] Получить шаблон для заполнения данных о сотрудниках в виде .csv файла > stcsvsync -t D -tt -o dos_template.csv user;[NB_domain];[fio];[department];[contacts];[profile] Полный список ключей командной строки
Построение структуры организации
(описание соотв. страницы в "Глобальных настройках": здесь)
Обратите внимание: генерируемый SQL-скрипт сначала очистит существующие данные об иерархии, и после загрузит обновленные данные! Узлами иерархии могут выступать каталоги, представляющие группы (отделы), пользователи и компьютеры. На основе одних и тех же данных, вы можете построить различные варианты иерархии:
> stcsvsync -i example.csv -t H -ci A -cp B -cn C > stcsvsync -i example.csv -t H -ci A -cp B -cn C -cu D -cnb E > stcsvsync -i example.csv -t H -ci A -cp B -cn C -cc F -cfq G > stcsvsync -i example.csv -t H -ci A -cp B -cn C -cu D -cnb E -cc F -cfq G Пример полностью построенной иерархии на основе исходной таблицы > stcsvsync -i example.csv -t H -ci A -cp B -cn C -cu D -cnb E -cc F -cfq G
Строки 2-6 строят только иерархию групп (отделов) Обратите внимание на различный результат работы строк 9 и 10: 13 строка показывает возможность передачи доменного имени вместе с именами пользователя и компьютера Права наблюдения за сотрудниками
(описание соотв. страницы в "Глобальных настройках": здесь)
Утилита ожидает, что в настройках существует пользователь-шаблон, права которого будут скопированы при создании новых пользователей. Обратите внимание: > stcsvsync -i example.csv -t S -ci A -cp B -cn C -cu D -cnb E -cb H -dbu template_user user8 имеет возможность наблюдать за группой Department 1 и её подчинёнными группами и пользователями находящимся в них Вы можете изменить данное поведение указав параметр [--no-depth] > stcsvsync -i example.csv -t S -ci A -cp B -cn C -cu D -cnb E -cb H -nd -dbu template_user user8 наблюдает за user8 Заполнение данных о сотрудниках
(описание соотв. страницы в "Глобальных настройках": здесь)
Таблица userinfo.csv
Командная строка: > stcsvsync -i userinfo.csv -t D -cu A -cnb B -cf "%D %C" -cd E -ct "%F, %G" -cpr "profile1" Для ФИО [--column-fio] указана формула "%D %C". Понимается следующим образом: значение в 4 столбце, пробел, значение в 3 столбце. Отдел [--column-department] указан номер колонки E (5). Вариант с формулой "%E" даст такой же результат. Контакты [--column-contacts] формула "%F, %G". Значение в 6 столбце, запятая, пробел, значение в 7 столбце. Профиль [--column-contacts] константа "profile1" Результирующий вывод: COMPANY\user6 FIO: Audrey Morgan Department: sales Contacts: audrey@company.com, 111-222-33-49 Profile: profile1 COMPANY\user8 FIO: Bennett Ross Department: management Contacts: bennett@company.com, 111-222-33-51 Profile: profile1 COMPANY\user9 FIO: Ella Groves Department: management Contacts: ella@company.com, 111-222-33-52 Profile: profile1 COMPANY\user3 FIO: Harry Harrison Department: it Contacts: harry@company.com, 111-222-33-46 Profile: profile1 COMPANY\user2 FIO: Jane White Department: it Contacts: jane@company.com, 111-222-33-45 Profile: profile1 COMPANY\user1 FIO: John Smith Department: it Contacts: john@company.com, 111-222-33-44 Profile: profile1 COMPANY\user5 FIO: Miles Davis Department: sales Contacts: miles@company.com, 111-222-33-48 Profile: profile1 COMPANY\user4 FIO: Oscar Robbins Department: management Contacts: oscar@company.com, 111-222-33-47 Profile: profile1 COMPANY\user7 FIO: William Jones Department: sales Contacts: william@company.com, 111-222-33-50 Profile: profile1 Заполнение данных об отпусках/больничных
(описание соотв. страницы в "Глобальных настройках": здесь)
Обратите внимание: генерируемый SQL-скрипт сначала очистит таблицу с данными персональных отпусков/больничных, и после загрузит обновленные данные! Данный функционал не ограничен только отпусками. Подобным образом предполагается задавать любые обоснованные периоды отсутствия сотрудника. В отчётах данные периоды не будут трактоваться как прогулы и отсутствие на рабочем месте. Таблица vacations.csv
Командная строка: > stcsvsync -i vacations.csv -t V -cu 1 -cvb 2 -cve 3 -cvr 4 DOMAIN\j.smith: [2024-01-07 (1) 2024-01-17] [2024-01-19 (1) 2024-01-21] [2024-01-25 (1) 2024-02-12] DOMAIN\w.johnes: [2024-02-01 (2) 2024-02-17] DOMAIN\robbins: [2024-02-12 (3) 2024-02-28] Имя пользователя [--column-user], дата начала [--column-value-begin] являются обязательными Дата окончания [--column-value-end] может быть не указана (будет восприниматься идентичной дате начала) Причина отсутствия [--column-value-reason] принимает целочисленные значения, а если указанное значение не удается преобразовать в число, то код причины будет записан в базу как 0. Даты могут быть заданы в форматах: dd.mm.yyyy, dd/mm/yyyy, dd-mm-yyyy, yyyy-mm-dd, yyyymmdd. (Здесь: dd - день месяца, mm - месяц, yyyy - год) В тех отчетах комплекса, где выводится причина отсутствия, некоторые коды имеют буквенные эквиваленты. Вы можете подобрать подходящие значения или использовать любые произвольные. 7 :'КР', 10:'К', 14:'ОТ', 15:'ОД', 16:'У', 17:'УЧ', 18:'УД', 19:'Р', 20:'ОЧ', 21:'ОЖ', 22:'ДО', 23:'ОА', 24:'ОЗ', 25:'Б', 26:'Т', 27:'ОВ', 28:'НВ', 29:'Г', 30:'НБ', 32:'НС', 33:'В', 34:'ЗБ', 37:'Д' Важно: возможные наложения (перекрытия) периодов для пользователя будут объединены, и не являются проблемой! Импорт данных СКУД (Системы Контроля и Управления Доступом)
Обратите внимание: генерируемый SQL-скрипт не будет очищать таблицу с данными СКУД, т.к. предполагаются последовательные сеансы импорта данных. Если при импорте произошла ошибка, обратитесь к администратору БД для удаления только последних данных (за импортируемый период и по импортируемым пользователям). Таблица pacs.csv
Командная строка: > stcsvsync -i pacs.csv -t V -cu 1 -cvb 2 -cve 3 DOMAIN\j.smith: [2024-01-15 09:00:00 - 2024-01-15 18:00:00] 9h [2024-01-16 09:00:00 - 2024-01-16 18:00:00] 9h [2024-01-17 00:00:00 - 2024-01-17 18:00:00] 18h [2024-01-21 09:00:00 - 2024-01-21 18:00:00] 9h DOMAIN\w.johnes: [2024-01-22 08:00:00 - 2024-01-22 17:00:00] 9h DOMAIN\robbins: [2024-01-22 08:00:00 - 2024-01-22 17:00:00] 9h Имя пользователя [--column-user], дата начала (входа) [--column-value-begin], дата окончания (выхода) [--column-value-end] являются обязательными Запуск полученных SQL-скриптов
Запуск можно осуществлять любыми доступными средствами. > sqlcmd -d stkh -i script.sql -o output.txt -U dbadmin -P "*******" > sqlcmd -d stkh -i script.sql -o output.txtПример для PGSQL-утилиты psql: > psql -d stkh -f script.sql -o output.txt -U postgres Внимание! После успешного выполнения SQL-скрипта синхронизации подчиненности (субординации) необходимо запустить "Мастер конфигурации БД" (он добавит созданных пользователей к БД и назначит им права) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© СТАХАНОВЕЦ |