Exportcenter:ApplicationManagementService: различия между версиями

Материал из Справочная система Россельхознадзора
Перейти к навигации Перейти к поиску
 
(не показано 6 промежуточных версий этого же участника)
Строка 29: Строка 29:
* код запрашиваемого сервиса;
* код запрашиваемого сервиса;
* идентификатор пользователя;
* идентификатор пользователя;
* заявка (запрос) на выполнение операции.
* заявка ('''запрос согласно спецификации выполняемой операции''') на выполнение операции.


Результатом обработки заявки в заявочной системе является:  
Результатом обработки заявки в заявочной системе является:  
Строка 93: Строка 93:
! Поле !! Описание !! Тип !! Обязательность
! Поле !! Описание !! Тип !! Обязательность
|-
|-
| '''serviceId''' || Код запрашиваемого сервиса (системы, к которой обращается пользователь).
| '''serviceId''' || Код запрашиваемого сервиса.
* '''mercury-g2b.service''' - сервис системы Меркурий, который обрабатывает заявки от хозяйствующих субъектов.
* '''mercury-vu.service''' - сервис системы Меркурий, который обрабатывает заявки от ветеринарных управлений.
|| [http://www.w3.org/TR/xmlschema-2/#NCName xs:NCName] || 1
|| [http://www.w3.org/TR/xmlschema-2/#NCName xs:NCName] || 1
|-
|-
Строка 102: Строка 100:
| '''issueDate''' || Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime] || 1
| '''issueDate''' || Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime] || 1
|-
|-
| '''data''' || Сведения о заявке.|| [[ApplicationDataWrapper|app:ApplicationDataWrapper]] || 1
| '''data''' || Сведения о заявке (запрос согласно спецификации выполняемой операции).|| [[ApplicationDataWrapper|app:ApplicationDataWrapper]] || 1
|}
|}


Строка 180: Строка 178:


==Данные ответа==
==Данные ответа==
<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
Структура данных ответа в формате ХML.
Структура данных успешного ответа в формате ХML.
<div class = "mw-collapsible-content">
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Строка 196: Строка 195:
             <...>
             <...>
         </result>
         </result>
    </application>
</receiveApplicationResultResponse>
</syntaxhighlight>
</div>
</div>
<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
Структура данных ответа с ошибками в формате ХML.
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
<receiveApplicationResultResponse xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
    <application xmlns="http://api.vetrf.ru/schema/cdm/application">
        <applicationId>{bs:UUID}</applicationId>
        <status>{app:ApplicationStatus}</status>
        <serviceId>{xs:NCName}</serviceId>
        <issuerId>{bs:UUID}</issuerId>
        <issueDate>{xs:dateTime}</issueDate>
        <rcvDate>{xs:dateTime}</rcvDate>
        <prdcRsltDate>{xs:dateTime}</prdcRsltDate>
        <errors>
            <error code="{xs:NCName}">{xs:string}</apl:error>
            <error code="{xs:NCName}">{xs:string}</apl:error>
            <!-- ... -->
        </errors>
     </application>
     </application>
</receiveApplicationResultResponse>
</receiveApplicationResultResponse>
Строка 203: Строка 227:


===Объект receiveApplicationResultResponse===
===Объект receiveApplicationResultResponse===
Получение результатов обработки заявки.
Получение результатов обработки заявки.
{| class="wikitable"
{| class="wikitable"
Строка 230: Строка 255:
| '''prdcRsltDate''' ||Дата и время получения результата выполнения заявки. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime] || 1
| '''prdcRsltDate''' ||Дата и время получения результата выполнения заявки. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime] || 1
|-
|-
| '''result''' ||Результат выполнения заявки. || [[ApplicationResultWrapper|app:ApplicationResultWrapper]] || 1
| '''result''' ||Результат выполнения заявки (ответ на запрос согласно спецификации выполняемой операции). || [[ApplicationResultWrapper|app:ApplicationResultWrapper]] || 0..1
|-
| '''errors''' ||Список ошибок. || [[BusinessErrorList|app:BusinessErrorList]] || 0..1
|}
|}

Текущая версия на 00:51, 31 марта 2023

