Войти

Разработка VM-шаблонов

Общая информация

VM-шаблон XML — это шаблон, написанный на языке Velocity Template Language (VTL). VM-шаблон служит для создания файлов заявления, которые используются для формирования запроса в ИС ведомства и файлов в ЛК пользователя

Для отправки заявления в ведомство и формирования документов в ЛК разрабатываются несколько шаблонов

  1. В случае, если все данные по услуге передаются в запросе вида сведений, необходимо разработать один VM-шаблон. Данный шаблон будет формировать xml-файл бизнес-данных вида сведений. Шаблон необходимо назвать «xxxxxxxx_Applicant.vm», где xxxxxxxx — код услуги
  2. В случае, если в запросе вида сведений передаются только служебные данные, а остальные данные по заявлению передаются во вложенной xml, разрабатывается два шаблона — транспортный и бизнес-шаблон. Транспортный шаблон формирует запрос вида сведений, бизнес-шаблон — вложенную xml с остальными данными по услуге. Транспортный шаблон необходимо назвать «t_xxxxxxxx.vm», где xxxxxxxx — код услуги. Бизнес-шаблон необходимо назвать «xxxxxxxx_Applicant.vm», где xxxxxxxx – код услуги. При использовании такого механизма, бизнес данные, генерируемые шаблоном Applicant, поступят вложением к бизнес-данным

Отдельно необходимо разработать VM-шаблон, используемый для генерации PDFзаявления в ЛК пользователя с данными по заявлению. Шаблон необходимо назвать «pdf_xxxxxxxx_Applicant.vm», где xxxxxxxx — код услуги

Другое наименование VM-шаблонов не допускается

Если VM-шаблон разработан корректно, после прохождения сценария услуги в личном кабинете отобразятся сформированные по шаблонам файлы

В случае, если XML для отправки запроса в вид сведений не сформировался, VM-шаблон составлен с ошибками. За получением информации об ошибке необходимо обратиться к оператору ЕПГУ, указав номера услуги и заявления

Подготовительные действия

В целях значительного сокращения трудозатрат при разработке VM-шаблонов рекомендуется провести ряд подготовительных действий

Подготовить черновик пройденной услуги

  1. Опубликовать услугу и открыть её
  2. На стартовом экране включить инструменты разработчика DevTools, нажав клавишу F12
  3. Перейти в раздел Network
  4. Установить чекбокс Preserve log в положение true. Данная настройка предотвращает очистку логов после прохождения сценария

  5. Пройти полностью сценарий, для которого будет разрабатываться VM-шаблон
  6. В списке запросов выбрать последний запрос getNextStep
  7. Выбрать вкладку Payload
  8. Нажать ПКМ на scenarioDto и выбрать Copy value. В буфер обмена будет скопирован черновик заявления
  9. Перейти в инструмент, способный работать с текстовыми документами и сочетанием клавиш CTRL+V вставить черновик заявления в текстовый редактор
  10. Из всего черновика понадобится секция applicantAnswers, которая хранит все ответы пользователя при прохождении сценария

Составление VM-шаблона

Целью данного блока работ является заполнение всех необходимых полей будущего xml-документа, требующихся ведомству для предоставления услуги. Для этого первоначально необходимо определить перечень полей из xml-документа, необходимых к заполнению в данном сценарии

шаблон5.png

В xml из рис. 20 можно видеть пример атрибута lastname, middlename, dateBirth

После прохождения услуги (п. 3.4.1) эти значения остались в черновике заявления в компоненте c7 со следующей структурой Json:

"c7": {

            "visited": true,

            "value": {

                "states": [

                    {

                        "groupName": "Иванова Ангелина Сергеевна",

                        "fields": [

                            {

                                "label": "Дата рождения",

                                "value": "14.08.1986"

                            },

                            {

                                "label": "Пол",

                                "value": "Женский"

                            }

                        ]

                    },

                    {

                        "groupName": "Паспорт гражданина РФ",

                        "fields": [

                            {

                                "label": "Серия и номер",

                                "value": "1111 729729"

                            },

                            {

                                "label": "Дата выдачи",

                                "value": "21.08.2020"

                            },

                            {

                                "label": "Место рождения",

                                "value": "г. Москва"

                            },

                            {

                                "label": "Гражданство",

                                "value": "РОССИЯ"

                            },

                            {

                                "label": "СНИЛС",

                                "value": "000-729-729 38"

                            }

                        ]

                    }

                ],

                "storedValues": {

                    "firstName": "Ангелина",

                    "lastName": "Иванова",

                    "middleName": "Сергеевна",

                    "birthDate": "14.08.1986",

                    "birthPlace": "г. Москва",

                    "gender": "F",

                    "genderFull": "Женский",

                    "docType": "RF_PASSPORT",

                    "rfPasportSeries": "1111",

                    "rfPasportNumber": "729729",

                    "rfPasportIssueDate": "21.08.2020",

                    "citizenship": "РОССИЯ",

                    "citizenshipCode": "RUS",

                    "snils": "000-729-729 38"

                }

            }

},

