簡體   English   中英

Sharepoint 基礎 REST 接口,更新 object 失敗

[英]Sharepoint Foundation REST interface, updating an object fails

我正在使用此處詳細介紹的 REST 接口 - https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ff521587(v%3Doffice.14)

作為概念證明,我正在嘗試從我們的 Sharepoint 2010 內部網站點訪問列表中的項目並更新字段。

為此,我創建了一個連接到端點 (AccountingWorkflowsDataContext) 的 OData 服務,這是我的代碼 -

var tasks = new AccountingWorkflowsDataContext(new Uri(
                    "https://mysite/_vti_bin/ListData.svc"));


tasks.Credentials = new NetworkCredential("username", "password", "domain");
var task = tasks.GLRecsTasks.Where(x => x.StatusValue != "Completed" && (x.AssignedToId == 1 || x.AssignedToId == 2)).First();

task.DueDate = DateTime.Now.AddDays(5);
tasks.UpdateObject(task);
tasks.SaveChanges();

我可以連接到列表,我正在選擇正確的項目,並且我也在跟蹤對它的更改,但是,對 SaveChanges 的調用總是失敗,並顯示消息“處理此請求時發生錯誤”。 內在的例外是 -

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code></code>
  <message xml:lang="en-US">An error occurred while processing this request.</message>
</error>

有人可以對此有所了解。

我必須使用托管客戶端 Object Model來完成此操作。

我試圖檢索分配給特定用戶的打開的工作流任務並將其分配給不同的人,由於某種原因,REST 界面在重新分配期間拋出錯誤。

這是我使用托管客戶端 Object Model 的代碼(不是生產就緒,但可以開始使用

                using (ClientContext context = new ClientContext("siteURL"))
                {
                    context.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo("login", "password");

                    Web web = context.Web;
                    var result = context.Web.Lists.GetByTitle("TaskListName");

                    var query = new CamlQuery()
                    {
                        ViewXml =
                            "<View><Query><Where><And><Eq><FieldRef Name='Status' /><Value Type='Text'>Not Started</Value></Eq><Eq><FieldRef Name='AssignedTo' /><Value Type='User'>UserName</Value></Eq></And></Where></Query></View>"
                    };
                    var items = result.GetItems(query);
                    context.Load(items);
                    context.ExecuteQuery();

                    foreach (var item in items)
                    {
                        item["AssignedTo"] = new FieldUserValue() { LookupId = NewUserID };
                        item.Update();
                    }

                    context.ExecuteQuery();
                }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM