Есть ли способ определить, когда в офисе онлайн выполняется сохранение в sharepoint, используя API API / API Pointpoint? - PullRequest
0 голосов
/ 06 сентября 2018

Мы разработали собственную CMS. Мы хотим иметь возможность редактировать документ из нашей CMS в офисе онлайн, а после редактирования загрузить его из облака обратно в нашу CMS. Для этого рабочий процесс выглядит следующим образом:

  1. Пользователь нажимает кнопку редактирования документа в нашей cms
  2. Наш веб-сервис загружает документ в нашу библиотеку документов sharepoint и возвращает URL редактирования
  3. URL-адрес редактирования открывается в новом окне, и пользователь может начать редактирование документа
  4. После изменения документа пользователем, в офисе онлайн будет отображаться «Сохранение» в верхней части экрана, и в определенный момент времени будет отображаться «Сохранено».
  5. Между тем, в браузере запущен интервальный таймер, который будет вызывать наш веб-сервис, который будет использовать API графа для получения метаданных документа, а точнее: последний измененный штамп времени
  6. Когда мы обнаруживаем, что документ был изменен онлайн, мы хотим загрузить его обратно в нашу CMS.

То, что мы видим, это то, что для обновления последней измененной отметки времени после «сохраненного» сообщения в офисе онлайн требуется произвольный период времени. Этот период может быть в диапазоне 2-60 секунд, что очень плохо для нашего интерфейса: пользователю не может быть сказано, пока мы не обнаружили изменение, и из-за этого пользователь может начать сомневаться, все ли в порядке. Кроме того, мы видим, и это еще хуже, что в течение неопределенного периода времени (скажем, 2 минуты) последняя измененная временная метка обновляется случайным образом пару раз! Когда мы загружали документ с первым последним измененным обновлением, мы не получали актуальную последнюю версию документа, поэтому кажется, что в офисе не удалось сохранить или синхронизировать все-таки.

Таким образом, вопрос в том, есть ли способ узнать, когда офисный онлайн-режим на самом деле завершил сохранение / синхронизацию, чтобы мы могли наконец начать загрузку из облака на наш cms и убедиться, что это последняя версия?

Я также пытался получить метаданные с помощью REST API sharepoint, но у него те же проблемы.

Thx!

Luxifur

редактирование:. Форматирование

1 Ответ

0 голосов
/ 07 сентября 2018

Работа вокруг вас.

Если пользователь щелкнет по редактированию в вашей CMS, вы можете сохранить версию файла в некотором кэше, и в течение этого периода времени мы можем разрешить пользователю загружать файл, но при этом необходимо предупредить пользователя о редактировании файла кем-либо (если версия файла находится в кеше, файл должен быть в редактировании). ( Вы можете решить, будет ли пользователь уведомлен после завершения редактирования файлов .)

Использование интервального таймера, запущенного в браузере, для мониторинга состояния файла. Поскольку файлы сохраняются асинхронные, а не абсолютная синхронизация. Таким образом, вы сталкиваетесь с периодом в 2-60 секунд, это нормально. В любом случае, мы только ждем, пока в браузере появится соответствующее уведомление «Сохранено».

После сохранения обновите версию файла и загрузите файл. Если кто-то открыл копию во время редактирования, мы можем предупредить ее о загрузке последней версии . Наконец удалите версию файла из кэша.

имя файла - это ключ кеша, а версия файла - это значение, вы можете настроить дизайн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...