有没有办法使用图形API / sharepoint API检测办公室在线完成何时保存在sharepoint中?

问题描述 投票:0回答:1

我们开发了自己的CMS。我们希望能够在办公室的CMS中编辑文档,并在编辑后将其从云端下载回CMS。为此,工作流程如下:

  1. 用户单击我们的cms中的文档编辑
  2. 我们的Web服务将文档上传到您的sharepoint文档库并返回编辑URL
  3. 编辑URL在新窗口中打开,用户可以开始编辑文档
  4. 在用户更改文档后,在线办公室将在屏幕顶部显示“正在保存”,并在某个时间点显示“已保存”。
  5. 同时,我们在浏览器中运行了一个间隔计时器,它将调用我们的web服务,它将使用图形API来获取文档的元数据,更准确地说:最后修改的时间戳
  6. 当我们检测到文档在线更改时,我们希望将其下载回CMS。

我们看到的是,在办公室在线“保存”消息之后更新最后修改的时间戳之前需要一段随机的时间。这段时间可以在2-60秒的范围内,这对我们的界面来说很糟糕:用户无法被告知我们检测到了这一变化,因此,用户可能会开始怀疑一切是否正常。我们所看到的,更糟糕​​的是,在未定义的时间段(比如2分钟)内,最后修改的时间戳会随机更新几次!当我们在最后一次修改更新时下载文档时,我们将无法获得文档的实际最新版本,因此看起来办公室毕竟没有保存或同步。

所以问题是,有没有办法知道什么时候在线办公室实际上已经完成保存/同步,所以我们终于可以开始从云下载到我们的cms,并确保它是最新的?

我也尝试使用sharepoint REST API获取元数据,但这也有同样的问题。

谢谢!

Luxifur

编辑:格式化。

office365 sharepoint-2013 azure-ad-graph-api
1个回答
0
投票

为你解决问题。

如果用户单击CMS中的编辑,则可以将文件版本存储到某个缓存中,在此期间我们可以让用户下载文件,但需要提醒用户正在编辑的文件(如果是文件版本)在缓存中,文件必须在编辑中)。 (您可以决定在完成文件编辑后是否通知用户。)

使用浏览器中运行的间隔计时器来监视文件状态。因为保存的文件是异步的,而不是绝对同步。所以你遇到2-60秒的时间范围是正常的。无论如何,我们只等待浏览器中出现“Saved”的相应通知。

保存完成后,更新文件版本并下载文件。如果有人在编辑过程中打开了副本,我们可以提醒它下载最新版本。最后从缓存中删除文件版本。

文件名是缓存键,文件版本是值,可以调整设计

© www.soinside.com 2019 - 2024. All rights reserved.