1 Последовательность настройки
Перед началом работы
с функционалом настройки автоматической отправки уведомления
в личный кабинет ЕПГУ о сроке окончания действия разрешения через
интеграционное взаимодействие с государственной электронной почтовой системой необходимо
пройти процедуры подключения к Сервису в соответствии с регламентом подключения к ГЭПС
Описание настроек в
статье показано на примере типового шаблона ГЭПС
с использованием общего мета-регламента «LicensingActivity» и критериев выборки:
· период – ежедневно в полночь
· все разрешения, у которых дата окончания «dateValidTo» меньше текущей даты на 7 дней
1.1 Пример настройки
1.1.1 Создание схемы
Действия доступны пользователю с ролью «Методолог»
Перед началом работы необходимо удостовериться, что модуль «Настройки системы» доступен для работы (Рисунок 1)
Если модуль «Настройки системы» не отображается на главной странице
Системы,
то необходимо обратиться к сотруднику организации, с присвоенной ролью «Администратор
ФГИС ПГС»

Рисунок 1. Интерфейс ФГИС ПГС
После загрузки модуля перейти в
раздел «Настройка стандартов» подраздел «Стандарты»,
в котором будет осуществляться дальнейшая работа
Для создания нового стандарта нажать «Добавить стандарт» (Рисунок 2)

Рисунок 2. Создание стандарта
Далее в поле «Выберите мета-регламент» из выпадающего списка выбрать мета-регламент «LicensingActivity»
В открывшейся форме слева расположена
панель разделов стандарта (Рисунок 3 пункт 1),
справа отображается страница выбранного раздела (Рисунок 3 пункт
2). При завершении работы нажать «Сохранить» (Рисунок 3 пункт
3)


Рисунок 3. Отображение разделов стандарта
Далее открыть Camunda Modeler и создать схему в соответствии с (Рисунком 4)


Рисунок 4. Схема бизнес-процесса
Файл готовой схемы бизнес-процесса:
|
№ схемы |
Наименование |
Файл схемы
бизнес-процесса |
|
1 |
Настройка отправки документов и сообщений в ГЭПС |
|
Для создания схемы выполнить шаги
1.1.1.1 Создать начальное событие
Добавить начальное событие и заполнить блоки в соответствии с (Рисунком 5)


Рисунок 5. Начальное событие бизнес-процесса
1.1.1.2 Добавить таймер для регистрации заявления
Таймер будет ожидать определённый промежуток
времени для регистрации заявления.
При этом если время истекает, процесс автоматически перейдёт к следующему событию.
Заполнить блоки в соответствии с (Рисунком 6)


Рисунок 6. Таймер для регистрации заявления
1.1.1.3 Добавить задачу с типом «script task»
Данный скрипт передаёт в процесс переменные
из лицензии для использования
в уведомлении. Заполнить блоки на
панели свойств в соответствии с (Рисунком 7)


Рисунок 7. Script task
В параметр «Script» необходимо добавить скрипт. Параметры,
указанные
в скрипте, будут отличаться при использовании других мета-регламентов
Жирным шрифтом выделены поля, которые изменяются исходя из особенностей используемой Коллекции и бизнес-процесса услуги
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
import ru.evolenta.sier.Core
import java.time.format.DateTimeFormatter
import java.time.LocalDateTime
import java.time.LocalDate
import java.text.SimpleDateFormat
import ru.evolenta.sier.Core
var collectionName = execution.getVariable('collectionName')
var parentCollectionName = collectionName.split('.subservices')[0]
def mainId = execution.getVariable('mainId')
// находим всю коллекцию в виде json'a
def getCollectionJson = Core.find(parentCollectionName, mainId, '', execution)
// парсим коллекцию в строку и записываем в переменную объект
var slurper = new JsonSlurper()
def appeal = slurper.parseText(getCollectionJson)
def subservicesGuid = appeal.subservices[0].guid
def subservicesParentEntries = appeal.subservices[0].parentEntries
def mainElement = appeal.subservices[0].mainElement
def prevRegister = mainElement.prevRegister
def formatWithZoneId = DateTimeFormatter.ofPattern(«yyyy-MM-dd'T'HH:mm:ss.SSSZ»);
def formatWithoutTime = DateTimeFormatter.ofPattern(«yyyy-MM-dd»);
def licenseCollectionName = 'licenses'
def objSearch = [
'search': [
'search': [
[
'field': 'status',
'operator': 'eq',
'value': 'active'
],
[
'field': '_id',
'operator': 'eq',
'value': «${mainElement.licenseId}»
]
]
]
]
def licensesJSON = Core.search(licenseCollectionName, JsonOutput.toJson(objSearch), execution)
def licensesCollection = slurper.parseText(licensesJSON)
def licensesCollectionObj = licensesCollection.content[0]
if (licensesCollectionObj) {
if (licensesCollectionObj.dateValidTo) {
LocalDateTime dateValidTo = LocalDateTime.parse(licensesCollectionObj.dateValidTo, formatWithZoneId)
def dateValitToWithoutTime = dateValidTo.format(formatWithoutTime)
mainElement.dateValidTo = licensesCollectionObj.dateValidTo
execution.setVariable('lisenceDateValidTo', dateValitToWithoutTime)
}
if (licensesCollectionObj.unit) {
mainElement.unit = licensesCollectionObj.unit
execution.setVariable('lisenceUnit', mainElement.unit?.name)
}
}
def changedMainElement = slurper.parseText('{«mainElement» : ««}')
changedMainElement.mainElement = mainElement
Core.updateSub(parentCollectionName, 'subservices', mainId, subservicesGuid, subservicesParentEntries, JsonOutput.toJson(changedMainElement), execution)
execution.setVariable('lisenceNumber', mainElement.license?.number)
def subject
switch (prevRegister?.subject?.specialTypeId) {
case 'ulApplicant':
execution.setVariable('ogrn', prevRegister.subject.data?.organization?.ogrn)
break
case 'ipApplicant':
execution.setVariable('ogrn', prevRegister.subject.data.person?.ogrn)
break
case 'individualApplicant':
execution.setVariable('SNILS', prevRegister.subject.data.person?.snils)
break
}
execution.setVariable('registryEntryType', mainElement.registryEntryType?.name)
//Указываем ссылку на свою форму ЕПГУ.
execution.setVariable('wwwUrl', 'https://www.gosuslugi.ru/628245/1/form')
Для того, чтобы переход осуществлялся
на верную форму заявления на ЕПГУ
для получения услуги в проактивном
режиме, важно в скрипте указать корректную ссылку
(Рисунок 8)

Рисунок 8. Ссылка на форму заявления на ЕПГУ в скрипте
1.1.1.4 Добавить второй таймер
Для выполнения задачи с типом «script task» добавить второй таймер с настройками аналогичными (Рисунку 6)
1.1.1.5 Создать сервисную задачу для отправки уведомлений
Добавить сервисную задачу, которая отвечает за уведомления пользователей об истечении срока действия лицензии по заявлению
Настройка задачи осуществляются в соответствии с (Рисунком 9) и (Таблицей 1). Основные настройки производятся в блоках «General» и «Input»
В блоке «Input», добавить шесть входящих параметров, нажав «+», после добавления каждого параметра нужно раскрыть его и внести настройки указанные в (Таблице 1)
В зависимости от типа задачи, используемой Коллекции данные настройки могут отличаться от типовых настроек


