2014-09-26 44 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 
    

    返回最近的主要版本發佈

    相關問題