Виды событий - Сценарии ExtSdk2 — различия между версиями
(Новая страница: «<syntaxhighlight lang="python" line='line'> ole = win32com.client.Dispatch("Tensor.SbisPluginClientCOM") guid_module = ole.GetModule(name) query_id…») |
|||
(не показано 17 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | При работе с модулем ExtSdk2 Вы можете получить ряд событий. Информация из событий варьируется в зависимости от типа пришедшего сообщения. Это может быть успешное как успешное выполнение метода, так и ошибка. Предложенные события в этой статье приходят при вызове методов [[ReadAllObject|ReadAllObject]] и [[ReadAllXml2|ReadAllXml2]]. Рекомендуем ознакомиться с видами событий и их обработкой ниже в статье. | |
− | + | == Примеры ответов от модуля == | |
− | + | === Событие Message === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | Ответ такого типа содержит в себе результат работы вызываемого метода по переданному queryID при синхронной работе с плагином. Поле 'Result' содержит результат работы метода. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Строка 57: | Строка 19: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Событие Error === | === Событие Error === | ||
− | Событие типа Error | + | |
+ | Событие типа Error приходит когда при вызове метода происходит ошибка. Данные об ошибке лежат в поле 'data'. | ||
+ | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Строка 74: | Строка 38: | ||
=== Событие Error #ASYNC === | === Событие Error #ASYNC === | ||
+ | |||
+ | Событие типа Error #ASYNC приходит когда при вызове асинхронного метода необходимо сообщить пользователю, что метод начал асинхронную работу и необходимо ждать одно из событий [[Обработка_ответов_от_плагина_-_Сценарии_ExtSdk2#События Event #ASYNC|Event #ASYNC]]. Данные об ошибке лежат в поле 'data'. Такую ошибку можно легко отличить от других по ключевому слову '#ASYNC' в поле 'detail'. | ||
+ | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Строка 94: | Строка 61: | ||
=== Событие Event === | === Событие Event === | ||
− | + | Данный ответ от плагина можно получить при взаимодействии с плагином. Например при подключении к плагину, где в объекте ответа в поле 'eventName' лежит 'connected'. | |
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Строка 104: | Строка 71: | ||
'data': ... | 'data': ... | ||
} | } | ||
− | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | === События Event #ASYNC === |
+ | |||
+ | ==== Событие extsdk2.async.complete ==== | ||
+ | |||
+ | Данное событие приходит при успешном выполнении асинхронного метода. Это можно понять по полю 'eventName' со значением 'extsdk2.async.complete'. Идентификатор ответа следует смотреть в поле 'QueryId'. | ||
+ | |||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> | ||
{ | { | ||
Строка 120: | Строка 91: | ||
'Result': {...}, | 'Result': {...}, | ||
'Stat': {...} | 'Stat': {...} | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | ==== Событие extsdk2.async.error==== | ||
+ | |||
+ | Данное событие приходит при не успешном выполнении асинхронного метода. Это можно понять по полю 'eventName' со значением 'extsdk2.async.error'. Идентификатор ответа следует смотреть в поле 'QueryId'. | ||
+ | |||
+ | <syntaxhighlight lang="json"> | ||
+ | { | ||
+ | 'type': 'Event', | ||
+ | 'data': { | ||
+ | 'channelName': 'SbisPluginEvent', | ||
+ | 'eventName': 'extsdk2.async.error', | ||
+ | 'type': 'object', | ||
+ | 'data': { | ||
+ | 'QueryId': '4fb98709-0264-4e01-a0aa-e4d30b4b65a7', | ||
+ | 'Error': {...} | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | ==== Событие extsdk2.async.progress==== | ||
+ | |||
+ | Данное событие приходит при длительном выполнении асинхронного метода. Это можно понять по полю 'eventName' со значением 'extsdk2.async.progress'. Идентификатор ответа следует смотреть в поле 'QueryId'. В поле 'Progress' можно увидеть прогресс выполнения метода в процентах. | ||
+ | |||
+ | <syntaxhighlight lang="json"> | ||
+ | { | ||
+ | 'type': 'Event', | ||
+ | 'data': { | ||
+ | 'channelName': 'SbisPluginEvent', | ||
+ | 'eventName': 'extsdk2.async.progress', | ||
+ | 'type': 'object', | ||
+ | 'data': { | ||
+ | 'QueryId': '4fb98709-0264-4e01-a0aa-e4d30b4b65a7', | ||
+ | 'Progress': {...} | ||
} | } | ||
} | } |
Текущая версия на 11:43, 11 ноября 2021
При работе с модулем ExtSdk2 Вы можете получить ряд событий. Информация из событий варьируется в зависимости от типа пришедшего сообщения. Это может быть успешное как успешное выполнение метода, так и ошибка. Предложенные события в этой статье приходят при вызове методов ReadAllObject и ReadAllXml2. Рекомендуем ознакомиться с видами событий и их обработкой ниже в статье.
Содержание
Примеры ответов от модуля
Событие Message
Ответ такого типа содержит в себе результат работы вызываемого метода по переданному queryID при синхронной работе с плагином. Поле 'Result' содержит результат работы метода.
{
'type': 'Message',
'queryID': '15e79572-b1be-4dc2-a0e9-3652ecb187c5',
'data': {
'Result': ...,
'Stat': ...
}
}
}
Событие Error
Событие типа Error приходит когда при вызове метода происходит ошибка. Данные об ошибке лежат в поле 'data'.
{
'type': 'Error',
'queryID': '15e79572-b1be-4dc2-a0e9-3652ecb187c5',
'data': {
'code': ...,
'detail': ...,
'dump': {},
'message': ...,
'method_name': 'ExtSdk2....',
...
}
}
Событие Error #ASYNC
Событие типа Error #ASYNC приходит когда при вызове асинхронного метода необходимо сообщить пользователю, что метод начал асинхронную работу и необходимо ждать одно из событий Event #ASYNC. Данные об ошибке лежат в поле 'data'. Такую ошибку можно легко отличить от других по ключевому слову '#ASYNC' в поле 'detail'.
{
'type': 'Error',
'queryID': 'b3e310ec-7d85-4026-bfad-228690f38d55',
'data': {
'code': 308,
'detail': '#ASYNC',
'dump': {},
'message': 'Ожидайте загрузки документа',
'method_name': 'ExtSdk2.WriteDocumentEx',
'stack': [
{
'method_name': 'AsyncUploadAttachments b3e310ec-7d85-4026-bfad-228690f38d55'
}
]
}
}
Событие Event
Данный ответ от плагина можно получить при взаимодействии с плагином. Например при подключении к плагину, где в объекте ответа в поле 'eventName' лежит 'connected'.
{
'type': 'Event',
'data': {
'channelName': 'SbisPluginEvent',
'eventName': 'connected',
'type': 'object',
'data': ...
}
}
События Event #ASYNC
Событие extsdk2.async.complete
Данное событие приходит при успешном выполнении асинхронного метода. Это можно понять по полю 'eventName' со значением 'extsdk2.async.complete'. Идентификатор ответа следует смотреть в поле 'QueryId'.
{
'type': 'Event',
'data': {
'channelName': 'SbisPluginEvent',
'eventName': 'extsdk2.async.complete',
'type': 'object',
'data': {
'QueryId': '4fb98709-0264-4e01-a0aa-e4d30b4b65a7',
'Result': {...},
'Stat': {...}
}
}
}
Событие extsdk2.async.error
Данное событие приходит при не успешном выполнении асинхронного метода. Это можно понять по полю 'eventName' со значением 'extsdk2.async.error'. Идентификатор ответа следует смотреть в поле 'QueryId'.
{
'type': 'Event',
'data': {
'channelName': 'SbisPluginEvent',
'eventName': 'extsdk2.async.error',
'type': 'object',
'data': {
'QueryId': '4fb98709-0264-4e01-a0aa-e4d30b4b65a7',
'Error': {...}
}
}
}
Событие extsdk2.async.progress
Данное событие приходит при длительном выполнении асинхронного метода. Это можно понять по полю 'eventName' со значением 'extsdk2.async.progress'. Идентификатор ответа следует смотреть в поле 'QueryId'. В поле 'Progress' можно увидеть прогресс выполнения метода в процентах.
{
'type': 'Event',
'data': {
'channelName': 'SbisPluginEvent',
'eventName': 'extsdk2.async.progress',
'type': 'object',
'data': {
'QueryId': '4fb98709-0264-4e01-a0aa-e4d30b4b65a7',
'Progress': {...}
}
}
}