Рисунок 9. Сервисная задача «Создать уведомление»
Таблица 1 – Настройки блока «Input» для сервисной задачи «Создать уведомление»
|
Свойства |
Параметр |
Значение |
|
|
Создать уведомление |
|||
|
General |
Id |
Присваивается автоматически |
|
|
Name |
Создать уведомление |
||
|
Details |
Implamentation |
Выбор из справочника значения «External» |
|
|
Topic |
GEPS_NOTIFICATION |
||
|
Input |
Name |
mainId |
|
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
${execution.getVariable('mainId')} |
||
|
Name |
type |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
Информирование об окончании срока действия разрешения |
||
|
Name |
notificationMethod |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
name |
|
|
Value |
Уведомление через личный кабинет ЕПГУ |
||
|
Key |
code |
||
|
Value |
3 |
||
|
Name |
collectionName |
||
|
Assigment type |
Выбор из справочника значения «String or expression» |
||
|
Value |
licensingActivityAppeals |
||
|
Name |
entityType |
||
|
Assigment type |
Выбор из справочника значения «String or expression» |
||
|
Value |
conclusionForm |
||
|
Name |
saveNotificationGuid |
||
|
Assigment type |
Выбор из справочника значения «String or expression» |
||
|
Value |
true |
||
Жирным шрифтом выделены поля, которые изменяются исходя из особенностей используемой Коллекции и бизнес-процесса услуги
1.1.1.6 Добавить таймер для создания уведомления
Добавить третий таймер для создания уведомлений с настройками аналогичными (Рисунку 6)
1.1.1.7 Создать сервисную задачу для отправки уведомлений в ГЭПС
Настройка задачи осуществляются в соответствии с (Рисунком 10) и (Таблицей 2)
В блоке «Input» добавить семь входящих параметров нажав «+», после добавления каждого параметра нужно раскрыть его и внести настройки, указанные в (Таблице 2)
Указанные настройки подлежать изменению в случае использования нетипового шаблона ГЭПС


Рисунок 10. Сервисная задача «Отправка в ГЭПС»
Таблица 2 – Настройки блока «Input» для сервисной задачи «Отправка в ГЭПС»
|
Свойства |
Параметр |
Значение |
|
|
Отправка в ГЭПС |
|||
|
General |
Id |
Присваивается автоматически |
|
|
Name |
Отправка в ГЭПС |
||
|
Details |
Implamentation |
Выбор из справочника значения «External» |
|
|
Topic |
GEPS_SENDER |
||
|
Input |
Name |
mainId |
|
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
${execution.getVariable('mainId')} |
||
|
Name |
collectionName |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
licensingActivityAppeals |
||
|
Name |
docs |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
${execution.getVariable('entityVars')==null ? null : execution.getVariable(«entityVars», «deserializeValue»).documentsGuids} |
||
|
Name |
messageType |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
EXPIRY_OF_PERMIT |
||
|
Name |
param |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
topic |
|
|
Value |
Информирование об окончании срока действия разрешения |
||
|
Key |
link |
||
|
Value |
${execution.getVariable('wwwUrl')} |
||
|
Key |
nameOrg |
||
|
Value |
${execution.getVariable('lisenceUnit')} |
||
|
Key |
name |
||
|
Value |
${execution.getVariable('registryEntryType')} |
||
|
Key |
Date |
||
|
Value |
${execution.getVariable('lisenceDateValidTo')} |
||
|
Key |
ID |
||
|
Value |
${execution.getVariable('lisenceNumber')} |
||
|
Key |
OGRN |
||
|
Value |
${execution.getVariable('ogrn')==null ? null : execution.getVariable('ogrn')} |
||
|
Name |
recepientData |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
OGRNCompany |
|
|
Value |
${execution.getVariable('ogrn')==null ? null : execution.getVariable('ogrn')} |
||
|
Key |
SNILS |
||
|
Value |
${execution.getVariable('SNILS')==null ? null : execution.getVariable('SNILS').replaceAll(«W»,»«)} |
||
|
Name |
saveFiles |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
groupGuid |
|
|
Value |
${execution.getVariable('entityVars')==null ? null : execution.getVariable('entityVars').get('groupGuid')} |
||
|
Key |
nameDoc |
||
|
Value |
|||
Параметры:
– docs обеспечивает отправку файлов в рамках взаимодействия с ГЭПС
– saveFiles используется при получении файла ответа от ГЭПС для сохранения полученных документов в определенную группу документов
Эти параметры не оказывают влияния на отправку уведомления в ГЭПС. Для отправки файлов в рамках взаимодействия с ГЭПС следует внести изменения в настройки параметров в соответствии с описанием ниже «Настройки отправки уведомления посредством ГЭПС с файлами»
Жирным шрифтом выделены поля, которые изменяются исходя из особенностей используемой Коллекции и бизнес-процесса услуги
1.1.1.8 Добавить четвёртый таймер
Добавить четвёртый таймер на десять секунд в соответствии
с настройка отражёнными
на (Рисунке 11)


Рисунок 11. Таймер на десять секунд
1.1.1.9 Создать сервисную задачу для изменения статуса дела
Создать сервисную задачу для изменения статуса заявления на «Завершено» в соответствии с настройками отраженными на (Рисунке 12) и в (Таблице 3)


Рисунок 12. Сервисная задача «Переход дела в статус «Завершено»
Таблица 3 – Настройки блока «Input» для сервисной задачи «Переход дела в статус «Завершено»
|
Свойства |
Параметр |
Значение |
|
|
Переход дела в статус «Завершено» |
|||
|
General |
Id |
Присваивается автоматически |
|
|
Name |
Переход дела в статус «Завершено» |
||
|
Details |
Implamentation |
Выбор из справочника значения «Java class» |
|
|
Topic |
io.aimc.bpmn.camunda.UniversalServiceConnector |
||
|
Input |
Name |
target_url |
|
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
|||
|
Name |
async |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
false |
||
|
Name |
invocation_properties |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
method |
|
|
Value |
POST |
||
|
Key |
nextStatusCode |
||
|
Value |
complete |
||
|
Key |
type |
||
|
Value |
executeAction |
||
1.1.1.10 Добавить таймер
Добавить пятый таймер на десять секунд в соответствии с настройка
отражёнными
на (Рисунке 11)
1.1.1.11 Добавить завершающее событие
Добавить завершающее событие в соответствии с (Рисунком 13)


Рисунок 13. Завершающее событие
Сохранить файл с созданной схемой
Перейти в раздел «Бизнес-процессы» стандарта
нажать «Добавить новый процесс».
В открывшейся форме «Редактирование процесса» заполнить обязательные поля, нажать
«Загрузить», выбрать сохранённую схему. Далее нажать «Применить» и «Сохранить» (Рисунок
14)


Рисунок 14. Редактирование бизнес-процесса
Так же для отработки данной настройки в лицензиях обязательно должно быть
заполнено
поле «dateValidTo» (Рисунок 15)

Рисунок 15. Настройка адаптера для мета-регламента licensingActivityAppeals
Для этого перейти в стандарт, который был ранее создан.
Открыть
раздел «Бизнес-процессы», нажать «Редактировать». Добавить событие «Запись
даты» (Рисунок 16)
Если это стандарт с типом операции «предоставление», событие
должно располагаться
в бизнес-процессе после внесения записи в реестр, иначе лицензия не будет
найден поскольку
она ещё не создана



Рисунок 16. Событие «Запись даты»
Нажать «Применить»
Далее для созданного события добавить обработчик «updateMainRegistry», который обновляет данные лицензии в коллекции «licenses», нажав на гипертекст «Добавить» (Рисунок 17)

Рисунок 17. Обработчик «updateMainRegistry» для события «Запись даты»
В поле «Код функции» добавить код обработчика
const subservicesXsdData = appeal.subservices[0].xsdData;
tempData.registryData = {
id: subservicesXsdData.order.licenseId,
collection: 'licenses',
data: {
dateValidTo: appeal.subservices[0].xsdData.order.dateEnd,
}
};
console.log(tempData.registryData)
Нажать «Применить», далее «Сохранить»
Для проверки правильности настройки стандарта необходимо завести тестовое дело
После перехода дела в статус «Завершено» проверить запрос в блоке «Отправка в ЕПГУ». При верной настройке будет отражён статус запроса – «Успешно» (Рисунок 18)

Рисунок 18. Пример дела
При успешной отправке в ЛК ЕПГУ
лицензиат увидит сообщение в соответствии
с (Рисунком 19)
Рисунок 19. Уведомление в ЛК ЕПГУ лицензиата
Лицензиат вправе сразу подать новое
заявление, нажав «Подать новое заявление»
(Рисунок 20)

