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

Материал из razgovorov.ru
Перейти к: навигация, поиск
 
(не показано 9 промежуточных версий этого же участника)
Строка 6: Строка 6:
  
 
# Модуль при старте подписывается на события FileLoadera
 
# Модуль при старте подписывается на события FileLoadera
# Если в WriteDocument есть данные подлежащие загрузке через FileLoader то метод запускает загрузку всех файлов. Кладет в кэш информацию о загрузке и возвращает объект { L"Wait for the document to load with identificator", ИдДок }.
+
# Если в WriteDocument есть данные подлежащие загрузке через FileLoader то метод запускает загрузку всех файлов. Кладет в кэш информацию о загрузке и возвращает объект { L"Wait for the document to load with identificator", ИдДок }.<br/>Кэш загрузки документ состоит из двух словарей
Кэш загрузки документ состоит из двух словарей
+
#* FileLoaderAttachment[ИдЗагрузки] = {ИдДок, ИндексВложения}
* FileLoaderAttachment[ИдЗагрузки] = {ИдДок, ИндексВложения}
+
#* FileLoaderDocument[ИдДок] - {Документ, Процент загрузки, Последняя дата обновления}
* FileLoaderDocument[ИдДок] - {Документ, Процент загрузки, Последняя дата обновления}
 
 
# При поступлении события файлоадера по ИдЗагрузки проверяем ждем ли мы загрузку этого файла. Если ждем, то обновляем вложение на документе и общий процент загрузки документа. Если последнее обновление документа было больше чем секунду назад, то пробрасываем событие в ВО  
 
# При поступлении события файлоадера по ИдЗагрузки проверяем ждем ли мы загрузку этого файла. Если ждем, то обновляем вложение на документе и общий процент загрузки документа. Если последнее обновление документа было больше чем секунду назад, то пробрасываем событие в ВО  
{ L"Identificator document", ИдДок },
+
#* Объект{
{ L"Procent loading", Процент загрузки }
+
#:: { L"Identificator document", ИдДок },
 +
#:: { L"Procent loading", Процент загрузки }
 +
#: }
 
# Когда вложение полностью загрузилось удалем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ. Если файлоадер вернул ошибку завершаем процесс ошибкой.
 
# Когда вложение полностью загрузилось удалем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ. Если файлоадер вернул ошибку завершаем процесс ошибкой.
 
== Параметры ==
 
== Параметры ==

Текущая версия на 13:34, 29 января 2021

Описание

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

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

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

  1. Модуль при старте подписывается на события FileLoadera
  2. Если в WriteDocument есть данные подлежащие загрузке через FileLoader то метод запускает загрузку всех файлов. Кладет в кэш информацию о загрузке и возвращает объект { L"Wait for the document to load with identificator", ИдДок }.
    Кэш загрузки документ состоит из двух словарей
    • FileLoaderAttachment[ИдЗагрузки] = {ИдДок, ИндексВложения}
    • FileLoaderDocument[ИдДок] - {Документ, Процент загрузки, Последняя дата обновления}
  3. При поступлении события файлоадера по ИдЗагрузки проверяем ждем ли мы загрузку этого файла. Если ждем, то обновляем вложение на документе и общий процент загрузки документа. Если последнее обновление документа было больше чем секунду назад, то пробрасываем событие в ВО
    • Объект{
    { L"Identificator document", ИдДок },
    { L"Procent loading", Процент загрузки }
    }
  4. Когда вложение полностью загрузилось удалем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ. Если файлоадер вернул ошибку завершаем процесс ошибкой.

Параметры

Результат

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

Исключения

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

Запрос

Ответ

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