Excerpt |
---|
Info |
---|
| В данном разделе есть описание объектов (метдананые, связи со справочниками или между собой, область видимости и определение состояния на основании признаков) - Справочники
- Юрлицо
- Отдел
- Должность
- Физлицо
- Сотрудник
- Тип документа
- Вид Заявления
- МЧД
- Документ
- Заявление
- ЛНАМЧД
|
|
Общая модельная картина
Направление обмена информацией между системами

Info |
---|
|
Информационная Система Клиента (ИСК) передает в HRlink справочники Информационная Система Клиента (ИСК) передает в HRlink документы для КЭДО Оригинальный файл, в соответствии с ограничениями по типу и размеру Метаданные: Данные подписантов, идентификатор, данные документа
Информационная Система Клиента (ИСК) запрашивает обновление состояния документа из HRlink Обновление статуса КЭДО Обновление по файлам: Архив КЭДО, ПФ с оттиском, Файлы подписей
|
Логические связи. Роли, Справочники, Виды подписей

Info |
---|
|
Логин, Пароль, Канал Уведомления, Электронная Подпись - это всё атрибуты ФЛ - У одного ФЛ может быть множество Сотрудников
- Сотрудники могут обладать определённой ролью
- Сотрудники связаны с юрлицом (обязательно), отделом и должностью.
|
Определение видимости для Кадровика

Info |
---|
|
Кадровик видит всех Руководителе (сотрудников, которые обладают ролью “Руководитель ”) Кадровик видит Сотрудников (речь о тех, кто без роли руководитель) на основании единовременного выполнения следующих условий: Сотруднику назначен Отдел, который входит в список доступных для Кадровика отделов (или не привязан ни к одному отделу) Сотруднику оформлен в ЮЛ, которое соответствует Кадровику Пользователь Кадровый специалист обладает Сотрудником в Юрлице и у этого сотрудника есть роль Кадровик. - Кадровику было выдано разрешение на выполнение кадровых процессов в рамках Юрлица.
|
Справочники
Note |
---|
|
Для Интеграции HRlink предоставляет доступ к API в рамках тенанта Клиента. |
Юрлицо
Юрлицо имеет следующий набор данных:
- Наименование
- Полное
- Краткое
- Идентификатор
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Юрлица в ИС Клиента, может быть передан при создании или обновлении
- Реквизиты
- ИНН
- ОГРН
- КПП
- Адрес регистрации и Регион
- Руководитель
- Данные о сотруднике, который будет использоваться при маршрутизации КЭДО и генерации Заявлений по шаблону
- Основание для полномочий
Отдел
Отдел помогает определять область видимости и маршрутизацию КЭДО. имеет следующий набор данных:
- Наименование
- Идентификаторы
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Отдела в ИС Клиента, может быть передан при создании или обновлении
- идентификатор родительского отдела
- Связь с юрлицом (необязательная) - через id HRlink
- Руководитель отдела (необязательный) - используется для маршрутизации КЭДО
Должность
Имеет следующий набор данных:
- Наименование
- Идентификаторы
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Должности в ИС Клиента, может быть передан при создании или обновлении
Физлицо
Пользователь, как человек, имеет следующий набор данных:
- Идентификаторы
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Должности Физлица в ИС Клиента, может быть передан при создании или обновлении
- Данные ФЛ:
- Фамилия, Имя, Отчество
- Пол
- Дата рождения
- Данные о документах: СНИЛС, ИНН, Паспорт
- Данные пользователя
- Логин
- Канал уведомления
- Данные приглашения
- Данные ЭП
- Данные о последнем запросе на выпуск УНЭП
- Данные о текущей ЭП, доступной пользователю
- Связь с Сотрудниками
Роль Администратора может быть назначена на Физлицо.
Сотрудник
имеет следующий набор данных:
- Идентификаторы
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Должности Сотрудника в ИС Клиента, может быть передан при создании или обновлении
- Табельный номер - строгая уникальность в рамках юрлица
- Связь с Юрлицом (обязательно)
- Связь с Отделом
- Связь с Должностью
- Роли: Кадровика, Руководителя, Делопроизводителя, Кастомная роль
- Данные о дате увольнения: может не быть (сотрудник считается работающим), может быть задана как текущее или прошедшее число (сотрудник уже уволен) и быть задана как будущая дата (например, отработка при увольнении)
- Теги - для произвольного группирования
Тип документа
имеет следующий набор данных:
- Наименование
- Идентификаторы
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Должности Типа Документа в ИС Клиента, может быть передан при создании или обновлении
- Код классификатора Минтруда
- Признаки:
- Видимости - активный или скрыт
- Системный или Кастомный
Вид Заявления
имеет следующий набор данных:
- Наименование
- Идентификаторы
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Должности Вида Заявления в ИС Клиента, может быть передан при создании или обновлении
- Признак видимости - активен шаблон заявления или нет
- Данные шаблона
- Файл шаблона
- Набор полей используемых в шаблоне (системных и пользовательских)
- Данные маршрута прохождения Заявления
- Переопределение шаблона для Юрлица
МЧД (Машино Читаемая Доверенность)
Обязательность использования МЧД может быть включена как настройка Тенанта у Клиента. МЧД определяет возможность подписания документов УКЭП от лица Работодателя.
Имеет следующий набор данных:
- Номер, Дату выдачи, Срок действия
- Связь с Юрлицом
- Идентификаторы
- ID - UUID генерируемый HRlink автоматически, обязательно уникален в рамках тенанта
- externalID - идентификатор Должности в ИС Клиента, может быть передан при создании или обновлении
- Полномочия
Документ
Info |
---|
|
Документом в HRlink называется объект, у которого КЭДО направлен от Работодателя к Работнику, т.е. по сути Кадровик Направляет Документ на Подписание. |
Общая схема работы с Документом

