c# - 如何使用 CSOM 获得分配批准项目?
问题描述
目前我正在开发一个应用程序以更简单的方式访问我公司的 Sharepoint 站点。我的应用程序功能之一是访问 Approvals Item(或在我的研究中定义为 _moderationStatus)。
我做了很多研究来完成这件事,但我发现是从 List 中获得 Approvals (_moderationStatus)。同时,我真正需要的是从作业/任务中获得批准。有没有办法做到这一点?
在这里,我发现与我想要的最接近的代码(我认为)
this.oListItemUpdate = oList.getItemById(listID);
var wrkFlwApproval = this.oListItem.get_item(‘_ModerationStatus’);
if(wrkFlwApproval == 0)
{
this.oListItemUpdate.set_item(‘_ModerationStatus’, 0 );
}
public enum SPModerationStatusType
{
Approved, //0
Denied, //1
Pending, //2
Draft, //3
Scheduled //4
}
如果我可以在 sharepoint List 中获取 TaskList,我可以使用该代码,但我找不到它们。如果有其他解决方案那就太好了。
解决方案
以下 CSOM 代码供您参考。
ClientContext ctx = new ClientContext("http://sp2013");
ctx.Credentials = new NetworkCredential("username", "password", "domain");
CamlQuery camlQuery = new CamlQuery();
List list = ctx.Web.Lists.GetByTitle("Tasks");
ListItemCollection listItems = list.GetItems(camlQuery);
ctx.Load(listItems);
ctx.ExecuteQuery();
foreach (var listItem in listItems)
{
string status = "";
string mStatus = listItem["_ModerationStatus"].ToString();
if (mStatus == "0")
{
status = "Approved";
}
else if (mStatus == "1")
{
status = "Denied";
}
else if (mStatus == "2")
{
status = "Pending";
}
else if (mStatus == "3")
{
status = "Draft";
}
else if (mStatus == "4")
{
status = "Scheduled";
}
Console.WriteLine("Title: " + listItem["Title"] + " Approval Status:" + status);
}