WriteReportings — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 4: Строка 4:
 
== Параметры ==
 
== Параметры ==
  
* {{Шаблон:ApiParam|Catalog|1|объект|[[Каталог|объект Каталог]] - объект с массивом вложений и параметрами загрузки}}
+
* {{Шаблон:ApiParam|Catalog|1|объект| объект с массивом вложений}}
 +
** {{Шаблон:ApiParam|Вложение||массив| Массив вложений для загрузки}}
 +
*** {{Шаблон:ApiParam|Файл||объект| Объект файл}}
 +
**** {{Шаблон:ApiParam|Имя||строка| Имя файла}}
 +
**** {{Шаблон:ApiParam|ДвоичныеДанные||строка| Файл в виде двоичных данных( Не допускается использовать одновременно с Строка, ПутьКФайлу, Ссылка )}}
 +
**** {{Шаблон:ApiParam|Строка||строка| Файл в виде строки( Не допускается использовать одновременно с ДвоичныеДанные, ПутьКФайлу, Ссылка )}}
 +
**** {{Шаблон:ApiParam|ПутьКФайлу||строка| Путь до файла на PC( Не допускается использовать одновременно с ДвоичныеДанные, Строка, Ссылка )}}
 +
**** {{Шаблон:ApiParam|Ссылка||строка| Ссылка на файл на СБИС.Диск( Не допускается использовать одновременно с ДвоичныеДанные, Строка, ПутьКФайлу )}}
 
== Результат ==
 
== Результат ==
  
#* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
+
* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
#* {{Шаблон:ApiParam|Result||объект| объект [[РезультатЗагрузки|РезультатЗагрузки]]}}
+
* {{Шаблон:ApiParam|Result||объект| объект}}
#* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}}
+
** {{Шаблон: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 лежит текст "#UPLOAD"( См. [[ #Исключения ]] №2 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС.
+
## Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида 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.reportings.complete" возвращает [[ #Результат]], сериализованный в строку.
+
## В случае успеха плагин пробрасывает событие с именем "extsdk2.async.complete" возвращает [[ #Результат]], сериализованный в строку.
## В случае ошибки плагин пробрасывает событие с именем "extsdk2.reportings.error"( См. [[ #Исключения ]] №3 ).
+
## В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error"( См. [[ #Исключения ]] №3 ).
  
  
Строка 41: Строка 77:
 
       {
 
       {
 
         'method_name': 'AsyncUploadAttachments b3e310ec-7d85-4026-bfad-228690f38d55'
 
         'method_name': 'AsyncUploadAttachments b3e310ec-7d85-4026-bfad-228690f38d55'
      }
 
    ]
 
  }
 
}
 
</source>
 
# Сообщение об ошибке с текстом "#UPLOAD" и кодом 308
 
#:<source lang="json">
 
{
 
  'type': 'Error',
 
  'queryID': 'b3e310ec-7d85-4026-bfad-228690f38d55',
 
  'data': {
 
    'code': 308,
 
    'detail': '#UPLOAD',
 
    'dump': {},
 
    'message': 'Ожидайте загрузки документа',
 
    'method_name': 'ExtSdk2.WriteReportingsEx',
 
    'stack': [
 
      {
 
        'method_name': 'WriteReportingsEx b3e310ec-7d85-4026-bfad-228690f38d55'
 
 
       }
 
       }
 
     ]
 
     ]

Версия 15:21, 13 октября 2021

Описание

Метод позволяет за один вызов загрузить отчетность в СБИС.

Параметры

  • Catalog ! (объект) - объект с массивом вложений
    • Вложение (массив) - Массив вложений для загрузки
      • Файл (объект) - Объект файл
        • Имя (строка) - Имя файла
        • ДвоичныеДанные (строка) - Файл в виде двоичных данных( Не допускается использовать одновременно с Строка, ПутьКФайлу, Ссылка )
        • Строка (строка) - Файл в виде строки( Не допускается использовать одновременно с ДвоичныеДанные, ПутьКФайлу, Ссылка )
        • ПутьКФайлу (строка) - Путь до файла на PC( Не допускается использовать одновременно с ДвоичныеДанные, Строка, Ссылка )
        • Ссылка (строка) - Ссылка на файл на СБИС.Диск( Не допускается использовать одновременно с ДвоичныеДанные, Строка, ПутьКФайлу )

Результат

  • QueryId (строка) - Идентификатор запроса в плагин
  • Result (объект) - объект
    • ПервичныйКлюч (число) - Первичный ключ загрузки
    • Статус (число) - Статус загрузки
    • ПараметрыЗагрузки (объект) - Параметры загрузки
      • ИсточникЗагрузки (число) - Подробнее
      • ИдГруппыЗагрузок (строка) - опциональный Подробнее
      • ДлительнаяОперация (булево) - true/false По умолчанию стоит true, поэтому если длительная операция не требуется необходимо указать false
      • ТипРеестра (строка) - [ Подробнее]
    • Ошибка (строка) - Содержит текст ошибки, если обработка загрузки завершилась с ошибкой
    • ЗагруженныеФайлы (массив) - Список загруженных файлов
      • ПервичныйКлюч (число) - Идентификатор (первичный ключ) загружаемого файла
      • Имя (строка) - Имя файла
      • Размер (строка) - Размер файла в байтах
      • Тип (число) - Тип загруженного файла Подробнее
      • Документ (число) - Первичный ключ документа (если есть)
      • ИдДокумента (строка) - Идентификатор документа (если есть)
      • ИмяДокумента (строка) - Имя документа (если есть)
      • ТипДокумента (строка) - Тип документа из сервиса форматов (если есть)
      • ПодТипДокумента (строка) - Подтип документа из сервиса форматов (если есть)
      • Параметры (объект) - Параметры загружаемого файла
      • Информация (объект) - Информация о загружаемом файле (заполняется загрузчиком)
    • НеЗагруженныеФайлы (массив) - Список файлов, которые не удалось загрузить
      • ПервичныйКлюч (число) - Идентификатор (первичный ключ) загружаемого файла
      • Имя (строка) - Имя файла
      • Размер (строка) - Размер файла в байтах
      • Параметры (объект) - Параметры загружаемого файла
      • Информация (объект) - Информация о загружаемом файле (заполняется загрузчиком)
      • ТекстОшибки (строка) - Текст ошибки загрузки файла
      • ТекстОшибкиПользователю (строка) - Текст ошибки загрузки файла для информационного сообщения пользователю
      • КодОшибки (число) - Код ошибки
  • Stat (объект) - статистика времени выполнения операции

Алгоритм работы

  1. Принимаем на вход JSON объект объект Каталог с массивом вложений.
  2. Если требуется загрузка файлов на СБИС.Диск( Параметр Ссылка проставлен не во всех вложениях ). Если все ссылки изначально проставлены, то сразу переход к п.3
    1. Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
      1. В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. #Исключения №3 ). Обработка вложений плагином немедленно завершается.
  3. Загрузка отчетности в СБИС
    1. Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС.
    2. Если во вложениях ссылки проставлялись плагином, то вызываем метод Uploading.Create и ожидаем событие окончания загрузки.
  4. При получении события окончания загрузки вызываем метод Uploading.GetResult передав идентификатор загрузки из события.
  5. Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта
    1. В случае успеха плагин пробрасывает событие с именем "extsdk2.async.complete" возвращает #Результат, сериализованный в строку.
    2. В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error"( См. #Исключения №3 ).


Исключения

  1. Сообщение об ошибке с текстом "#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'
          }
        ]
      }
    }
  2. Сообщение extsdk2.async.error об ошибке с QueryId вызываемого метода
    {
      
    }
  3. Сообщение extsdk2.reportings.error об ошибке с QueryId вызываемого метода
    {
      
    }

Пример успешного вызова

Запрос

{
  
}

Ответ

{