Действия доступные над документом, в зависимости от роли
Image Added
Info |
---|
|
Автором документа может быть только Кадровик В документе могут быть следующие роли: Кадровик - автор документа, тот кто может получить состояние документа в любой момент времени (при условии наличия достаточных прав для просмотра документа) Подписант Представитель Работодателя - пользователь, который подписывает документ от имени работодателя Сотрудник - пользователь, который подписывает документ или знакомиться с документом
Наблюдатель - пользователь, который может ознакомиться с документом без подписания только после того, как КЭДО завершен
Видимость документа для Подписантов определяется Прямым указанием Пользователя как участника КЭДО Маршрутом документа и его состоянием Т.е. если документ сперва должен подписать Руководитель и только потом - Сотрудник, то Руководитель его видит сразу после того, как Документ направлен на подписание, Сотрудник видит только после того, как Руководитель подписал документ
Любой участник КЭДО может скачать Архив КЭДО по видимому документу
|
Условия видимости документа
Image Added
Info |
---|
|
- Документ может создать только Кадровик и может указать в нём:
- Тип документа - определяется из Справочника Типов документов, на основании того, какие Типы документов были разрешены Администратором для Кадровика
- ЮЛ - определяется на основании того, по каким ЮЛ у пользователя есть отрудник с ролью Кадровик или по
- Подписанты
В качестве Представителя работодателя, Кадровик может указать любого действующего сотрудника, с ролью Руководитель В качестве Сотрудника/Наблюдателя, Кадровик может указать только тех Пользователей, у которых сотрудники входя в доступные Отделы, разращённые Администратором
Маршрут подписания
Кадровик видит документ только на основании соответствия - Типа документа, Подписантов (хотя бы один должен входить в разрешённый отдел) и ЮЛ Кадровик видит документ без учёта состояния документа и маршрута подписания
Подписанты видят только те документы, в которых были указаны, с учётом маршрута подписания Наблюдатели могут видеть только те документы, в которых были указаны и только по документам у которых завершен КЭДО - Если документ имеет связь с другим Документом/Заявлением - то тот, кто видит Документ со связью может увидеть и тот объект, с которым связь установлена.
- Например, Приказ о выплате создан на основании Заявления о компенсации. Руководитель подписывающий Приказ не был участником КЭДО в Заявлении, но так как Приказ связан с Заявлением, то раз Руководитель видит Приказ, видит связь, то сможет увидеть и Заявление.
|
Архитектурные особенности объекта
Note |
---|
|
Очень важно учитывать поведение документов при отправке с точки зрения externalId (идентификатора в ИС Клиента) - В ряде случаев externalId, указанный при создании, будет сохранён в поле externalId
- В ряде случаев externalId, указанный при создании, перейдёт в поле baseDocumentExternalId
- Частичная отправка на подписание не возможна, если при создании был указана externalId
|
- При создании документа всегда формируется ГРУППА ДОКУМЕНТОВ, в которой может быть 1 или несколько документов.
- При создании документа ему кроме метаданных нужен файл, который будет подписываться, но нужно учесть процедуру конвертации
- Если при создании был передан идентификатор загружаемого файла - то файл будет сконвертирован в PDF/A, т.е. файл который будет участвовать в подписании отличен от того файла, который был загружен.
- Если при создании был передан идентификатор другого документа, прошедшего конвертацию, то будет использоваться сконвертированный ранее файл
- Всегда создаётся объект - ЧЕРНОВИК ДОКУМЕНТА
- после отправки он получает отметку, что был отправлен и имеет признак, что является черновиком. Исключён из выдачи документов в реестре документов.
- Если в документе более 1 Сотрудника (именно Сотрудника, не Участника), то при отправке документ будет размножен.
- Все размноженные документы будут связаны с ЧЕРНОВИКОМ
- Если отправка частичная, то дополнительно формируется ПРОМЕЖУТОЧНЫЙ ЧЕРНОВИК, в котором данные только по тем, кому отправить документ не было возможным. Когда последнему участнику промежуточного черновика будет отправлен документ, промежуточный черновик будет удалён.
- При создании документа, HRlink формирует (ЧЕРНОВИК) с уникальным идентификатором, если при создании (ЧЕРНОВИКА) был передан externalId, то
- Не может существовать двух документов с одним и тем же externalId. Если уже есть черновик с задействованным идентификатором - это заблокирует создание нового с таким же идентификатором.
- Сохранение externalId зависит от размножения:
- Если документ размножается, то externalId переходит в поле baseDocumentExternalId
- Если документ не размножается (т.е. там 1 или 0 сотрудников), то externalId из ЧЕРНОВИКА удаляется и передаётся как externalId в Документ, который формируется при отправке.
- Так как не может быть 2х документов с одним идентификатором и при частичной отправке формируется ПРОМЕЖУТОЧНЫЙ черновик - в случае использования externalId метод частичной отправки не будет работать.
Метаданные и связи
Описание атрибутов документа при создании подробно указаны в API-методе создания
Описание атрибутов документа при получении данных документа подробно указаны в API-методе получения данных документа
Документ имеет связи с некоторым множеством файлов:
- Оригинальный файл, который был загружен (не входит в архив)
- Сконвертированный файл, который подписывался (входит в архив). Можно скачать отдельным методом.
- Печатная Форма (ПФ) с оттиском электронной подписи (входит в архив). Можно скачать отдельным методом.
- Описание электронного документа XML файл (входит в архив)
- Протокол КЭДО (входит в архив, если его скачивает Кадровый специалист)
- Файлы подписей - может быть 1 или несколько файлов. Файл подписи ПЭП Госуслуги представлен в виде zip архива.
- Файл архива КЭДО. Можно скачать отдельным методом. Содержит в себе файлы со 2 до 6ой.
Определение состояния и видимость

