Модуль импорта сотрудников и оргструктуры для коробочного Битрикс24
 
Модуль импорта сотрудников и оргструктуры для коробочного Битрикс24
26.09.2017 11:26:25
Модули
596
Решение «Модуль импорта сотрудников и оргструктуры» позволяет импортировать данные, описанные в XML-файле, с пользователями и оргструктурой портала, находя учётные записи с помощью поиска по полю XML_ID, логину или ФИО.

Импорт данных о пользователях и оргструктуре посредством этого модуля подразумевает детальную настройку передачи данных с учётом множества параметров.

Решение «Модуль импорта сотрудников и оргструктуры» работает следующим образом: для импорта используется XML-файл, содержащий поля с уникальными идентификаторами пользователей XML_ID, а также поля с логинами и ФИО.

Вы можете настроить поиск пользователей следующим образом:

1. Только по коду XML_ID;

2. Подключить поиск по логину, если не найден XML_ID;

3. Подключить поиск по ФИО, если не найден по логину;

4. Подключить поиск по фамилии и имени, если не найден по полному ФИО.

Если подключены все эти функции поиска, то при запуске импорта проверка проходит сначала по полю XML_ID. Если пользователь с таким значением поля не найден — далее идёт поиск по полю «Логин». Если по логину пользователь тоже не найден, то запускается поиск по ФИО. Если по полному ФИО не найден — идет поиск по фамилии и имени.

Под каким полем записывается идентификатор пользователя XML_ID на портале, можно посмотреть в настройках модуля: НастройкиНастройки продуктаНастройки модулейИнтранетИмпорт — «XML-идентификатор свойства «Учётная запись AD».

Если будет обнаружен пользователь, у которого на портале не прописан код XML_ID, то модуль выполнит поиск этого пользователя в XML-файле по логину или ФИО, сопоставит данные, и на портале ему припишется недостающий идентификатор XML_ID.

Оргструктура может выгружаться в корневой раздел, либо в указанный в настройках департамент (см. ниже — «Владелец»).

Также модуль выгружает график отсутствий на портал. Есть возможность настройки этой выгрузки — оставлять (или нет) активными не распознанные записи графика отсутствий.

Настройки модуля

После установки модуля необходимо настроить его работу для корректного импорта данных. Перед этим необходимо задать список полей, которые будут обновляться.

Перейдите в раздел: Настройки продуктаНастройки модулейИнтранет.

На вкладке «Импорт» в поле «Обновляемые свойства» выберите поля, для которых будет проводиться импорт данных.

По умолчанию поля Логин, Пароль, Email НЕ выбраны. Если нужно, чтобы при импорте данных пользователей эти поля тоже обновлялись, то нужно их выбрать в этом поле.


На этой же вкладке выберите группы пользователей, которым будет разрешена загрузка:


Так как если, например, создавать пользователей только для импорта из 1С:


То в поле выше (Настройки модулей Интранет Импорт) нужно будет добавить группу для импорта, которая создастся в процессе, так как по умолчанию она не указывается в этих настройках.

Далее создайте рабочую директорию модуля импорта (путь от директории /upload/1c_intranet).


Теперь перейдём к настройке модуля «Модуль импорта сотрудников и оргструктуры». Перейдите в раздел Настройки продуктаНастройки модулейМодуль импорта сотрудников и оргструктуры. Отдельно рассмотрим все настройки со вкладок.

Обратите внимание! После внесения изменений в настройках модуля на каждой вкладке, нужно нажать «Применить» или «Сохранить»! То есть сохранять настройки нужно пошагово, после заполнения каждой вкладки. В дальнейшем это будет доработано, чтобы сохранение производилось по всем вкладкам одновременно.

На вкладке «Основные» содержатся следующие настройки:

1. Язык тегов XML файла — выбрать из списка, на каком языке прописаны теги в файле для импорта (ru или en).

2. Создавать пользователя, если не найден — поставьте эту галочку, чтобы пользователь, не найденный на портале, но присутствующий в файле импорта, создался на портале. При снятой галочке новый пользователь создаваться не будет.

3. Деактивировать уволенных пользователей — деактивировать на портале пользователей, которые отмечены в файле для импорта как уволенные.

4. Деактивировать подразделения, не пришедшие с полным импортом — поставьте эту галочку, если хотите, чтобы департаменты (подразделения), не обнаруженные в файле импорта, но найденные на портале, были деактивированы.

