WriteReportings — различия между версиями
Строка 4: | Строка 4: | ||
== Параметры == | == Параметры == | ||
− | * {{Шаблон:ApiParam|Catalog|1|объект | + | * {{Шаблон:ApiParam|Catalog|1|объект| объект с массивом вложений}} |
+ | ** {{Шаблон:ApiParam|Вложение||массив| Массив вложений для загрузки}} | ||
+ | *** {{Шаблон:ApiParam|Файл||объект| Объект файл}} | ||
+ | **** {{Шаблон:ApiParam|Имя||строка| Имя файла}} | ||
+ | **** {{Шаблон:ApiParam|ДвоичныеДанные||строка| Файл в виде двоичных данных( Не допускается использовать одновременно с Строка, ПутьКФайлу, Ссылка )}} | ||
+ | **** {{Шаблон:ApiParam|Строка||строка| Файл в виде строки( Не допускается использовать одновременно с ДвоичныеДанные, ПутьКФайлу, Ссылка )}} | ||
+ | **** {{Шаблон:ApiParam|ПутьКФайлу||строка| Путь до файла на PC( Не допускается использовать одновременно с ДвоичныеДанные, Строка, Ссылка )}} | ||
+ | **** {{Шаблон:ApiParam|Ссылка||строка| Ссылка на файл на СБИС.Диск( Не допускается использовать одновременно с ДвоичныеДанные, Строка, ПутьКФайлу )}} | ||
== Результат == | == Результат == | ||
− | + | * {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}} | |
− | + | * {{Шаблон:ApiParam|Result||объект| объект}} | |
− | + | ** {{Шаблон:ApiParam|ПервичныйКлюч||число| Первичный ключ загрузки}} | |
+ | ** {{Шаблон:ApiParam|Статус||число| Статус загрузки}} | ||
+ | ** {{Шаблон:ApiParam|ПараметрыЗагрузки||объект| Параметры загрузки}} | ||
+ | *** {{Шаблон:ApiParam|ИсточникЗагрузки||число| [https://wi.sbis.ru/doc/edo/fileloader/API/definitions/source/ Подробнее]}} | ||
+ | *** {{Шаблон:ApiParam|ИдГруппыЗагрузок||строка| опциональный [https://wi.sbis.ru/doc/edo/fileloader/API/definitions/group_id/ Подробнее]}} | ||
+ | *** {{Шаблон:ApiParam|ДлительнаяОперация||булево| true/false По умолчанию стоит true, поэтому если длительная операция не требуется необходимо указать false}} | ||
+ | *** {{Шаблон:ApiParam|ТипРеестра||строка| [ Подробнее]}} | ||
+ | ** {{Шаблон:ApiParam|Ошибка||строка| Содержит текст ошибки, если обработка загрузки завершилась с ошибкой}} | ||
+ | ** {{Шаблон:ApiParam|ЗагруженныеФайлы||массив| Список загруженных файлов}} | ||
+ | *** {{Шаблон:ApiParam|ПервичныйКлюч||число| Идентификатор (первичный ключ) загружаемого файла}} | ||
+ | *** {{Шаблон:ApiParam|Имя||строка| Имя файла}} | ||
+ | *** {{Шаблон:ApiParam|Размер||строка| Размер файла в байтах}} | ||
+ | *** {{Шаблон:ApiParam|Тип||число| Тип загруженного файла [https://wi.sbis.ru/doc/edo/fileloader/API/definitions/file_type/ Подробнее]}} | ||
+ | *** {{Шаблон:ApiParam|Документ||число| Первичный ключ документа (если есть)}} | ||
+ | *** {{Шаблон:ApiParam|ИдДокумента||строка| Идентификатор документа (если есть)}} | ||
+ | *** {{Шаблон:ApiParam|ИмяДокумента||строка| Имя документа (если есть)}} | ||
+ | *** {{Шаблон:ApiParam|ТипДокумента||строка| Тип документа из сервиса форматов (если есть)}} | ||
+ | *** {{Шаблон:ApiParam|ПодТипДокумента||строка| Подтип документа из сервиса форматов (если есть)}} | ||
+ | *** {{Шаблон:ApiParam|Параметры||объект| Параметры загружаемого файла}} | ||
+ | *** {{Шаблон:ApiParam|Информация||объект| Информация о загружаемом файле (заполняется загрузчиком)}} | ||
+ | ** {{Шаблон:ApiParam|НеЗагруженныеФайлы||массив| Список файлов, которые не удалось загрузить}} | ||
+ | *** {{Шаблон:ApiParam|ПервичныйКлюч||число| Идентификатор (первичный ключ) загружаемого файла}} | ||
+ | *** {{Шаблон:ApiParam|Имя||строка| Имя файла}} | ||
+ | *** {{Шаблон:ApiParam|Размер||строка| Размер файла в байтах}} | ||
+ | *** {{Шаблон:ApiParam|Параметры||объект| Параметры загружаемого файла}} | ||
+ | *** {{Шаблон:ApiParam|Информация||объект| Информация о загружаемом файле (заполняется загрузчиком)}} | ||
+ | *** {{Шаблон:ApiParam|ТекстОшибки||строка| Текст ошибки загрузки файла}} | ||
+ | *** {{Шаблон:ApiParam|ТекстОшибкиПользователю||строка| Текст ошибки загрузки файла для информационного сообщения пользователю}} | ||
+ | *** {{Шаблон:ApiParam|КодОшибки||число| Код ошибки}} | ||
+ | * {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}} | ||
== Алгоритм работы == | == Алгоритм работы == | ||
Строка 18: | Строка 54: | ||
### В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. [[ #Исключения ]] №3 ). Обработка вложений плагином немедленно завершается. | ### В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. [[ #Исключения ]] №3 ). Обработка вложений плагином немедленно завершается. | ||
# Загрузка отчетности в СБИС | # Загрузка отчетности в СБИС | ||
− | ## Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "# | + | ## Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. [[ #Исключения ]] №1 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС. |
## Если во вложениях ссылки проставлялись плагином, то вызываем метод [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/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] передав идентификатор загрузки из события. | # При получении события окончания загрузки вызываем метод [https://wi.sbis.ru/doc/edo/fileloader/API/result/get_result/ Uploading.GetResult] передав идентификатор загрузки из события. | ||
# Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта | # Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта | ||
− | ## В случае успеха плагин пробрасывает событие с именем "extsdk2. | + | ## В случае успеха плагин пробрасывает событие с именем "extsdk2.async.complete" возвращает [[ #Результат]], сериализованный в строку. |
− | ## В случае ошибки плагин пробрасывает событие с именем "extsdk2. | + | ## В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error"( См. [[ #Исключения ]] №3 ). |
Строка 41: | Строка 77: | ||
{ | { | ||
'method_name': 'AsyncUploadAttachments b3e310ec-7d85-4026-bfad-228690f38d55' | 'method_name': 'AsyncUploadAttachments b3e310ec-7d85-4026-bfad-228690f38d55' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
] | ] |
Версия 15:21, 13 октября 2021
Содержание
Описание
Метод позволяет за один вызов загрузить отчетность в СБИС.
Параметры
- Catalog ! (объект) - объект с массивом вложений
- Вложение (массив) - Массив вложений для загрузки
- Файл (объект) - Объект файл
- Имя (строка) - Имя файла
- ДвоичныеДанные (строка) - Файл в виде двоичных данных( Не допускается использовать одновременно с Строка, ПутьКФайлу, Ссылка )
- Строка (строка) - Файл в виде строки( Не допускается использовать одновременно с ДвоичныеДанные, ПутьКФайлу, Ссылка )
- ПутьКФайлу (строка) - Путь до файла на PC( Не допускается использовать одновременно с ДвоичныеДанные, Строка, Ссылка )
- Ссылка (строка) - Ссылка на файл на СБИС.Диск( Не допускается использовать одновременно с ДвоичныеДанные, Строка, ПутьКФайлу )
- Файл (объект) - Объект файл
- Вложение (массив) - Массив вложений для загрузки
Результат
- QueryId (строка) - Идентификатор запроса в плагин
- Result (объект) - объект
- ПервичныйКлюч (число) - Первичный ключ загрузки
- Статус (число) - Статус загрузки
- ПараметрыЗагрузки (объект) - Параметры загрузки
- Ошибка (строка) - Содержит текст ошибки, если обработка загрузки завершилась с ошибкой
- ЗагруженныеФайлы (массив) - Список загруженных файлов
- ПервичныйКлюч (число) - Идентификатор (первичный ключ) загружаемого файла
- Имя (строка) - Имя файла
- Размер (строка) - Размер файла в байтах
- Тип (число) - Тип загруженного файла Подробнее
- Документ (число) - Первичный ключ документа (если есть)
- ИдДокумента (строка) - Идентификатор документа (если есть)
- ИмяДокумента (строка) - Имя документа (если есть)
- ТипДокумента (строка) - Тип документа из сервиса форматов (если есть)
- ПодТипДокумента (строка) - Подтип документа из сервиса форматов (если есть)
- Параметры (объект) - Параметры загружаемого файла
- Информация (объект) - Информация о загружаемом файле (заполняется загрузчиком)
- НеЗагруженныеФайлы (массив) - Список файлов, которые не удалось загрузить
- ПервичныйКлюч (число) - Идентификатор (первичный ключ) загружаемого файла
- Имя (строка) - Имя файла
- Размер (строка) - Размер файла в байтах
- Параметры (объект) - Параметры загружаемого файла
- Информация (объект) - Информация о загружаемом файле (заполняется загрузчиком)
- ТекстОшибки (строка) - Текст ошибки загрузки файла
- ТекстОшибкиПользователю (строка) - Текст ошибки загрузки файла для информационного сообщения пользователю
- КодОшибки (число) - Код ошибки
- Stat (объект) - статистика времени выполнения операции
Алгоритм работы
- Принимаем на вход JSON объект объект Каталог с массивом вложений.
- Если требуется загрузка файлов на СБИС.Диск( Параметр Ссылка проставлен не во всех вложениях ). Если все ссылки изначально проставлены, то сразу переход к п.3
- Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
- В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. #Исключения №3 ). Обработка вложений плагином немедленно завершается.
- Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
- Загрузка отчетности в СБИС
- Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС.
- Если во вложениях ссылки проставлялись плагином, то вызываем метод Uploading.Create и ожидаем событие окончания загрузки.
- При получении события окончания загрузки вызываем метод Uploading.GetResult передав идентификатор загрузки из события.
- Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта
- В случае успеха плагин пробрасывает событие с именем "extsdk2.async.complete" возвращает #Результат, сериализованный в строку.
- В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error"( См. #Исключения №3 ).
Исключения
- Сообщение об ошибке с текстом "#ASYNC" и кодом 308
{ 'type': 'Error', 'queryID': 'b3e310ec-7d85-4026-bfad-228690f38d55', 'data': { 'code': 308, 'detail': '#ASYNC', 'dump': {}, 'message': 'Ожидайте загрузки документа', 'method_name': 'ExtSdk2.WriteReportingsEx', 'stack': [ { 'method_name': 'AsyncUploadAttachments b3e310ec-7d85-4026-bfad-228690f38d55' } ] } }
- Сообщение extsdk2.async.error об ошибке с QueryId вызываемого метода
{ }
- Сообщение extsdk2.reportings.error об ошибке с QueryId вызываемого метода
{ }
Пример успешного вызова
Запрос
{
}
Ответ
{