2014-09-26 45 views
1

在我问我的问题之前,我想给您一个关于该主题的快速概述。Sharepoint 2013 - 通过REST api仅提取上次批准的版本

我收到了启用了内容审批功能的SharePoint列表(SP 2013)。对于这个列表,你可以选择谁应该看到一个项目的草稿版本。这里的大多数逻辑选项是让作者和所有批准者看到草稿。现在设想一个项目已被批准,现在再次编辑。有一个版本是草案(因为它需要再次批准)以及之前已被批准的版本。

这里有棘手的部分:-)。我通过REST API获取该列表的项目。我的查询包括“_ModerationStatus eq 0”,这意味着我只能获取批准的项目。不允许用户查看草稿的用户会自动获得该项目的最新批准版本,尽管草案版本正在等待批准。被允许查看草稿版本的用户可以看到(我希望这里有不同的东西)没有!因此,取代上次批准的项目,查询对于能够查看草稿的用户没有任何结果。现在,如果我在没有“_ModerationStatus eq 0”的情况下执行查询,这些用户将看到草稿版本,而其他用户(不允许查看草稿)仍然会看到最新批准的版本。

所以最后我的问题是:有没有机会改变这个beaviour?我希望SP通过REST API返回所有用户的最新批准版本。如果这些用户自己打开SP列表,他们肯定应该看到草稿。所以它只是关于其余的API。

我不认为这是可能的(没有发现任何改变这一点),而且我认为REST api只是反映了SP列表视图本身的本地视图行为的行为。

预先感谢您! 问候 本

回答

0

以下是此问题的两种可能的解决方案:

  1. 创建第二个列表,并让工作流程中创建或此列表,每当一个新的或更新的项目已经批准了主要的更新项目名单。

答:工作表 - >新增或更改的项目 - >流程 - >创建或表B更新项目:Productionlist

使用项目的唯一ID检查的项目不已经名录B存在。

  • 你可以阅读关于第二个可能的解决方案在这里:https://sharepoint.stackexchange.com/questions/116921/distinguish-between-approved-and-not-approved-items-rest-api
  • 随着OData__ModerationStatus有可能获得每一个项目,你的热曲审批状态est通过REST获取。因此,您可以将标志草案放在任何未批准的草稿版本中,以便作者和所有批准者知道这不是批准的版本。

    当然,可以获得每个项目的最新批准版本,但这会导致需要额外的请求和验证等。

    希望这有助于:)

    -1

    只需使用下面,

    http://WebAppUrl/_api/web/getfilebyserverrelativeurl('/RelativePathToFile')/MajorVersion 
    

    例子:

    http://contoso.com/_api/web/getfilebyserverrelativeurl('/_catalogs/masterpage/css/main.css')/MajorVersion 
    

    返回最近的主要版本发布

    相关问题