AsyncWriteDocumentEx — различия между версиями
(не показано 11 промежуточных версий этого же участника) | |||
Строка 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", ИдДок }, |
− | Когда вложение полностью загрузилось удалем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ. Если файлоадер вернул ошибку завершаем процесс ошибкой. | + | #:: { L"Procent loading", Процент загрузки } |
+ | #: } | ||
+ | # Когда вложение полностью загрузилось удалем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ. Если файлоадер вернул ошибку завершаем процесс ошибкой. | ||
== Параметры == | == Параметры == | ||
* {{Шаблон:ApiParam|Document|1|объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}} | * {{Шаблон:ApiParam|Document|1|объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}} |
Текущая версия на 13:34, 29 января 2021
Содержание
Описание
Метод позволяет за один вызов записать и запустить документооборот по документу.
Алгоритм работы
Асинхронная загрузка файлов в AsyncWriteDocumentEx
- Модуль при старте подписывается на события FileLoadera
- Если в WriteDocument есть данные подлежащие загрузке через FileLoader то метод запускает загрузку всех файлов. Кладет в кэш информацию о загрузке и возвращает объект { L"Wait for the document to load with identificator", ИдДок }.
Кэш загрузки документ состоит из двух словарей- FileLoaderAttachment[ИдЗагрузки] = {ИдДок, ИндексВложения}
- FileLoaderDocument[ИдДок] - {Документ, Процент загрузки, Последняя дата обновления}
- При поступлении события файлоадера по ИдЗагрузки проверяем ждем ли мы загрузку этого файла. Если ждем, то обновляем вложение на документе и общий процент загрузки документа. Если последнее обновление документа было больше чем секунду назад, то пробрасываем событие в ВО
- Объект{
- { L"Identificator document", ИдДок },
- { L"Procent loading", Процент загрузки }
- }
- Когда вложение полностью загрузилось удалем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ. Если файлоадер вернул ошибку завершаем процесс ошибкой.
Параметры
- Document ! (объект) - объект Документ
Результат
Возвращает объект с идентификатором сессии, которую нужно использовать для последующих вызовов.
- Result (объект) - объект Документ
- Stat (объект) - статистика времени выполнения операции