Note |
---|
|
На схеме представлено общая логическая модель состояний, однако явным образом статуса в документе нет, есть набор атрибутов, которые позволяют определить состояние Документа. Состояние | Атрибут и значение | Комментарий |
---|
Черновик | document.draft = true
document.baseDocumentId = null
| Чтобы понять что документ черновик, надо смотреть признак черновика или отсутствия связи |
---|
В процессе | document.draft = false
document.deleted = false document.docflowFinishedDate = null
| Документ, который не черновик, не удалён и не имеет даты завершения КЭДО - документ в процессе подписания document.lastSignedDate - дата и время последнего подписания
document.printFormUpdatedDate - дата и время последнего обновления Печатной Формы (ПФ). Если меньше чем дата последнего подписания, то ПФ ещё не содержит в оттиске данных о последнем подписании.
|
---|
Завершён успешно | document.docflowFinishedDate != null
document.signed = true document.deleted = false
| Документ у которого есть дата завершения КЭДО и есть признак о наличии всех подписей и нет отметки об удалении - можно считать документом с успешно завершённым КЭДО |
---|
Завершён отклонением | document.docflowFinishedDate != null
document.rejected = true
| Если у документа есть дата завершения и есть отметка об отклонении - то КЭДО по документу завершён отклонением. |
---|
Удалён | document.deleted = true | документ может быть удалён в произвольный момент: черновик может быть удалён, документ в процессе может быть удалён, документ отклонённый или даже успешно подписанный - может быть удалён. |
---|
|
Заявление
Info |
---|
|
Заявлением в HRlink называется объект, у которого КЭДО направлен от Работника к Работодателю, т.е. по сути Сотрудник Направляет Заявление на Обработку. |
Общая схема работы с Заявлением