Общие сведения

  • Подсистема обработки заявок предназначена для выполнения бизнес-операций в специализированных информационных системах Аргус, Меркурий, Веста и т.д.
  • Сервис ApplicationManagementService выполняет принятие, авторизацию и маршрутизацию заявки к той или иной целевой специализированной информационной системе, а также предоставляет внешней системе результат обработки заявки.

Принципы взаимодействия

Работа с сервисом ApplicationManagementService реализована по псевдо-асинхронному принципу и осуществляется в два шага, оба из которых выполняются синхронно:

  • 1 шаг – подача запроса с заявкой на выполнение бизнес-операции и получение результата приема заявки (идентификатора заявки);
  • 2 шаг – подача запроса на получение результата обработки заявки/выполнения бизнес-операции с использованием полученного на шаге 1 идентификатора заявки.

Для данной схемы действуют следующие правила:

  • Взаимодействие реализуется посредством запросов внешних информационных систем к ApplicationManagementService.
  • Любая операция в рамках информационного взаимодействия представляет собой заявку на выполнение бизнес-операции. Заявка от внешней информационной системы попадает в ApplicationManagementService, проходит форматно-логический контроль, регистрацию (ей присваивается уникальный идентификатор), маршрутизируется на целевой внутренний сервис, который выполняет операцию.
  • ApplicationManagementService позволяет отслеживать состояние данной заявки и получать результат ее выполнения.

Возможные сценарии

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

1. Запрос успешно обработан.

  • Заявка требует обработки (cтатус заявки - IN_PROCESS).
  • Результат сформирован в рамках запроса (cтатус заявки - COMPLETED).

2. Произошла ошибка при обработке запроса.

  • Некорректный запрос.
  • Запрос не прошёл проверку на бизнес-правила.
  • Внутренняя ошибка системы.

На вход сервиса ApplicationManagementService передаются следующие сведения:

  • API key;
  • код запрашиваемого сервиса;
  • идентификатор пользователя;
  • заявка (запрос согласно спецификации выполняемой операции) на выполнение операции.

Результатом обработки заявки в заявочной системе является:

  • сгенерированный идентификатор заявки;
  • статус готовности результата.

Для получения результата обработки заявки необходимо запросить результат по идентификатору заявки.

Используемые пространства имен и типы

Подача заявки

Данные запроса

Структура данных запроса в формате ХML.

  <ws:submitApplicationRequest>
    <ws:apiKey>{app:APIKey}</ws:apiKey>
    <app:application>
      <app:serviceId>{xs:NCName}</app:serviceId>
      <app:issuerId>{bs:UUID}</app:issuerId>
      <app:issueDate>{xs:dateTime}</app:issueDate>
      <app:data>{app:ApplicationDataWrapper}</app:data>
    </app:application>
  </ws:submitApplicationRequest>


Объект submitApplicationRequest

Заявка в единой заявочной системе на выполнение определенной операции, определяет пользователя, который инициирует запрос и содержит сведения самого запроса.

Поле Описание Тип Обязательность
apiKey Специальный код, который идентифицирует учетную запись пользователя и позволяет веб-сервису получить доступ к информации о хозяйствующем субъекте и обслуживаемых предприятиях, к которым данный пользователь относится. app:APIKey 1
application Сведения о заявке. app:application 1

Объект submitApplicationRequest/application

Сведения о заявке.

Поле Описание Тип Обязательность
serviceId Код запрашиваемого сервиса. xs:NCName 1
issuerId Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. bs:UUID 1
issueDate Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. xs:dateTime 1
data Сведения о заявке (запрос согласно спецификации выполняемой операции). app:ApplicationDataWrapper 1

Данные ответа

Структура данных запроса в формате ХML.

      <submitApplicationResponse xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
         <application xmlns="http://api.vetrf.ru/schema/cdm/application">
            <applicationId>{bs:UUID}</applicationId>
            <status>{app:ApplicationStatus}</status>
            <serviceId>{xs:NCName}</serviceId>
            <issuerId>{bs:UUID}</issuerId>
            <issueDate>{xs:dateTime}</issueDate>
            <rcvDate>{xs:dateTime}</rcvDate>
         </application>
      </submitApplicationResponse>