Чтобы подставить значения из черновика заявления в атрибут xml, необходимо сослаться на нужный атрибут из Json

При написании VM шаблонов можно использовать стандартные операции сравнения, условий, циклов, преобразований и прочее

Примерный перечень операций, используемых в VM-шаблоне

Пример

Описание

В случае, если компонент c1 не равен null, атрибут tag принимает valueкомпонента c1

В случае, если компонент с1 не равен null, атрибут tag принимает valueкомпонента c1, иначе в атрибут tagподставится value компонента c2

В случае, если value компонента c1 равно 1, тогда атрибут tag принимает valueкомпонента с1; если value компонента с1 равно 2, тогда атрибут tag принимаетvalue компонента с2, иначе атрибут tagпримет value компонента c3

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

Например, value компонента c1 является массивом.

Тогда в атрибут tag подставится значение из компонента с2, находящегося в массиве.

Атрибутов tag будет столько, какая будет размерность массива

Replace используется для преобразования.

Например, компонент с1 передал
value “01”. После replace в атрибуте
t будет value “11”

Получить дату в формате «00.00.0000»

Операторы сравнения

==

Равно

!=

Не равно

>

Больше

<

Меньше

>=

Больше или равно

<=

Меньше или равно

&&

И

||

Или

Кроме прямого обращения к атрибуту в JSON можно использовать глобальные переменные

Пример использования глобальных переменных в VM шаблоне:

<fss:person>

<fss:secondName>$lastName</fss:secondName>

<fss:firstName>$firstName</fss:firstName>

<fss:patronymic>$middleName</fss:patronymic>

<fss:birthDate>$birthDate</fss:birthDate>

</fss:person>

В отличие от прямого обращения к значению из черновика, глобальные переменные берут данные из личного кабинета пользователя

Глобальные переменные

Глобальная переменная

Описание

$orderId

Номер заявления

$masterid

Номер заявления основного заявителя для сценариев с несколькими заявителями

$oid

ID пользователя

$masterOid

ID основного заявителя

$firstName

Имя

$masterFirstName

Имя основного заявителя

$lastName

Фамилия

$masterLastName

Фамилия основного заявителя

$middleName

Отчество

$masterMiddleName

Отчество основного заявителя

$birthDate

Дата рождения

$masterBirthDate

Дата рождения основного заявителя

$gender

Пол

$masterGender

Пол основного заявителя

$citizenship

Гражданство

$masterCitizenship

Гражданство основного заявителя

$citizenshipCode

Код гражданства

$masterCitizenshipCode

Код гражданства основного заявителя

$birthdateCode

Код страны рождения

$masterBirthdateCode

Код страны рождения основного заявителя

$userOrgChief

Роль пользователя в организации.
true – руководитель, false - сотрудник

$timezone

Часовой пояс заявителя

$masterUserOrgChief

Роль пользователя-основного заявителя в организации.
true – руководитель, false - сотрудник

$orgType

Тип учетной записи

$masterOrgType

Тип учетной записи основного заявителя

$leg

Организационно-правовая форма по ОКОПФ

$inn

ИНН

$legCode

Код организационно-правовой формы по ОКОПФ

$serviceId

Номер кода услуги

$targetId

Номер цели услуги

$homePhone

Домашний телефон

$mobilePhoneNumber

Мобильный телефон

$contactPhoneNumber

Контактный телефон

$email

Электронная почта

Загрузка VM-шаблонов

Составленные на предыдущем шаге файлы необходимо загрузить в конструктор в виде файлов или вставить в инструмент визуального редактирования, для этого:

  1. Необходимо открыть раздел «Шаблоны XML»
  2. Загрузить составленные VM-шаблоны, нажав кнопку «Добавить»
  3. После загрузки опубликовать услугу в тестовой среде ЕПГУ
Авторизуйтесь, чтобы оставить комментарий к статье