Регистрация услуги в каталоге услуг

Чтобы форма, разработанная в конструкторе, появилась в каталоге услуг и была доступна для заказа, необходимо выполнить скрипты. В настоящий момент существует два способа публикации услуги: через публикатор и вручную (скриптами).

Рассмотрим случай публикации услуги вручную:

Сначала необходимо указать для разработанной формы мнемонику, которая по сути является номером услуги. Выполняется скрипт вручную в схеме pguforms:

update pguforms.form set mnemonic= xxx where id='9999';

commit;

Где,

xxx - произвольный номер-мнемоника для услуги (см. столбец eservice_extid в базе govsrvreg.eservice;)

id – номер разработанной формы в конструкторе (https://pgu-forms.egov.at-consulting.ru/designer/#9999)

Для регистрации услуги в Каталоге услуг рекомендуем использовать процедуру create_service (пакет PKG_SRVFUTILS), в случае нестандартных услуг (например, фейковые услуги, привязка одной услуги к нескольким регионам и т.д.) можно использовать процедуры из других пакетов (например, PKG_SERVICE2). Рассмотрим пример регистрации услуги с использованием процедуры create_service (описание процедуры можно узнать тут - https://confluence.egov.at-consulting.ru/pages/viewpage.action?pageId=49680533), здесь и далее указан тестовый пример, перед применением скрипта необходимо указывать свои данные:

declare

SRVCS PGU.PKG_SRVFUTILS.T$LIST:= PGU.PKG_SRVFUTILS.T$LIST(

PGU.PKG_SRVFUTILS.T$REC(-1, xxx, '-1', 'Ошибка обработки результата','Ошибка обработки результата', 'N','N','N','N'),

PGU.PKG_SRVFUTILS.T$REC(0, xxx, '0', 'Черновик заявления', 'Состояние, когда пользователь ещё не отправил заявление','N','N','N','N'),

PGU.PKG_SRVFUTILS.T$REC(1, xxx, '1', 'Принято от заявителя', 'Состояние, когда пользователь УЖЕ отправил заявление','Y','N','N','N')

);

begin

PGU.PKG_SRVFUTILS.create_service(

extid => 10000002842,

icon_name => 'img_fed_nadzorsvyzi.png', -- иконка ведомства (указывается только в том случае, если ведомство не заведено в каталоге услуг)

categories => 'LEGAL, PERSON, SOLE_PROPRIETOR, FOREIGNER',

es_id => xxx,

targets => PGU.PKG_SRVFUTILS.T$TARGETS(10000459523, 10000459524),

fnames => PGU.PKG_SRVFUTILS.T$NAMES('Выдача разрешений', 'Уведомление об обработке'),

endpoint => 'https://demo-riep:7777/gateway/services/SID0003685',

fshortnames => PGU.PKG_SRVFUTILS.T$NAMES('Выдача', 'Уведомление'),

fp => 'pguforms',

edsstatus_code => 'EDS_NOT_SUPPORTED',

eservice_online => 'N',

active => 'Y',

OKATO => '00000000000',

published => 1,

smev_code => 'RTNZ01',

smev_region => '00',

smev_accesspoint => '1',

edstype => 'V_2_4_3',

spec_code => 'MR',

spec_type => 'CALL',

soap_action => 'https://www.red-soft.biz/ncore/dx/ws/smev-243/Smev243Port/PutDocument',

ftl_template => ' xxx_request_converter ',

ftl_response => 'xxx_response_converter',

transport => 'SOAP_11',

uddikey => null,

bundle_code => 'top10',

uddikey_region_search => 'N',

asynch_response => 'N',

status_notchange => 'N',

log_status => 'Y',

org_status_list => SRVCS

);

commit;

end;

/

Где,

xxx - произвольный номер-мнемоника для услуги (см. столбец eservice_extid в базе govsrvreg.eservice;)

extid - код ведомства;

targets - список кодов целей СРГУ;

fnames - список полных наименований форм(целей);

endpoint – адрес веб-сервиса (указывается SID на СМЭВе);

fp - форм-провайдер (для услуг сервера форм форм-провайдер обязательно должен начинаться с pguforms – влияет на формирование прямой ссылки на форму);

edsstatus_code - режим использования ЭП (EDS_NOT_SUPPORTED - не требует подписания ЭП; EDS_MANDATORY - требует подписания ЭП);

smev_code – мнемоника участника из четырех символов с двузначным цифровым номером информационной системы ведомства;

smev_region - двузначный цифровой код региона, к которому относится точка подключения;

smev_accesspoint - однозначный цифровой номер экземпляра точки подключения в регионе;

edstype - версия методрекомендаций (V_OLD, V_2_3_4, V_2_3_5, V_2_4_3, V_2_5)

spec_code - признак методрекомендаций для услуги (MR - услуга по методрекомендациям; NOMR - услуга не по методрекомендациям);

spec_type - указание действия для orderprocessing: CALL - заказ, CANCEL – отмена;

soap_action - при наличии указывается путь SOAP-action, если его нет, то этот параметр можно опустить. Проверить наличие пути SOAP-action можно следующим образом – открыть в браузере wsdl веб-сервиса и поиском искать soap-action, например: <soap:operation soapAction="CreateRequest"/>

ftl_template – мнемоника ftl-шаблона исходящего сообщения, хранится в таблице LK.sc_soap_msg_template. Шаблон должен быть предварительно создан на момент запуска процедуры(см. п.4 FTL-шаблоны, Для запроса на отправку заявки);

ftl_response - мнемоника ftl-шаблона входящего сообщения, хранится в базе LK.sc_response_converter. Шаблон должен быть предварительно создан на момент запуска процедуры(см. п.4 FTL-шаблоны, Для ответа от ведомства);

transport - тип транспорта (допустимые значения: SOAP_11, SOAP_12);

uddikey - ключ в juddi для сервиса ведомства. NULL - совпадает с мнемоникой формы;

bundle_code - код бандла сервиса (допустимые значения: top10);

uddikey_region_search - признак поиска региона в juddi, для федеральных услуг 'N';

asynch_response - признак асинхроного ответа через сервисы обновления статусом;

status_notchange - признак необновления статуса заявления;

log_status - признак логирования поля body сообщения;

org_status_list - список статусов (тип PKG_SRVFUTILS.T$LIST)

Рассмотрим подробнее, что данная процедура выполняет:

1. Настройка личного кабинета и статусов:

По параметру - код ведомства extid => 10000002842 процедура проверяет, заведено ли данное ведомство. Если такое ведомство не найдено, то выполняется процедура PKG_SERVICE2.create_StateOrg. Также, если ведомство не опубликовано в Каталоге услуге, необходимо указать наименование иконки в параметре icon_name.

В случае, если ведомство в ответе, либо в обновлении статуса присылает свои коды статусов, например:

<rsoc:changeOrderInfo>

<rsoc:orderId>

<rsoc:pguId>20049428</rsoc:pguId>

</rsoc:orderId>

<rsoc:statusCode>

<rsoc:orgCode>020</rsoc:orgCode>

</rsoc:statusCode>

<rsoc:comment>Заявка находится в обработке в Минюсте России</rsoc:comment>

<rsoc:cancelAllowed>false</rsoc:cancelAllowed>

</rsoc:changeOrderInfo>

Необходимо сделать маппинг статусов:

SRVCS PGU.PKG_SRVFUTILS.T$LIST:= PGU.PKG_SRVFUTILS.T$LIST(

PGU.PKG_SRVFUTILS.T$REC(

-1, -- технологический статус

xxx, -- код формы (или null, если статусы относятся к ведомству)

'-1', -- статус ведомства

'Ошибка обработки результата', -- наименование статуса (отображается в ЛК)

'Ошибка обработки результата', -- описание статуса (не отображается в ЛК)

'N', -- флаг «извещение по электронной почте», возможные значения - Y, N

'N', -- флаг последний статус в процессе обработки заявления, возможные значения - Y, N

'N', -- флаг «извещение по sms», возможные значения - Y, N

'N' -- флаг «извещение по технологии push», возможные значения - Y, N

),

PGU.PKG_SRVFUTILS.T$REC(0, xxx, '0', 'Черновик заявления', 'Состояние, когда пользователь ещё не отправил заявление','N','N','N','N'),

PGU.PKG_SRVFUTILS.T$REC(1, xxx, '1', 'Принято от заявителя', 'Состояние, когда пользователь УЖЕ отправил заявление','Y','N','N','N')

);

Аналогично описываются остальные статусы.

2. Публикация услуги

Далее выполняется процедура по созданию электронной услуги с указанными параметрами:

pkg_service2.modify_eservice(

i_eservice => es_id, -- код электронной услуги

i_name => fshortnames, -- имя электронной услуги

i_fullname => fnames, -- полное имя электронной услуги

i_edsstatus => edsstatus_code, -- код использования электронной подписи, варианты: EDS_NOT_SUPPORTED, EDS_MANDATORY

i_state_org_code => org_code, -- код ведомства в Сводном реестре

i_isonline => eservice_online, -- флаг "он-лайн" услуга, возможные значения (0 - нет, 1 - да)

i_isactive => active); -- флаг активности услуги, возможные значения (Y, N)

Затем выполняется связь электронной услуги с поставщиком электронных услуг (форм-провайдер):

pkg_service2.link_eservice2fprovider(

i_eservice => es_id,

i_isactive => active,

i_fp => fp -- ext_id поставщика форм (начинается на pguforms для сервера форм)

);

Далее создается ссылка на электронную услугу:

pgu.pkg_service2.create_eserviceformset(es_id)

update GOVSRVREG.eserviceform set eserviceform_relativeurl=es_id where

eservice_id=(select eservice_id from govsrvreg.eservice where eservice_extid=es_id);

Затем выполняется связь электронной услуги с целью(ями) оказания услуги:

pkg_service2.modify_commonservice(

i_target => targets, -- код цели услуги Ланит

i_eservice => es_id, -- код формы

i_name => snames,

i_fullname => fnames,

i_state_org_code => org_code,

i_published => published);

Далее необходимо указать классификации для каждой цели услуги:

- по категории получателя (выполняется для каждой категории получателя, перечисленных в параметре categories)

pgu.pkg_service2.classify_service(

i_eservice => es_id,

i_target => targets,

i_classifier_code => 'SERVICE_RECIPIENT', -- код классификатора согласно таблице GOVSRVREG.classifier;

i_category_code => 'PERSON'); -- код классификатора согласно таблице GOVSRVREG.categoty, связана с i_classifier_code как ребенок;

- по территории

pkg_service2.classify_service(

i_eservice => es_id,

i_target => targets,

i_classifier_code => 'TERRITORY',

i_category_code => OKATO); -- ОКАТО, для федеральных услуг 00000000000

- по ведомству

pkg_service2.classify_service(

i_eservice => es_id,

i_target => targets,

i_classifier_code => 'STATE_STRUCTURE',

i_category_code => extid);

В случае привязки услуги к другой классификации (например, для мобильных приложений), необходимо после процедуры create_service выполнить процедуру pkg_service2.classify_service с требуемыми параметрами.

Если паспорта услуги с целями нет в Каталоге услуг по разным причинам (например, не успели опубликовать в СРГУ, либо форму нужно вывести только по прямой ссылке и т.д.), необходимо создать так называемые фейковые цели, услуги, паспорта и ведомства. И только после этого выполнять процедуру create_service (в параметрах указываются фейковые цели, код ведомства и т.д.). Как правило все фейковые коды начинаются со знака «-»

Создать фиктивное ведомство, если его нет в каталоге:

pgu.pkg_service2.modify_StateStructure(

i_ss => '-10000000511', -- код ведомства (extid в процедуре create_service). Код ведомства также можно получить, выполнив процедуру pgu.pkg_service2.gen_extid('86', '86203'), где 86 – код региона, а '86203' – номер услуги

i_title =>ss_title, -- наименование фейкового ведомства

i_short_title => ss_title,

i_admlevel => 1, -- уровень ведомства (ext_id) согласно таблице GOVSRVREG.p_adm_level;

i_type => 9, -- тип ведомства (ext_id) из таблицы GOVSRVREG.P_STATE_STRUCTURE_TYPE

i_subord_type => 1 -- тип подчинения (ext_id) ведомства согласно таблице GOVSRVREG.p_subordination_type;

);

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

pgu.pkg_service2.modify_passport(

i_passport => target, -- код паспорта для данной цели, совпадает с кодом цели для фиктивных объектов

i_title => p_name, -- полное наименование фейкового паспорта

i_short_title => p_short_name, -- краткое наименование фейкового паспорта

i_ss => ss, -- код ведомства

i_admlevel => 'FEDERAL', -- код уровень ведомства согласно таблице GOVSRVREG.p_adm_level (FEDERAL – Федеральные; REGIONAL – Региональные; OTHER – Прочие; MUNICIPAL - Муниципальные)

i_okato => '00000000000'); -- ОКАТО, 00000000000 для федеральных услуг

Создать фиктивную услугу (процедуру) паспорта и ее цель, если его нет в каталоге:

pgu.pkg_service2.modify_target(

i_target => target,

i_passport => target, -- код паспорта для данной цели, совпадает с кодом цели для фейковых объектов

i_title => t_name,

i_okato => '00000000000');

Затем выполняется процедура create_service с созданными фейковыми объектами.

Основной и наиболее простой вариант публикации услуги – через Публикатор. Публикатор доступен из дизайнера (Рис.12)

Рисунок 12. Кнопка Публикатора.

После выбора в выпадающем списке «Опубликовать»: «Форму». Откроется окно публикатора (Рис. 13)

Рисунок 13. Окно Публикатора.

Описание механизма работы с публикатором содержится в следующем документе:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: