WriteDocumentEx - Расширенный метод создания и отправки документа (ExtSdk2) — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 12: Строка 12:
 
#* Объект{
 
#* Объект{
 
#:: { L"QueryId", Идентификатор запроса в плагин },
 
#:: { L"QueryId", Идентификатор запроса в плагин },
#:: { L"Procent loading", Процент загрузки }
+
#:: { L"ProcentLoading", Процент загрузки }
 
#: }
 
#: }
 
# Когда вложение полностью загрузилось удаляем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ.  
 
# Когда вложение полностью загрузилось удаляем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ.  
Строка 26: Строка 26:
 
* {{Шаблон:ApiParam|Result||объект|}}
 
* {{Шаблон:ApiParam|Result||объект|}}
 
**{{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
 
**{{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
**{{Шаблон:ApiParam|QueryId||объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
+
**{{Шаблон:ApiParam|ResultDocument||объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
 
* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}}
 
* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}}
 
== Исключения ==
 
== Исключения ==

Версия 11:54, 15 февраля 2021

Описание

Метод позволяет за один вызов записать и запустить документооборот по документу.

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

Асинхронная загрузка файлов в WriteDocumentEx

  1. Модуль при старте подписывается на события FileLoadera
  2. Если в WriteDocument есть данные подлежащие загрузке через FileLoader то метод запускает загрузку всех файлов. Кладет в кэш информацию о загрузке и пробрасывает исключение "#ASYNC и кодом 100"
    Кэш загрузки документ состоит из двух словарей
    • FileLoaderAttachment[ИдЗагрузки] = {ИдДок, ИндексВложения}
    • FileLoaderDocument[ИдДок] - {Документ, Процент загрузки, Последняя дата обновления}
  3. При поступлении события файлоадера по ИдЗагрузки проверяем ждем ли мы загрузку этого файла. Если ждем, то обновляем вложение на документе и общий процент загрузки документа. Если последнее обновление документа было больше чем секунду назад, то пробрасываем событие в ВО
    • Объект{
    { L"QueryId", Идентификатор запроса в плагин },
    { L"ProcentLoading", Процент загрузки }
    }
  4. Когда вложение полностью загрузилось удаляем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ.
    • Объект{
    { L"QueryId", Идентификатор запроса в плагин },
    { L"ResultDocument", объект Документ}
    }

Если файлоадер вернул ошибку завершаем процесс ошибкой.

Параметры

Результат

Возвращает объект с идентификатором сессии, которую нужно использовать для последующих вызовов.

Исключения

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

Запрос

Ответ

Пример ответа при включенной двухфакторной аутентификации