WriteReportings — различия между версиями
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
− | Метод позволяет за один вызов загрузить отчетность в | + | Метод позволяет за один вызов загрузить отчетность в СБИС. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Параметры == | == Параметры == | ||
− | * {{Шаблон:ApiParam| | + | |
+ | * {{Шаблон:ApiParam|Catalog|1|объект|[[Каталог|объект Каталог|Объект с массивом вложений и параметрами загрузки]]}} | ||
== Результат == | == Результат == | ||
− | + | ||
− | |||
− | |||
− | |||
#* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}} | #* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}} | ||
#* {{Шаблон:ApiParam|Result||объект| Результат [https://wi.sbis.ru/doc/edo/fileloader/API/result/get_result/ Uploading.GetResult]}} | #* {{Шаблон:ApiParam|Result||объект| Результат [https://wi.sbis.ru/doc/edo/fileloader/API/result/get_result/ Uploading.GetResult]}} | ||
#* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}} | #* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}} | ||
+ | |||
+ | == Алгоритм работы == | ||
+ | |||
+ | Принимаем на вход JSON объект [[Каталог|объект Каталог]] с массивом вложений. | ||
+ | |||
+ | # Если требуется загрузка файлов на СБИС.Диск( Параметр Ссылка проставлен не во всех вложениях ). Если все ссылки изначально проставлены, то сразу переход к п.2 | ||
+ | ## Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. [[ #Исключения ]] №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина: | ||
+ | ### В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. [[ #Исключения ]] №2 ). Обработка вложений плагином немедленно завершается. | ||
+ | # Загрузка отчетности в СБИС | ||
+ | ## Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#UPLOAD"( См. [[ #Исключения ]] №3 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС. | ||
+ | ## Если во вложениях ссылки проставлялись плагином, то вызываем метод [https://wi.sbis.ru/docs/bl/FileLoader/%D0%A4%D0%B0%D1%81%D0%B0%D0%B4%20%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8/Uploading/methods/Create/?v=21.6100 Uploading.Create] и ожидаем [https://wi.sbis.ru/doc/edo/fileloader/API/event/ событие окончания загрузки]. | ||
+ | # При получении события окончания загрузки вызываем метод [https://wi.sbis.ru/doc/edo/fileloader/API/result/get_result/ Uploading.GetResult] передав идентификатор загрузки из события. | ||
+ | # Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта | ||
+ | ## В случае успеха плагин пробрасывает событие с именем "extsdk2.reportings.complete" возвращает [[ #Результат]], сериализованный в строку. | ||
+ | ## В случае ошибки плагин пробрасывает событие с именем "extsdk2.reportings.error"( См. [[ #Исключения ]] №2 ). | ||
+ | |||
+ | |||
== Исключения == | == Исключения == | ||
# Сообщение об ошибке с текстом "#ASYNC" и кодом 308 | # Сообщение об ошибке с текстом "#ASYNC" и кодом 308 | ||
Строка 66: | Строка 50: | ||
#:<source lang="json"> | #:<source lang="json"> | ||
{ | { | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</source> | </source> | ||
Строка 94: | Строка 57: | ||
<source lang="json"> | <source lang="json"> | ||
{ | { | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</source> | </source> | ||
Строка 126: | Строка 64: | ||
<source lang="json"> | <source lang="json"> | ||
{ | { | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
[[Категория:Методы ExtSdk2]] | [[Категория:Методы ExtSdk2]] |
Версия 14:16, 13 октября 2021
Содержание
Описание
Метод позволяет за один вызов загрузить отчетность в СБИС.
Параметры
- Catalog ! (объект) - объект Каталог|Объект с массивом вложений и параметрами загрузки
Результат
- QueryId (строка) - Идентификатор запроса в плагин
- Result (объект) - Результат Uploading.GetResult
- Stat (объект) - статистика времени выполнения операции
Алгоритм работы
Принимаем на вход JSON объект объект Каталог с массивом вложений.
- Если требуется загрузка файлов на СБИС.Диск( Параметр Ссылка проставлен не во всех вложениях ). Если все ссылки изначально проставлены, то сразу переход к п.2
- Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
- В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. #Исключения №2 ). Обработка вложений плагином немедленно завершается.
- Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
- Загрузка отчетности в СБИС
- Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#UPLOAD"( См. #Исключения №3 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС.
- Если во вложениях ссылки проставлялись плагином, то вызываем метод Uploading.Create и ожидаем событие окончания загрузки.
- При получении события окончания загрузки вызываем метод Uploading.GetResult передав идентификатор загрузки из события.
- Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта
- В случае успеха плагин пробрасывает событие с именем "extsdk2.reportings.complete" возвращает #Результат, сериализованный в строку.
- В случае ошибки плагин пробрасывает событие с именем "extsdk2.reportings.error"( См. #Исключения №2 ).
Исключения
- Сообщение об ошибке с текстом "#ASYNC" и кодом 308
{ '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' } ] } }
- Сообщение extsdk2.async.error об ошибке с QueryId вызываемого метода
{ }
Пример успешного вызова
Запрос
{
}
Ответ
{