5. Деактивировать пользователей, не пришедших с полным импортом (категорически не рекомендуемая настройка) — поставьте эту галочку, если хотите, чтобы пользователи, не обнаруженные в файле импорта, но найденные на портале, были деактивированы (категорически не рекомендуется включать эту настройку).

6. При инициализации очищать папку /upload/1c_intranet рекурсивно — если данный флаг включен, то при обращении извне все подпапки этого каталога будут очищены и сами каталоги также будут удалены, чтобы импорт работал только с актуальной версией файла с данными.

7. Включить логирование в файл? — включить запись выполненных модулем операций в текстовый файл. Файл с логами будет сохранён по адресу: upload/1c_intranet/<указанный в настройках путь> (на вкладке «Пути»).

8. Перемещать (переименовывать) файл после импорта? (игнорируется при локальном импорте) —  если эта галочка поставлена, то при каждом импорте будут создаваться новые файлы логов. Если галочка не проставлена, то логи будут сохраняться только в штатном журнале Битрикса. На вкладке «Пути» также можно указать путь без подстановок (только название, например, import_log.xml), тогда все логи будут записаны в один файл (при каждом импорте новые логи будут записаны в конец файла).

Вкладка «Пути»:

На данной вкладке задаются пути для используемых модулем файлов (файл для импорта, логи). В первом поле задайте рабочую директорию модуля:

1. Рабочая директория модуля импорта (путь от директории /upload/1c_intranet) Все дальнейшие пути задаются относительно неё — по умолчанию будет использована директория /upload/1c_intranet. Обратите внимание, что данную папку нужно создать заранее!

Для заполнения дальнейших полей с шаблонами имён обработанных файлов вы можете использовать следующие подстановки:

#FILE# — полное имя файла

#NAME# — имя файла без расширения

Помимо имени файлов, поля могут также содержать поддиректорию, находящуюся относительно пути указанного выше, для записи данного файла. Допустим, можно сохранять файлы с ошибками в отдельную папку «Errors».

2. Шаблон для успешно импортированного файла — задайте шаблон имени для успешно (без ошибок) импортированного файла.

3. Шаблон для импортированного с ошибками файла — задайте шаблон имени для файла с результатами импорта, во время которого произошли ошибки.

4. Шаблон для файла с ошибками — задайте имя файла для записи ошибок, произошедших во время импорта.

5. Шаблон для поиска файлов импорта (в том числе директории). Допустимые подстановки: #DAY#, #MOUNTH#, #YEAR#. Допустимо, хотя и не рекомендуется, использование регулярных выражений.

