2017-07-31 24 views
0

我們在Sharepoint 2010中有一個批准工作流程,當用戶上傳文檔時,他們可以啓動此批准工作流程,並指定幾個人批准/拒絕。該文檔在開始時位於In Process,並且在所有人都批准後移至ReleasedSharepoint 2010 COM - 如何批准C#中的任務?

現在我要批准/ C#中的ASP.NET網頁拒絕的任務,它包括:

  1. 獲取由指定的人,也就是說,如果湯姆登錄,它可以顯示所有任務的所有尚未完成的任務他正在等待,就像他在瀏覽器中打開Sharepoint一樣。

  2. 如何批准/拒絕C#中的一個任務?

我是一個新的Sharepoint客戶端對象模型,如果有人可以給我示例代碼參考,謝謝。

更新時間:

這裏是我使用,分配憑據上下文有關的代碼,但沒有在目標項目回來,我無法獲得任務物品清單。

[代碼] [1]

這裏是所有開放項目的圖片,我沒有分配的任務,但我可以看到所有正在進行的項目。

Open items to be approved picture

新的代碼仍然不工作,看起來像什麼返回的方法context.Web.Lists.GetByTitle(「任務」);

[上對象項目快速觀看] [1]

能否請你告訴我如何檢查表的名字嗎?我試圖改變WBXmlList,它返回值,但不能閱讀,也沒有鑰匙「AssignedTo」

WBXmlList

回答

0

對於您的情況需要,適當CAML查詢和任務審批代碼。

入門未完成任務的用戶:

string url = "http://sharepointsite/"; 
var context = new ClientContext(url); 
var query = @" 
<View> 
    <Query> 
     <Where> 
      <And> 
       <Eq> 
        <FieldRef Name='Completed' /> 
        <Value Type='Boolean'>0</Value> 
       </Eq> 
       <Eq> 
        <FieldRef Name='AssignedTo' LookupId='True'/> 
        <Value Type='Lookup'> 
         <UserID/> 
        </Value> 
       </Eq> 
      </And> 
     </Where> 
    </Query> 
</View>"; 
var camlQuery = new CamlQuery() { ViewXml = query }; 
var list = context.Web.Lists.GetByTitle("Tasks"); 
var items = list.GetItems(camlQuery); 
context.Load(items); 
context.ExecuteQuery(); 

接受/拒絕的任務:

string outcome = "Approved"; // "Rejected" 
var task = GetTask(id); // to implement 
task["Completed"] = true; 
task["PercentComplete"] = 1.0f; 
task["Status"] = "Completed"; 
task["WorkflowOutcome"] = outcome; 
task["FormData"] = outcome; 

讓所有任務:

string url = "http://sharepointsite/"; 
var context = new ClientContext(url);  
var camlQuery = CamlQuery.CreateAllFoldersQuery(); 
var list = context.Web.Lists.GetByTitle("Tasks"); 
var items = list.GetItems(camlQuery); 
context.Load(items); 
context.ExecuteQuery(); 
+0

感謝您的代碼,我運行它,但沒有在對象「項目」中返回,我可以看到幾個文件正在等待批准在Sharepoint網站。 你能再請教嗎? 謝謝。 –

+0

用你的代碼更新你的答案,所以我們可以處理 - 你需要用你的內部替換我的網址, - 像你這樣從圖像 – tinamou

+0

上傳我的代碼截圖到我的問題現在,我已經取代了實際的網址。 –

相關問題