Объект submitApplicationResponse

Заявка в заявочной системе, содержит сведения запроса.

Поле Описание Тип Обязательность
application Сведения о заявке. app:Application 1

Объект submitApplicationResponse/application

Поле Описание Тип Обязательность
applicationId Сгенерированный идентификатор заявки. bs:UUID 1
status Статус готовности результата. app:ApplicationStatus 1
serviceId Код запрашиваемого сервиса (системы, к которой обращается пользователь). xs:NCName 1
issuerId Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. bs:UUID 1
issueDate Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. xs:dateTime 1
rcvDate Дата и время формирования результата. xs:dateTime 1

Получение результата обработки заявки

Данные запроса

Структура данных запроса в формате ХML.

<ws:receiveApplicationResultRequest>
    <ws:apiKey>{xs:string}</ws:apiKey>
    <ws:issuerId>{bs:UUID}</ws:issuerId>
    <ws:applicationId>{bs:UUID}</ws:applicationId>
</ws:receiveApplicationResultRequest>

Объект receiveApplicationResultRequest

Запрос на получение результатов обработки заявки.

Поле Описание Тип Обязательность
apiKey Специальный код, который идентифицирует учетную запись пользователя и позволяет веб-сервису получить доступ к информации о хозяйствующем субъекте и обслуживаемых предприятиях, к которым данный пользователь относится. xs:string 1
issuerId Идентификатор пользователя, обратившегося к заявочной системе. bs:UUID 1
applicationId Идентификатор заявки, в заявочной системе. Хранится в базе в течение 3-х дней. По истечении 3-х дней получить ответ по applicationId будет невозможно. bs:UUID 1

Данные ответа


Структура данных успешного ответа в формате ХML.

<receiveApplicationResultResponse xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
    <application xmlns="http://api.vetrf.ru/schema/cdm/application">
        <applicationId>{bs:UUID}</applicationId>
        <status>{app:ApplicationStatus}</status>
        <serviceId>{xs:NCName}</serviceId>
        <issuerId>{bs:UUID}</issuerId>
        <issueDate>{xs:dateTime}</issueDate>
        <rcvDate>{xs:dateTime}</rcvDate>
        <prdcRsltDate>{xs:dateTime}</prdcRsltDate>
        <result>
            <...>
        </result>
    </application>
</receiveApplicationResultResponse>


Структура данных ответа с ошибками в формате ХML.

<receiveApplicationResultResponse xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
    <application xmlns="http://api.vetrf.ru/schema/cdm/application">
        <applicationId>{bs:UUID}</applicationId>
        <status>{app:ApplicationStatus}</status>
        <serviceId>{xs:NCName}</serviceId>
        <issuerId>{bs:UUID}</issuerId>
        <issueDate>{xs:dateTime}</issueDate>
        <rcvDate>{xs:dateTime}</rcvDate>
        <prdcRsltDate>{xs:dateTime}</prdcRsltDate>
        <errors>
            <error code="{xs:NCName}">{xs:string}</apl:error>
            <error code="{xs:NCName}">{xs:string}</apl:error>
            <!-- ... -->
        </errors>
    </application>
</receiveApplicationResultResponse>

Объект receiveApplicationResultResponse

Получение результатов обработки заявки.

Поле Описание Тип Обязательность
application Сведения о заявке. app:Application 1

Объект receiveApplicationResultResponse/application

Поле Описание Тип Обязательность
applicationId Сгенерированный идентификатор заявки. bs:UUID 1
status Статус готовности результата. app:ApplicationStatus 1
serviceId Код запрашиваемого сервиса (системы, к которой обращается пользователь). xs:NCName 1
issuerId Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. bs:UUID 1
issueDate Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. xs:dateTime 1
rcvDate Дата и время формирования результата. xs:dateTime 1
prdcRsltDate Дата и время получения результата выполнения заявки. xs:dateTime 1
result Результат выполнения заявки (ответ на запрос согласно спецификации выполняемой операции). app:ApplicationResultWrapper 0..1
errors Список ошибок. app:BusinessErrorList 0..1