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

Материал из Справочная система Россельхознадзора
Перейти к навигации Перейти к поиску
(Создана пустая страница)
 
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
=Общие сведения=
* Подсистема обработки заявок предназначена для выполнения бизнес-операций в специализированных информационных системах Аргус, Меркурий, Веста и т.д.
* Сервис '''ApplicationManagementService''' выполняет принятие, авторизацию и маршрутизацию заявки к той или иной целевой специализированной информационной системе, а также предоставляет внешней системе результат обработки заявки.


==Принципы взаимодействия==
Работа с сервисом '''ApplicationManagementService''' реализована по псевдо-асинхронному принципу и осуществляется в два шага, оба из которых выполняются синхронно:
* '''1 шаг''' – подача запроса с заявкой на выполнение бизнес-операции и получение результата приема заявки (идентификатора заявки);
* '''2 шаг''' – подача запроса на получение результата обработки заявки/выполнения бизнес-операции с использованием полученного на шаге 1 идентификатора заявки.
Для данной схемы действуют следующие правила:
* Взаимодействие реализуется посредством запросов внешних информационных систем к ApplicationManagementService.
* Любая операция в рамках информационного взаимодействия представляет собой заявку на выполнение бизнес-операции. Заявка от внешней информационной системы попадает в ApplicationManagementService, проходит форматно-логический контроль, регистрацию (ей присваивается уникальный идентификатор), маршрутизируется на целевой внутренний сервис, который выполняет операцию.
* ApplicationManagementService позволяет отслеживать состояние данной заявки и получать результат ее выполнения.
==Возможные сценарии==
При обработке запроса возможны следующие сценарии:
<br />
1. Запрос успешно обработан.<br />
::* Заявка требует обработки (cтатус заявки - IN_PROCESS).<br />
::* Результат сформирован в рамках запроса (cтатус заявки - COMPLETED).<br />
2. Произошла ошибка при обработке запроса.<br />
::* Некорректный запрос.<br />
::* Запрос не прошёл проверку на бизнес-правила.<br />
::* Внутренняя ошибка системы.<br />
На вход сервиса '''ApplicationManagementService''' передаются следующие сведения:
* API key;
* код запрашиваемого сервиса;
* идентификатор пользователя;
* заявка ('''запрос согласно спецификации выполняемой операции''') на выполнение операции.
Результатом обработки заявки в заявочной системе является:
* сгенерированный идентификатор заявки;
* статус готовности результата.
Для получения результата обработки заявки необходимо [[#Получение результата обработки заявки|запросить результат по идентификатору заявки]].
==Используемые пространства имен и типы==
{{столбцы}}
{{столбец}}
* [[NameSpaces#http://api.vetrf.ru/schema/cdm/application|app]] (<nowiki>http://api.vetrf.ru/schema/cdm/application</nowiki>)
** [[APIKey|app:APIKey]]
** [[Application|app:Application]]
** [[ApplicationDataWrapper|app:ApplicationDataWrapper]]
** [[ApplicationStatus|app:ApplicationStatus]]
** [[ApplicationResultWrapper|app:ApplicationResultWrapper]]
{{столбец}}
* [[NameSpaces#http://api.vetrf.ru/schema/cdm/base|bs]] (<nowiki>http://api.vetrf.ru/schema/cdm/base</nowiki>)
** [[UUID|bs:UUID]]
* [[NameSpaces#http://www.w3.org/2001/XMLSchema|xs]] (<nowiki>http://www.w3.org/2001/XMLSchema</nowiki>)
** [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime]
** [http://www.w3.org/TR/xmlschema-2/#NCName xs:NCName]
** [http://www.w3.org/TR/xmlschema-2/#string xs:string]
{{столбцы/конец}}
=Подача заявки=
==Данные запроса==
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
Структура данных запроса в формате ХML.
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
  <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>
</syntaxhighlight>
</div>
</div>
===Объект submitApplicationRequest===
Заявка в единой заявочной системе на выполнение определенной операции, определяет пользователя, который инициирует запрос и содержит сведения самого запроса.
{| class="wikitable"
|-
! Поле !! Описание !! Тип !! Обязательность
|-
| '''apiKey''' || Специальный код, который идентифицирует учетную запись пользователя и позволяет веб-сервису получить доступ к информации о хозяйствующем субъекте и обслуживаемых предприятиях, к которым данный пользователь относится. || [[APIKey|app:APIKey]] || 1
|-
| [[#Объект submitApplicationRequest/application|'''application''']] || Сведения о заявке.|| [[application|app:application]] || 1
|}
===Объект [[#Объект submitApplicationRequest|submitApplicationRequest]]/'''application'''===
Сведения о заявке.
{| class="wikitable"
|-
! Поле !! Описание !! Тип !! Обязательность
|-
| '''serviceId''' || Код запрашиваемого сервиса.
|| [http://www.w3.org/TR/xmlschema-2/#NCName xs:NCName] || 1
|-
| '''issuerId''' || Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. || [[UUID|bs:UUID]] || 1
|-
| '''issueDate''' || Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime] || 1
|-
| '''data''' || Сведения о заявке (запрос согласно спецификации выполняемой операции).|| [[ApplicationDataWrapper|app:ApplicationDataWrapper]] || 1
|}
==Данные ответа==
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
Структура данных запроса в формате ХML.
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
      <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>
</syntaxhighlight>
</div>
</div>
===Объект submitApplicationResponse===
Заявка в заявочной системе, содержит сведения запроса.
{| class="wikitable"
|-
! Поле !! Описание !! Тип !! Обязательность
|-
| [[#Объект submitApplicationResponse/application|'''application''']] || Сведения о заявке.|| |[[Application|app:Application]] || 1
|}
===Объект [[#Объект submitApplicationResponse|submitApplicationResponse]]/'''application'''===
{| class="wikitable"
|-
! Поле !! Описание !! Тип !! Обязательность
|-
| '''applicationId''' || Сгенерированный идентификатор заявки. || [[UUID|bs:UUID]] || 1
|-
| '''status''' || Статус готовности результата. || [[ApplicationStatus|app:ApplicationStatus]] || 1
|-
| '''serviceId''' || Код запрашиваемого сервиса (системы, к которой обращается пользователь). || [http://www.w3.org/TR/xmlschema-2/#NCName xs:NCName] || 1
|-
| '''issuerId''' || Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. || [[UUID|bs:UUID]] || 1
|-
| '''issueDate''' || Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime]  || 1
|-
| '''rcvDate''' || Дата и время формирования результата. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime] || 1
|}
=Получение результата обработки заявки=
==Данные запроса==
<div class="toccolours mw-collapsible mw-collapsed" style="width:100%">
Структура данных запроса в формате ХML.
<div class = "mw-collapsible-content">
<syntaxhighlight lang="xml">
<ws:receiveApplicationResultRequest>
    <ws:apiKey>{xs:string}</ws:apiKey>
    <ws:issuerId>{bs:UUID}</ws:issuerId>
    <ws:applicationId>{bs:UUID}</ws:applicationId>
</ws:receiveApplicationResultRequest>
</syntaxhighlight>
</div>
</div>
===Объект receiveApplicationResultRequest===
Запрос на получение результатов обработки заявки.
{| class="wikitable"
|-
! Поле !! Описание !! Тип !! Обязательность
|-
| '''apiKey''' || Специальный код, который идентифицирует учетную запись пользователя и позволяет веб-сервису получить доступ к информации о хозяйствующем субъекте и обслуживаемых предприятиях, к которым данный пользователь относится. || [http://www.w3.org/TR/xmlschema-2/#string xs:string] || 1
|-
| '''issuerId''' || Идентификатор пользователя, обратившегося к заявочной системе. || [[UUID|bs:UUID]] || 1
|-
| '''applicationId''' || Идентификатор заявки, в заявочной системе. Хранится в базе в течение 3-х дней. По истечении 3-х дней получить ответ по applicationId будет невозможно.|| [[UUID|bs:UUID]] || 1
|}
==Данные ответа==
<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>
        <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>
</receiveApplicationResultResponse>
</syntaxhighlight>
</div>
</div>
===Объект receiveApplicationResultResponse===
Получение результатов обработки заявки.
{| class="wikitable"
|-
! Поле !! Описание !! Тип !! Обязательность
|-
| [[#Объект receiveApplicationResultResponse/application|'''application''']] || Сведения о заявке.|| [[Application|app:Application]] || 1
|}
===Объект [[#Объект receiveApplicationResultResponse|receiveApplicationResultResponse]]/'''application'''===
{| class="wikitable"
|-
! Поле !! Описание !! Тип !! Обязательность
|-
| '''applicationId''' || Сгенерированный идентификатор заявки. || [[UUID|bs:UUID]] || 1
|-
| '''status''' || Статус готовности результата. || [[ApplicationStatus|app:ApplicationStatus]] || 1
|-
| '''serviceId''' || Код запрашиваемого сервиса (системы, к которой обращается пользователь). || [http://www.w3.org/TR/xmlschema-2/#NCName xs:NCName] || 1
|-
| '''issuerId''' || Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. || [[UUID|bs:UUID]]|| 1
|-
| '''issueDate''' || Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. || [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime] || 1
|-
| '''rcvDate''' || Дата и время формирования результата. || [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]] || 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