在我提出问题之前,我想简要介绍一下这个主题。
我获得了一个启用了内容审批功能的sharepoint列表(SP 2013)。对于此列表,您可以选择应该查看项目草稿版本的人员。这里的大多数逻辑选项是让作者和所有批准者看到草稿。现在想象一个项目已被批准,现在再次编辑。有一个版本是草稿(因为它需要再次批准)和之前已经批准的版本。
这是棘手的部分:-)。我通过REST api获取该列表的项目。我的查询包含“_ModerationStatus eq 0”,这意味着我只获取已批准的项目。不允许查看草稿的用户自动获得该项目的最后批准版本,尽管有一个草稿版本等待批准。允许查看草稿版本的用户看到(我希望这里有不同的东西)没有!因此,对于能够查看草稿的用户而言,查询不会获取最后批准的项目。现在如果我执行没有“_ModerationStatus eq 0”的查询,这些用户会看到草稿版本,而其他人(不允许看草稿)仍然会看到最后批准的版本。
所以最后我的问题是:有没有机会改变这个beaviour?我希望SP通过REST api为所有用户返回最后批准的版本。如果这些用户打开SP列表本身,他们肯定会看到草稿。所以它只是关于其余的api。
我不认为这是可能的(没有找到任何改变它的东西)而且我认为REST api只是反映了SP列表视图本身的本机视图行为的行为。
提前谢谢! 问候 本
答案 0 :(得分:0)
以下是此问题的两种可能解决方案:
答:工作清单 - >新的或更改的项目 - >工作流程 - >创建或更新列表B:生产列表
上的项目使用项目的唯一ID来检查列表B中是否已存在项目。
使用OData__ModerationStatus,可以获取您的请求通过REST获取的每个项目的批准状态。因此,您可以将标记DRAFT放置到任何未批准的草稿版本,以便让作者和所有批准者知道这不是批准的版本。
当然可以获得每个项目的最后批准版本,但这将导致需要额外的请求和验证等。
希望这会有所帮助:)
答案 1 :(得分:-1)
只需使用以下内容,
http://WebAppUrl/_api/web/getfilebyserverrelativeurl('/RelativePathToFile')/MajorVersion
示例:
http://contoso.com/_api/web/getfilebyserverrelativeurl('/_catalogs/masterpage/css/main.css')/MajorVersion
返回最近发布的主要版本