Действия доступные над Заявлением
Image Added
Метаданные и связи
Note |
---|
|
Заявление формируется на основании Шаблона, поэтому кроме общей части атрибутов, одно заявление будет отличаться от другого и составом атрибутов, которые заложены в шаблоне. |
..Определение состояния
...
Note |
---|
|
Большая часть событий имеет синхронный формат процесса, однако некоторые из событий являются ассинхронными. Нужно учитывать, что выполнение асинхронных событий может занимать какое-то время, поэтому HRlink в ряде случаев возвращает не ответ на запрос, а некую информацию о процессе. |
ЛНА
Например, в шаблоне заявления на отпуск могут быть кастомные поля "Дата начал отпуска" и "Количество дней отпуска", а в "Заявлении на компенсацию таких полей не будет, зато будет кастомное поле с суммой компенсации. |
Image Added
Определение состояния
Image Added
Note |
---|
|
На схеме представлено общая логическая модель состояний, однако явным образом статуса в Заявлении - нет, есть набор атрибутов, которые позволяют определить состояние. Состояние | Атрибут и значение | Комментарий |
---|
Черновик | applicationGroup.applications[].signers[].signingOrder = 0 | Состояние "Черновик" говорит о том, что первый участник по маршруту еще не подписал заявление. На текущий момент первый участник по маршруту подписания Заявления всегда Сотрудник. |
---|
Ожидает решения согласующего Нужно взять в работу Определён ответственный | applicationGroup.applications[].docflowFinishedDate = null
applicationGroup.applications[].deletedDate = null
applicationGroup.applications[].rejectedDate = null
Дополнительные даты: applicationGroup.applications[].lastSignedDate applicationGroup.applications[].printFormUpdatedDate
| Все три состояния относятся к одному - "В процессе", т.е. Заявление уже подписано Заявителем и отправлено по маршруту, и есть участник маршрута, от которого ожидается совершение какого-то действия. Чтобы понять, у кого из участников заявление находится в работе, необходимо обработать данные в массиве signers[] :
applicationGroup.applications[].signers[] :
_.signingAvailabilityDate - дата и время, когда Заявление стало доступно для обработки участником_.madeDecision - true/false - принято или нет решение по заявлению со стороны участника
_.signedDate - дата и время подписания(согласования) заявления участником
_.rejectedDate - дата и время отклонения заявления участником
- описание этапов прохождения заявления => applicationGroup.applications[].route.stages
lastSignedDate - показывает когда было совершено последнее действие над заявлениемprintFormUpdatedDate = дата последнего обновления печатной формы Заявления. Если обновление после даты последнего подписания, значит ПФ актуальна и содержит информацию о последнем подписании.
|
---|
Обработано | applicationGroup.applications[].docflowFinishedDate != null
applicationGroup.applications[].deletedDate = null
applicationGroup.applications[].rejectedDate = null
| Если у Заявления есть дата и время завершения КЭДО и при этом нет отметок об отклонении или удалении, то обработка заявления успешно завершена. |
---|
Отклонено | applicationGroup.applications[].docflowFinishedDate != null
applicationGroup.applications[].rejectedDate != null
| Если у Заявления есть дата и время завершения КЭДО и есть отметка времени об отклонении, то обработка заявления завершена отклонением. |
---|
Удалено | applicationGroup.applications[].deletedDate != null | Если у Заявления есть дата и время удаления, значит Заявление было удалено Заявителем или Кадровиком. |
---|
|
ЛНА
Info |
---|
|
ЛНА - такой тип документа, который предполагает возможность динамического определения подписантов. Т.е. Кадровик может создать ЛНА, а HRlink постоянно проверяет кому из Сотрудников (на основании ЮЛ, Отдела, Должности и Триггерного события) должен быть направлен ЛНА на ознакомление |
Архитектурные особенности объекта
- ЛНА это не документ, а отдельный объект.
- ЛНА может проходить цепочку с согласованием, тогда в нём появится УКЭП Представителя Работодателя, но может быть направлен на ознакомление Сотрудникам без согласования.
- Сотруднику на ознакомление приходит объект Документ (который формирует HRlink автоматически при выполнении всех условий)
- Сотрудник не может отклонить Документ ЛНА
- Лист Ознакомления у ЛНА фактически это вычисляемое состояние на основании всех связанных Документов ЛНА
- Состояние ЛНА "завершено" фактически не является терминальным, при появлении необходимости ознакомить нового сотрудника - ЛНА перейдёт в состояние "В работе" автоматически.
- При удалении ЛНА будут удалены и все неподписанные Документы ЛНА
Общая схема работы с ЛНА
Image Added
Определение состояния
Image Added
Note |
---|
|
На схеме представлено общая логическая модель состояний, однако явным образом статуса в ЛНА - нет, есть набор атрибутов, которые позволяют определить состояние. Состояние | Атрибут и значение | Комментарий |
---|
Черновик | normativeAct.fileConversionFailedDate = null
normativeAct.sentDate = null
| Нет отметки времени об ошибке конвертации нет даты отправки ЛНА |
---|
Отправляется на подписание | normativeAct.sendToSigningTasks != []
| Список задач на отправку не должен быть пуст |
---|
В процессе | normativeAct.sentDate != null
normativeAct.autoSendEnabled = true
Период действия ЛНА: normativeAct.startDate < текущей даты normativeAct.endDate > текущей даты
| Есть дата отправки Важным может быть понимание - включена автооотправка или нет. На верхнем уровне понимание процесса можно получить из двух цифр: normativeAct.signingInfo.totalCount - Всего сотрудников на подписания ЛНАnormativeAct.signingInfo.currentCount - Текущее число сотрудников подписания ЛНА
ЛНА может обладать сроком действия в виде диапазона даты начала и даты завершения, тогда надо сравнивать границы с текущей датой |
---|
Подписан | normativeAct.deletedDate = null
normativeAct.sentDate != null
Счётчик подписания normativeAct.signingInfo.totalCount - Всего сотрудников на подписания ЛНАnormativeAct.signingInfo.currentCount - Текущее число сотрудников подписания ЛНА
| в целом аналогично состоянию "В процессе", но счётчики должны сойтись на одном числе. |
---|
Удалено | normativeAct.deletedDate != null | есть отметка времени удаления ЛНА |
---|
Ошибка | normativeAct.fileConversionFailedDate != null | есть отметка времени возникновения ошибки конвертации |
---|
|
Общая схема работы с ЛНА