Управление учебным процессом ВУЗа  (18.04.2024)
Синхронизация справочника "Подразделения"

Синхронизацию справочника Подразделения можно вызвать в форме Подразделения, здания, аудиторный фонд на вкладке Все подразделения вуза. В контекстном меню (щелчок правой кнопкой мыши) расположена группа действий Синхронизация с кадровой ИС, включающая два действия Первичная загрузка и Синхронизация. Первичную синхронизацию справочника можно провести вручную, указав для каждого подразделения в справочнике подразделений его код в кадровой ИС.

БОСС, синхронизация подразделений

В качестве параметра процедуры запрашивают файл выгрузки из кадровой ИС в формате MS Excel. Выбор файла осуществляется при помощи стандартного диалога открытия файла MS Windows.

Процедура первичной синхронизации предназначена для обнаружения случаев, когда подразделения, ранее не найденные при синхронизации или имеющие результат синхронизации Не синхронизировать, появились в выгрузке данных о подразделениях из кадровой ИС. Для подразделений, имеющих результат Не синхронизировать изменений в данных процедура не выполняет, она только информирует пользователя о том, что ряд подразделений теперь можно считать синхронизированными. Окончательное решение о синхронизации пользователь должен принять самостоятельно и выставить соответствующий результат синхронизации вручную. Процедура работает по следующему алгоритму:

  1. Для каждой записи файла-источника производится поиск подразделения в справочнике Все подразделения ВУЗа по наименованию и идентификатору родительского подразделения. Если подразделение найдено и у него не установлено значение свойства Идентификатор в кадровой ИС, то в зависимости от значения свойства Результат последней синхронизации будет выполнено одно из следующих действий:
    • Если Результат последней синхронизации равен Не найдено, то для подразделения будет установлено значение Идентификатор в кадровой ИС, Результат последней синхронизации равен Синхронизировано, также будут проставлены дополнительные свойства подразделения.
    • Если Результат последней синхронизации равен Не синхронизировать, то никаких действий над данными системы произведено не будет, но в протоколе будет сделана запись о том, что найдено подразделение из числа не подлежащих синхронизации, а также информация о значениях свойств, которые могут быть обновлены.
  2. По завершении обработки всех данных файла ряд подразделений, ранее считавшихся не найденными, будет синхронизировано. В случаях, когда в исходном файле были обнаружены подразделения, не подлежащие синхронизации, об этом будут сделаны записи в протоколе.

Процедура синхронизации реализуется по следующему алгоритму:

  1. Для всех подразделений, существующих в справочнике Все подразделения ВУЗа, устанавливается Дата последней синхронизации, равная текущей дате, и Результат последней синхронизации, равный Не найдено.
  2. Для каждой записи файла выгрузки из кадровой ИС системой выполняется поиск подразделения в справочнике системы по его Идентификатору в кадровой ИС. Возможные результаты поиска обрабатываются следующим образом:
    • В случае удачного поиска проверяется совпадение поля Идентификатор родительского подразделения в кадровой ИС. Если идентификатор родителя совпадает, то следующие поля перезаписываются из кадровой ИС:
      • Дата закрытия подразделения
      • Имя
      • Наименование
      • Наименование в винительном падеже
      • Наименование в предложном падеже
      • Наименование в творительном падеже
      • Наименование в родительном падеже
      • Признак типа подразделения
      В поле Результат последней синхронизации устанавливается значение Синхронизировано.
    • Если идентификатор родителя не совпадает, тогда система производит поиск записи в таблице Все подразделения ВУЗа со значением Идентификатор подразделения в кадровой ИС, совпадающим с искомым полем Идентификатор родительского подразделения в кадровой ИС.
    • Если найден родитель, производится запись нового значения Идентификатор родительского подразделения в кадровой ИС и меняется поле Родитель для этого подразделения в справочнике подразделений. В поле Результат последней синхронизации заносится значение Синхронизировано.
    • Если родитель не найден, тогда в поле Результат последней синхронизации заносится значение Найдены расхождения.
    • Если система не нашла запись с указанным идентификатором подразделения в кадровой ИС, тогда система производит поиск записи в таблице подразделений со значением Идентификатор подразделения в кадровой ИС, совпадающим с искомым полем Идентификатор родительского подразделения в кадровой ИС.
    • Если найден родитель, то система добавляет новую запись в таблицу Все подразделения ВУЗа, входящую в найденное родительское подразделение. В поле Результат последней синхронизации заносится значение Добавлено.
    • Если родитель не найден, то система добавляет запись в таблицу Все подразделения ВУЗа без привязки к родителю. В поле Результат последней синхронизации заносится значение Найдены расхождения.

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

Пользователь, выполняющий процедуру синхронизации, сможет средствами системы отобрать подразделения, для которых установлен тот или иной результат синхронизации и скорректировать данные вручную. В случае устранения всех расхождений пользователь сможет вручную установить значение поля Результат последней синхронизации.

По итогам анализа протокола может быть выявлен ряд подразделений, которые должны присутствовать в справочнике Все подразделения вуза, но не заведены в кадровой ИС. Для того, чтобы при последующих синхронизациях записи о таких подразделениях на обрабатывались, для них можно вручную выставить Результат последней синхронизации, равный Не синхронизировать.