Настройка распознавания ответа вида сведений
Настройка распознавания ответа (FTL ответа) – это настройка, позволяющая преобразовать ответ Вида сведений услуги под эталонный ответ на смену статуса заявления для ЕПГУ.
Эталонный ответ на смену статуса заявления
<?xml version="1.0" encoding="UTF-8"?> <tns:FormDataResponse xmlns:tns="http://foiv.ru/service1/3.1.0"> <tns:changeOrderInfo> <tns:orderId>123123123</tns:orderId> <tns:statusCode> <tns:techCode>3</tns:techCode> </tns:statusCode> <tns:comment>Услуга оказана</tns:comment> <tns:sendMessageAllowed>true</tns:sendMessageAllowed> <tns:cancelAllowed>true</tns:cancelAllowed> </tns:changeOrderInfo> </tns:FormDataResponse> |
Рекомендуем для ответа вида сведений услуги использовать точно такой же ответ, тогда делать распознавание ответа не нужно.
В случае, если ответ от ИС ведомства отличается от эталонного ответа ЕПГУ, пользователь в личном кабинете увидит следующий статус:
Шаблон распознавания ответа
В шаблоне FTL ответа меняется только обозначение переменных в блоке assign, где мы присваиваем переменным то значение (тег), в котором передаются нужные данные.
Обозначение переменных:
tech или org – обязательно для заполнения, обозначение для портального статуса (tech – по статусной модели ЕПГУ, org – ведомственный статус).
comment – необязательно для заполнения, обозначение комментария от ОИВ.
cancel – необязательно для заполнения, обозначение признака отмены заявления.
send – необязательно для заполнения, обозначение признака переписки с ведомством.
Важно: значения зависят от регистра, необходимо это учитывать при настройке распознавания ответа. techCode ≠ TechCode!
Шаблон FTL ответа:
<#ftl/> <#assign tech = xml["//*[local-name()='techCode']"]/> <#assign org = xml["//*[local-name()='orgCode']"]/> <#assign comment = xml["//*[local-name()='comment']"]/> <#assign cancel = xml["//*[local-name()='cancelAllowed']"]/> <#assign send = xml["//*[local-name()='sendMessageAllowed']"]/> <changeOrderInfo xmlns="http://idecs.atc.ru/privateoffice/ws/changeorderinfo"> <#if tech?has_content || org?has_content> <#if tech?has_content> <statusCode> <techCode>${tech?xml}</techCode> </statusCode> </#if> <#if org?has_content> <statusCode> <orgCode>${org?xml}</orgCode> </statusCode> </#if> <#if comment?has_content> <comment>${comment?xml}</comment> </#if> <#else> <statusCode> <techCode>5</techCode> </statusCode> <comment>Произошла ошибка при обработке заявки. Пожалуйста, обратитесь в службу поддержки пользователей</comment> </#if> <#if cancel?has_content> <cancelAllowed>${cancel?xml}</cancelAllowed> </#if> <#if send?has_content> <sendMessageAllowed>${send?xml}</sendMessageAllowed> </#if> </changeOrderInfo> |
Настройка распознавания ответа в ВКУ
Для настройки распознавания ответа в ВКУ необходимо:
- Открыть настройки услуги (блок «Информация об услуге» на главное экране ВКУ).
- Включить расширенный режим.
- Активировать чекбокс «Добавление ftl ответа».
- Заполнить поле «Контент распознавания ответа вида сведений» скриптом, в котором будут учитываться обозначения переменных вашего вида сведений.
- Обновить услугу.
Практика
От ИС приходит ответ следующего вида:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Envelope> <soap:Body> <ns3:setApplicationResponse xmlns="urn://x-artefacts-mvd-gov-ru/gunk/dob/set-application/application-types/1.0.0" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="urn://x-artefacts-mvd-gov-ru/gunk/dob/set-application/common-types/1.0.0" xmlns:ns3="urn://x-artefacts-mvd-gov-ru/gunk/inquiry/set-application/1.0.2" sysVersion="1.0.50"> <applicationID>983</applicationID> <applicationState> <applicationStateTransitionID>3e57b2ec-af43-40ff-8a30-0137af78a122</applicationStateTransitionID> <applicationStateName>Зарегистрировано заявление 1-99-23-92 от 2023-05-02</applicationStateName> <applicationStateTransitionTimestamp>2023-05-02T15:02:02.332Z</applicationStateTransitionTimestamp> <sourceSystemStateCode>RECEIVED</sourceSystemStateCode> <stateCanBeCanceled>false</stateCanBeCanceled> </applicationState> <applicationContentID>983</applicationContentID> <ns3:orderId>74138668</ns3:orderId> <ns3:statusCode>1</ns3:statusCode> </ns3:setApplicationResponse> </soap:Body> <soap:results> <fileLinks> <fileLink>terrabyte://00/20004380417/85df0b75-76fe-4e20-ab84-9fcba91a138a/103</fileLink> <fileLink>terrabyte://00/20004380418/1f247de6-e5c7-4f7c-8d38-fcb1185445c9/103</fileLink> <fileLink>terrabyte://00/20004380417/85df0b75-76fe-4e20-ab84-9fcba91a138a/5</fileLink> <fileLink>terrabyte://00/20004380418/1f247de6-e5c7-4f7c-8d38-fcb1185445c9/5</fileLink> </fileLinks> </soap:results> </soap:Envelope> </soap:Body> <soap:results/> </soap:Envelope> |
Мы видим, что статус передается в теге <statusCode>, а комментарий в теге <applicationStateName>.
Исходя из этого, контент преобразования ответа будет следующим:
<#ftl/> <#assign tech = xml["//*[local-name()='statusCode']"]/> <#assign org = xml["//*[local-name()='OrgCode']"]/> <#assign comment = xml["//*[local-name()='applicationStateName']"]/> <#assign cancel = xml["//*[local-name()='CancelAllowed']"]/> <#assign send = xml["//*[local-name()='SendMessageAllowed']"]/> <changeOrderInfo xmlns="http://idecs.atc.ru/privateoffice/ws/changeorderinfo"> <#if tech?has_content || org?has_content> <#if tech?has_content> <statusCode> <techCode>${tech?xml}</techCode> </statusCode> </#if> <#if org?has_content> <statusCode> <orgCode>${org?xml}</orgCode> </statusCode> </#if> <#if comment?has_content> <comment>${comment?xml}</comment> </#if> <#else> <statusCode> <techCode>5</techCode> </statusCode> <comment>Произошла ошибка при обработке заявки. Пожалуйста, обратитесь в службу поддержки пользователей</comment> </#if> <#if cancel?has_content> <cancelAllowed>${cancel?xml}</cancelAllowed> </#if> <#if send?has_content> <sendMessageAllowed>${send?xml}</sendMessageAllowed> </#if> </changeOrderInfo> |