Если не использовать подстановки в именах файлов (#FILE#, #NAME# и пр.), при условии выключенного флага «Перемещать (переименовывать) файл после импорта?» на вкладке «Основные», логи будут записаны в один файл (при каждом импорте новые логи будут записаны в конец файла).

Вкладка «Структура»:

1. Пропускать загрузку структуры? — поставьте эту галочку, чтобы при запуске импорта не загружалась полная структура департаментов (рекомендуемая настройка).

2. Пропускать обработку handoff - секций — поставьте эту галочку, чтобы те секции, у которых в XML_ID прописано «handoff», не обновлялись при импорте.

3. XML_ID родительских секций, которые надо изъять из структуры — коды секций, которые не будут выгружаться при импорте. Чтобы добавить ID, нажмите кнопку «добавить» и внесите ID в поле. Можно добавить несколько ID — нажмите еще раз кнопку «добавить», внесите ID.

4. Название тега в структуре пользователя, содержащего теги департаментов, в которых он руководитель (необязательное) — данное поле используется, чтобы привязывать руководителя департамента к собственно департаменту, если привязка прописана не в департаменте (как обычно), а в пользователе.

5. Игнорировать тег Владельца при импорте — если в XML-файле импорта есть тег Владелец, то значение берется оттуда, и в инфоблоке «Оргструктура» ищется подразделение с таким XML_ID. Если совпадения не найдены, то импорт прекращается, если найдены — головное подразделение из файла импорта подвязывается НЕ к головному отделу (обычно это отдел «Моя компания»), а к отделу, который указан как Владелец.

6. Искать пользователей только внутри департамента, указанного как Владелец, и его потомков — если данная галочка включена, то поиск пользователей для импорта будет производиться только внутри департамента, указанного как Владелец и внутри подчинённых ему департаментов.

Владелец указывается в теге Владельца. Рассмотрим подробнее работу с данным тегом.

По умолчанию для импорта департаментов используется, как правило, корневой департамент «Моя компания»:


Если в файле для импорта не заполнен тег «Владелец», то все данные будут загружаться в папку «Моя компания», и вся структура будет подвязана туда.

Если же необходимо загружать структуру в какой-либо другой вложенный департамент, то в файле импорта необходимо задать тег «Владелец»:


На портале для нужного подразделения также необходимо прописать тег Владельца. Для этого выберите нужный раздел, отметьте его галочкой и нажмите «Редактировать»:


В поле «Внешний код» пропишите тег Владельца и нажмите «Сохранить»:


Если поле «Внешний код» скрыто, включите его отображение в настройках:



Для корректного импорта департаментов, тег Владельца должен в точности совпадать — в файле и на портале.

После запуска импорта департаментов вся структура будет привязана к данному Владельцу.

Обратите внимание! При работе с 1С — не все версии 1С могут выгрузить данные с верным Владельцем (используйте эту возможность в версиях 1С:ЗУП выше 3.1).

Вкладка «Пользователи»:

На этой вкладке нужно сопоставить для полей пользователей, которые заполняем в ходе импорта, названия xml-тегов в файле. Например, если мы хотим заполнить фамилию и у нас в файле фамилия хранится внутри таких тегов:


Тогда в настройках для соответствующего поля нужно указать:


Аналогично для других полей/тегов. Например, если в файле рабочий телефон заключён в теге таким образом:


То в настройках указываем так:


Рассмотрим поля настроек данной вкладки:

1. Сопоставлять сотрудников по ФИО — искать пользователей по ФИО. Если выключить данный флаг, то поиск будет производиться по XML_ID и указанному ниже полю с логином.

2. Очищать предыдущий массив департаментов — при включении этой настройки пользователю пропишутся только переданные в текущем импорте департаменты. Если эта настройка не включена, то переданные в текущем импорте департаменты дополнятся к тем, в которых пользователь уже состоит.

3. Искать совпадение по Фамилия плюс Имя, если не найдено по ФИО — если полного совпадения по ФИО не найдено, то модуль запустит поиск только по фамилии и имени.

4. Какое поле использовать для сравнения с логином — введите название поля в файле для импорта, содержащее логины пользователей, по которому будет производиться поиск логина на портале. Если оставить это поле незаполненным, то поиск будет производиться только по XML_ID.

5. Настройки XML-идентификаторов свойства 'Учетная запись' для разных владельцев            XML_ID владельца — для разных Владельцев (департаментов) свойство «Учётная запись» может записываться в разные идентификаторы. Для каждого Владельца можно задать XML_ID поля, сопоставив его с XML_ID поля Логин. Чтобы добавить новую запись соответствия полей, нажмите «Добавить», внесите значения в поля.

6. Название тега, содержащего тип авторизации (необязательное) — в этом поле можно задать тег типа авторизации — например, LDAP#1, LDAP#2, LDAP#3 и т.д.

7. Пароль захеширован? — в файле импорта может передаваться пароль пользователя. Передаваться он может в открытом виде либо в захешированом — в этом случае надо проставить данную галочку в настройках, чтобы Битрикс не захешировал его повторно при импорте.

8. Поле для сохранения даты приема на работу (необязательное) — если необходимо импортировать дату приёма на работу, впишите в данный параметр название поля, куда сохранить следует дату.

9. Группы, для которых не заполнять поле даты приема на работу (через запятую) — если дату приёма нужно импортировать, но не для всех групп пользователей, то укажите группы-исключения в данном параметре через запятую.

Вкладка «График отсутствий»:

1. Оставлять активными не распознанные записи графика отсутствий — если данный флаг включен, то отсутствия, переданные с импортом, будут активными на портале, даже если они не распознаны в файле.

Вкладка «Локальный импорт»:

Локальный импорт используется для автоматического запуска импорта агентом.

1. Включить локальный импорт — поставьте эту галочку, чтобы активировать возможность автоматического запуска импорта с помощью агента модуля.

2. Включить отладочное логирование при локальном импорте — включить запись выполненных модулем операций в текстовый файл.

Запуск импорта с помощью агента.

1. В настройках модуля на вкладке «Локальный импорт» включите галочку «Включить локальный импорт».

2. В настройках модуля на вкладке «Пути», нижний раздел «Пути локального импорта», заполните поле «Шаблон для поиска файлов импорта (в том числе директории)» для поиска XML-файла.

3. Допустим, в папку /upload/1c_intranet/ загружен файл для импорта user-import-20180511.xml. Тогда путь для поиска на вкладке «Пути» можно задать так:


4. Далее, модуль будет раз в сутки запускать импорт по шагам при наличии файла по указанному пути, а информация о результатах будет записана в файл с логами.

Загрузка...