Рисунок 20. Подача нового заявления после уведомления
1.1.2 Настройка адаптера
После успешной настройки стандарта необходимо произвести настройки адаптера
Данная настройка производится Администратором ФГИС ПГС
Для этого необходимо оформить заявку в СЦ одним из следующих способов
· через личный кабинет – https://sc.digital.gov.ru
· через электронную почту – sd@sc.digital.gov.ru
Настройки отправки уведомления посредством ГЭПС с файлами
Для настройки отправки уведомлений с файлами нужно использовать зарегистрированный организацией шаблон или воспользоваться существующим — REQ_LINEAR_OBJECT
Далее выполнить настройку стандарта:
1. Задать мнемонику у группы документов:
– открыть стандарт, нажав «Редактировать»
– перейти в раздел «Документы» блок «Группы и виды документов» и нажать «Редактировать» (Рисунок 21)

Рисунок 21. Редактирование стандарта
– задать мнемонику у группы документов и нажать «Применить» (Рисунок 22)
Рисунок 22. Настройка мнемоники
2. Внести изменения в сервисные задачи схемы:
– перейти в раздел «Бизнес-процессы» стандарта
– на вкладке «Бизнес-процесс» нажать «Редактировать», далее нажать на гипертекст схемы в блоке «Файл бизнес-процесса» (Рисунок 23)


Рисунок 23. Настройка бизнес-процесса
– открыть схемы в Camunda Modeler
– внести изменения в сервисные задачи схемы бизнес-процесса отражённого на (Рисунке 24)
2.1 Настройка сервисной задачи с типом «script task»

