События пользователей --------------------- Данные события генерируются для каждого из нижеописанных случаев изменения *данных пользователей*: * ``event.users.account.change`` Изменение данных полей *первичной карточки* пользователя, т.е. параметров его учётной записи: * Фамилия * Имя * Отчество * Логин * Код для показателей * e-mail * JID * Личная папка пользователя * ``event.users.formdata.change`` Изменение данных *карточек пользователей* на основе *форм*, ассоциированных с ним посредством функциональности «Отдел кадров». Для данного события передаются следующие данные: * ``userID`` - идентификатор пользователя * ``formUUID`` - идентификатор формы карточки пользователя * ``dataUUID`` - идентификатор данных по форме * ``event.users.account.add`` Добавление новой записи учётной записи пользователя (и связанными с ней файлами по формам «отдела кадров») * ``event.users.account.delete`` Удаление (пометка «удалённые») учётной записи пользователя (и связанных с ней файлов по формам «отдела кадров») * ``event.users.contactdata.change`` Изменение «контактных данных» пользователя — изменение/добавление записей раздела «Контакты» профиля пользователя (модуль «Сотрудники») следующих типов: * Skype * Рабочий телефон * XMPP * Адрес * Мобильный телефон * Почта * Телефон Для всех событий типа ``event.users.*`` передаваемые данные — идентификатор пользователя Synergy. События должностей ------------------ Данные события генерируются для каждого из нижеописанных случаев c *должностями*: * ``event.orgstructure.position.add`` Добавление новой должности * ``event.orgstructure.position.change`` Изменение данных должности - добавление/изменение/удаление следующей информации: * Общее: * Название должности (на трех языках) * Код для показателей * Подразделение * Шифр * Необходимое количество штатных единиц * Тип назначения целей * Номер * Управление модулями * Показатели - статус активности * ``event.orgstructure.position.formdata.change`` Изменение данных *карточки должности* на основе *формы*, ассоциированной с ней посредством функциональности «Отдел кадров». Для данного события передаются следующие данные: * ``positionID`` - идентификатор должности * ``assistantID`` - идентификатор заместителя, передается только при изменении данных карточки заместителя * ``formUUID`` - идентификатор формы карточки должности * ``dataUUID`` - идентификатор данных по форме * ``event.orgstructure.position.delete`` Удаление должности Для всех событий типа ``event.orgstructure.position.*`` передаваемые данные - идентификатор должности ``Synergy``. События подразделений --------------------- Данные события генерируются для каждого из нижеописанных случаев c *подразделениями*: * ``event.orgstructure.department.add`` Добавление нового департамента * ``event.orgstructure.department.change`` Изменение данных подразделения - добавление/изменение/удаление следующей информации: * Общее: * Информация о подразделении: * Название (на трех языках) * Номер * Код для показателей * Родительское подразделение (для всех узлов, кроме корневого) * Удаленный филиал * Информация о руководителе подразделения: * Название должности (на трех языках) * Тип назначения целей * Руководитель * И.О. руководителя * Заместители: * Название (на трех языках) * Номер * Пользователь * Подразделения, в которых данный пользователь будет выполнять обязанности заместителя * Управление модулями * Показатели - статус активности * Права на дела: * Наследовать права от родительского подразделения * Дело * Тип документа .. note:: Ввиду особенностей реализации при сохранении подразделения отдельно сохраняется его карточка, отдельно - заместители. Таким образом, в данном случае событие ``event.orgstructure.department.change`` будет отправлено дважды, а при изменении заместителей через метод API ``rest/api/positions/assistant/save`` - единожды. * ``event.orgstructure.department.formdata.change`` Изменение данных *карточки подразделения* на основе *формы*, ассоциированной с ней посредством функциональности «Отдел кадров». Для данного события передаются следующие данные: * ``departmentID`` - идентификатор подразделения * ``formUUID`` - идентификатор формы карточки подразделения * ``dataUUID`` - идентификатор данных по форме * ``event.orgstructure.department.delete`` Удаление подразделения Для всех событий типа ``event.orgstructure.department.*`` передаваемые данные - идентификатор подразделения `Synergy`. События реестров ---------------- Событие для реестра не генерируются самостоятельно и не имеют предопределенных названий. Для того, чтобы для реестра было сгенерировано событие, необходимо в процесс активации / изменения / удаления реестра добавить процесс «Событие реестра» и указать в поле «Название» его название. Название события должно начинаться со строки ``event.registries.formdata.``. Для различных событий и для различных реестров могут быть указаны разные либо одинаковые названия событий в зависимости от целей решаемой задачи. .. figure:: ../_static/img/integration/registries-event.png :scale: 68% Процесс «Событие реестра» События адресной книги ---------------------- Объекты адресной книги (люди, организации) могут генерировать следующие события: * ``event.addressbook.contact.add`` Добавление нового контакта адресной книги * ``event.addressbook.contact.change`` Изменение данных контакта адресной книги: добавление / изменение / удаление записей карточки контакта. Событие генерируется при изменении: * данных в дополнительной карточке * данных в стандартной карточке: - «Люди»: ФИО, дата рождения, изображение, телефон, мобильный, e-mail, адрес, IM, URL, место работы, примечание, ключевые слова, поля дополнительной карточки, а также доступность контакта - «Организации»: название, изображение, сайт, адрес, телефон, мобильный, e-mail, поля дополнительной карточки, а также доступность контакта * ``event.addressbook.contact.change`` Изменение данных контакта адресной книги * ``event.addressbook.contact.delete`` Удаление контакта адресной книги Для всех событий типа ``event.addressbook.contact.*`` передаваемые данные - это идентификатор контакта адресной книги Synergy. События работ ------------- * ``event.workflow.work.create`` Создание работы * ``event.workflow.work.change`` Изменение следующих параметров работы: - название - нагрузка - приоритет - сроки - ключевые слова - повторение - форма завершения - прогресс * ``event.workflow.work.completion`` Фактическое завершение работы * ``event.workflow.work.expired`` Работа просрочилась * ``event.workflow.work.delete`` Удаление работы .. note:: При добавлении/изменении/удалении комментария к работе, аналогичное событие для документов в очередь не добавляется. Для события ``event.workflow.work.expired`` используется системная настройка «Интервал проверки работ на просроченность (в минутах)» (Конфигуратор -> Настройки системы -> Параметры уведомлений) Минимальный набор передаваемых данных для всех событий типа ``event.workflow.work.*``: * идентификатор работы Если работа запускается по реестру, то также обязательно передаются: * идентификатор данных по форме записи реестра (свойство с ключом ``dataUUID``) * идентификатор документа реестра (свойство с ключом ``documentID``) В случае, если генерируется любое событие по работе, порожденной мероприятием проекта, в свойствах сообщения (ключ ArrangementID) передается идентификатор этого мероприятия (``ParentID``). Для работ по процессу «работа по форме» (вызванного как непосредственно из маршрута реестра, так и из шаблона маршрута), кроме всего прочего, также передаются данные из дополнительных полей, настроенных непосредственно в самом процессе «работа по форме». События по проектам ------------------- * ``event.projects.arrangement.create`` Создание мероприятия проекта * ``event.projects.arrangement.delete`` Удаление мероприятия проекта * ``event.projects.arrangement.restore`` Восстановление мероприятия проекта * ``event.projects.arrangement.responsibles`` Фактическое изменение списка ответственных за мероприятие проекта .. note:: Событие изменения списка ответственных не включает случаи, когда выбранному ответственному создается работа-запрос стать ответственным и когда он отказывает в этом запросе. Таким образом, учитывается только фактическое назначение ответственного за мероприятие проекта. * ``event.projects.arrangement.progress`` Выставление прогресса мероприятия Минимальный набор передаваемых данных для всех событий типа ``event.projects.arrangement.*`` - это идентификатор мероприятия проекта. События по документам --------------------- * ``event.docflow.document.register`` Регистрация документа в журнале Минимальный набор передаваемых данных в сообщении для события ``event.docflow.document.register`` - идентификатор документа. В свойствах сообщения (ключ ``registerID``) передаётся идентификатор журнала. * ``event.docflow.document.opened`` - открытие документа (генерируется только из UI Synergy): - ``documentID`` - идентификатор документа; - ``userID`` - идентификатор пользователя, сохранившего данные по форме; - ``date`` - дата и время открытия документа; * ``event.docflow.document.closed`` - закрытие документа (генерируется только из UI Synergy): - ``documentID`` - идентификатор документа; - ``userID`` - идентификатор пользователя, сохранившего данные по форме; - ``date`` - дата и время открытия документа. События по формам ----------------- * ``event.form.formdata.change`` Создание и сохранение данных по форме Минимальный набор передаваемых данных в сообщении для события ``event.form.formdata.change``: * ``dataUUID`` - идентификатор данных по форме; * ``formID`` - идентификатор формы; * ``formCode`` - код формы; * ``registryCode`` - код реестра, если данные формы по реестру; * ``userID`` - идентификатор пользователя, сохранившего данные по форме; * ``isNew`` - сохранены ли данные: * true - новые; * false - существующие. В свойствах сообщения (ключ ``dataUUID``) также передаётся идентификатор данных по форме. События комментариев -------------------- Данные события генерируются для каждого из нижеописанных случаев: **Комментарии к работе** * ``event.comment.work.add`` Добавление нового комментария к работе * ``event.comment.work.change`` Изменение комментария к работе * ``event.comment.work.delete`` Удаление комментария к работе .. note:: При добавлении/изменении/удалении комментария к работе, аналогичное событие для документов в очередь не добавляется. **Комментарии к документу** * ``event.comment.document.add`` Добавление нового комментария к документу * ``event.comment.document.change`` Изменение комментария к документу * ``event.comment.document.delete`` Удаление комментария к документу **Личные комментарии** * ``event.comment.personal.add`` Добавление нового личного комментария * ``event.comment.personal.change`` Изменение личного комментария * ``event.comment.personal.delete`` Удаление личного комментария **Комментарии к проекту/мероприятию** * ``event.comment.action.add`` Добавление нового комментария к мероприятию проекта * ``event.comment.action.change`` Изменение комментария к мероприятию проекта * ``event.comment.action.delete`` Удаление комментария к мероприятию проекта Для всех событий типа ``event.comment.*`` передаваемые данные зависят от типа комментария и выглядят следующим образом: * Комментарий к работе: * идентификатор комментария (свойство с ключом ``message text``) * идентификатор автора комментария (свойство с ключом ``userID``) * идентификатор документа (свойство с ключом ``documentID``) * идентификатор работы (свойство с ключом ``actionID``) * Комментарий к документу: * идентификатор комментария (свойство с ключом ``message text``) * идентификатор автора комментария (свойство с ключом ``userID``) * идентификатор документа (свойство с ключом ``documentID``) * Личный комментарий: * идентификатор комментария (свойство с ключом ``message text``) * идентификатор автора комментария (свойство с ключом ``userID``) * идентификатор документа (свойство с ключом ``documentID``) * идентификатор работы (свойство с ключом ``actionID``) * Комментарий к мероприятию: * идентификатор комментария (свойство с ключом ``message text``) * идентификатор автора комментария (свойство с ключом ``userID``) * идентификатор проекта (свойство с ключом ``projectID``) * идентификатор мероприятия (свойство с ключом ``actionID``) .. note:: В случае, если объектом события является комментарий к проекту, то параметры ``projectID`` и ``actionID`` будут равны. Генерация произвольных событий ------------------------------ В ARTA Synergy имеется метод API, позволяет генерировать произвольные события. URL метода: ``rest/api/events/create``. Тип запроса: ``POST``. Метод принимает следующие обязательные параметры: * ``eventName`` - название события (строка); * ``eventMsg`` - произвольный json (строка). В случае успешного выполнения метода сервер вернет сообщение «Событие успешно сгенерировано». *Пример:* Событие, генерируемое мобильным клиентом по координатам GPS:: eventName=event.ext.gps&eventMsg={\"lat\":333.333,\"lon\":222.222}