Рисунок 24. Настройка задачи с типом «script task»
В параметр «Script» необходимо добавить скрипт. Параметры, указанные в скрипте, будут отличаться при использовании других мета-регламентов
Жирным шрифтом выделены поля, которые изменяются, исходя из особенностей используемой Коллекции и бизнес-процесса услуги
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
import ru.evolenta.sier.Core
import java.time.format.DateTimeFormatter
import java.time.LocalDate
import java.time.LocalDateTime
var collectionName = execution.getVariable('collectionName')
var parentCollectionName = collectionName.split('.subservices')[0]
def mainId = execution.getVariable('mainId')
// находим всю коллекцию в виде json'a
def getCollectionJson = Core.find(parentCollectionName, mainId, '', execution)
// парсим коллекцию в строку и записываем в переменную объект
var slurper = new JsonSlurper()
def appeal = slurper.parseText(getCollectionJson)
def subservicesGuid = appeal.subservices[0].guid
def subservicesParentEntries = appeal.subservices[0].parentEntries
def mainElement = appeal.subservices[0].mainElement
def prevRegister = mainElement.prevRegister
def formatWithZoneId = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
def formatWithoutTime = DateTimeFormatter.ofPattern("yyyy-MM-dd");
def licenseCollectionName = appeal.subservices[0].licensesCollection
if(!appeal.dataForExecuteAction){
appeal.dataForExecuteAction = [:]
}
def objSearch = [
'search': [
'search': [
[
'field': 'status',
'operator': 'eq',
'value': 'active'
],
[
'field': '_id',
'operator': 'eq',
'value': mainElement.licenseId
]
]
]
]
def licensesTurizmJSON = Core.search(licenseCollectionName, JsonOutput.toJson(objSearch), execution)
def licensesTurizmCollection = slurper.parseText(licensesTurizmJSON)
def licensesTurizmCollectionObj = licensesTurizmCollection.content[0]
def formatDate(date, separator = '-') {
def day = date.getDayOfMonth()
def month = date.getMonthValue()
def year = date.getYear()
return "${year}${separator}${month}${separator}${day}"
}
if (licensesTurizmCollectionObj) {
if (licensesTurizmCollectionObj.dateValidTo) {
// def dateValidTo
def dateValitToWithoutTime
try {
// dateValidTo = formatDate(LocalDate.parse(licensesTurizmCollectionObj.dateValidTo, formatWithZoneId))
// def dateValitToWithoutTime = dateValidTo.format(formatWithoutTime)
LocalDateTime dateValidTo = LocalDateTime.parse(licensesTurizmCollectionObj.dateValidTo, formatWithZoneId)
dateValitToWithoutTime = dateValidTo.format(formatWithoutTime)
} catch(err) {
appeal.formatDateErr = err
}
mainElement.dateValidTo = licensesTurizmCollectionObj.dateValidTo
execution.setVariable('lisenceDateValidTo', dateValitToWithoutTime)
appeal.dataForExecuteAction.lisenceDateValidTo = dateValitToWithoutTime
}
if (licensesTurizmCollectionObj.unit) {
mainElement.unit = licensesTurizmCollectionObj.unit
execution.setVariable('lisenceUnit', mainElement.unit?.name)
appeal.dataForExecuteAction.lisenceUnit = mainElement.unit?.name
}
}
def changedMainElement = slurper.parseText('{"mainElement" : ""}')
changedMainElement.mainElement = mainElement
Core.updateSub(parentCollectionName, 'subservices', mainId, subservicesGuid, subservicesParentEntries, JsonOutput.toJson(changedMainElement), execution)
execution.setVariable('lisenceNumber', mainElement.license?.number)
appeal.dataForExecuteAction.lisenceNumber = mainElement.license?.number
def subject
switch (prevRegister?.subject?.specialTypeId) {
case 'ulApplicant':
execution.setVariable('ogrn', prevRegister.subject.data?.organization?.ogrn)
break
case 'ipApplicant':
execution.setVariable('ogrn', prevRegister.subject.data.person?.ogrn)
break
case 'individualApplicant':
execution.setVariable('SNILS', prevRegister.subject.data.person?.snils)
break
}
// execution.setVariable('ogrn', subject)
execution.setVariable('registryEntryType', mainElement.registryEntryType?.name)
execution.setVariable('wwwUrl', 'https://psi.pgs.gosuslugi.ru/turizmhike/gsn-registers')
appeal.dataForExecuteAction.ogrn = subject
appeal.dataForExecuteAction.registryEntryType = mainElement.registryEntryType?.name
appeal.dataForExecuteAction.wwwUrl = 'https://psi.pgs.gosuslugi.ru/turizmhike/gsn-registers'
// Сохраняем documentsGuids сразу в переменную процесса, необходимо указать мнемонику документа (в примере мнемоника документа “2docs”).
def documentsGuids = []
for (document in appeal.documents) {
if (document.mnemonic == '2docs' && document.files) {
for (file in document.files) {
if (file.guid) {
documentsGuids.add(file.guid)
}
}
}
}
// Устанавливаем переменные процесса
execution.setVariable('documentsGuids', documentsGuids)
def objForUpdateAppeal = [
dataForExecuteAction: appeal.dataForExecuteAction,
]
if (appeal.formatDateErr) {
objForUpdateAppeal.formatDateErr = formatDateErr
}
// Добавляем исполнителя по СНИЛСу
if (licensesTurizmCollectionObj?.subject?.data?.person?.snils) {
def snils = licensesTurizmCollectionObj.subject.data.person.snils
objSearch = [
'search': [
'search': [
[
'field': 'snils',
'operator': 'eq',
'value': snils
],
]
]
]
def usersJSON = Core.search("users", JsonOutput.toJson(objSearch), execution)
def usersCollection = slurper.parseText(usersJSON)
def usersCollectionObj = usersCollection.content[0]
if (usersCollectionObj) {
def user = [:]
user.email = usersCollectionObj.email
user.id = usersCollectionObj._id
// user._id = usersCollectionObj._id
user.login = usersCollectionObj.login
user.name = usersCollectionObj.name
user.position = usersCollectionObj.position
user.snils = usersCollectionObj.snils
objForUpdateAppeal.executor = user
}
}
// /Добавляем исполнителя по СНИЛСу
Core.update(parentCollectionName, mainId, JsonOutput.toJson(objForUpdateAppeal), execution)
2.2 Настройка сервисной задачи «Создать уведомление» (Рисунок 25)

Рисунок 25. Настройка сервисной задачи «Создать уведомление»
Таблица Б.1 – Настройки блока «Input» для сервисной задачи «Создать уведомление»
|
Свойства |
Параметр |
Значение |
|
|
Создать уведомление |
|||
|
General |
Id |
Присваивается автоматически |
|
|
Name |
Создать уведомление |
||
|
Details |
Implamentation |
Выбор из справочника значения «External» |
|
|
Topic |
GEPS_NOTIFICATION |
||
|
Input |
Name |
mainId |
|
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
${execution.getVariable('mainId')} |
||
|
Name |
type |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
Информирование об окончании срока действия разрешения |
||
|
Name |
notificationMethod |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
name |
|
|
Value |
Уведомление через личный кабинет ЕПГУ |
||
|
Key |
code |
||
|
Value |
3 |
||
|
Name |
collectionName |
||
|
Assigment type |
Выбор из справочника значения «String or expression» |
||
|
Value |
licensingActivityAppeals |
||
|
Name |
entityGuid |
||
|
Assigment type |
Выбор из справочника значения «String or expression» |
||
|
Value |
null |
||
|
Name |
messageType |
||
|
Assigment type |
Выбор из справочника значения «String or expression» |
||
|
Value |
REQ_LINEAR_OBJECT |
||
|
Name |
type |
||
|
Assigment type |
Выбор из справочника значения «String or expression» |
||
|
Value |
Отправка запроса на предоставление документов |
||
2.3 Настройка сервисной задачи «Отправка в ГЭПС» (Рисунок 26)

Рисунок 26. Настройка сервисной задачи «Отправка в ГЭПС»
Таблица Б.2 – Настройки блока «Input» для сервисной задачи «Отправка в ГЭПС»
|
Свойства |
Параметр |
Значение |
|
|
Отправка в ГЭПС |
|||
|
General |
Id |
Присваивается автоматически |
|
|
Name |
Отправка в ГЭПС |
||
|
Details |
Implamentation |
Выбор из справочника значения «External» |
|
|
Topic |
GEPS_SENDER |
||
|
Input |
Name |
mainId |
|
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
${execution.getVariable('mainId')} |
||
|
Name |
collectionName |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
licensingActivityAppeals |
||
|
Name |
docs |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
${execution.getVariable('documentsGuids')==null ? null : execution.getVariable('documentsGuids')} |
||
|
Name |
messageType |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
REQ_LINEAR_OBJECT |
||
|
Name |
param |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
topic |
|
|
Value |
Информирование об окончании срока действия разрешения |
||
|
Key |
link |
||
|
Value |
${execution.getVariable('wwwUrl')} |
||
|
Key |
ID |
||
|
Value |
${execution.getVariable('lisenceNumber')} |
||
|
Key |
Comment |
||
|
Value |
Тестирование |
||
|
Key |
fullText |
||
|
Value |
Тут какой-то текст |
||
|
Name |
recepientData |
||
|
Type |
Выбор из справочника значения «Map» |
||
|
Map entries |
Key |
OGRNCompany |
|
|
Value |
${execution.getVariable('ogrn')==null ? null : execution.getVariable('ogrn')} |
||
|
Key |
SNILS |
||
|
Value |
${execution.getVariable('SNILS')==null ? null : execution.getVariable('SNILS').replaceAll(«W»,»«)} |
||
|
Name |
entityGuid |
||
|
Type |
Выбор из справочника значения «String or expression» |
||
|
Value |
null |
||
Жирным шрифтом выделены поля, которые изменяются исходя из особенностей используемой Коллекции и бизнес-процесса услуги, а также используемого шаблона
3. Сохранить схему и загрузить в стандарт
4. Сохранить стандарт и выгрузить
При успешной отправке пользователю поступит уведомление в ЕПГУ с приложением архива документов с набором файлов (Рисунок 27)


Рисунок 27. Уведомление в ЕПГУ с архивом документов