如何使用CSOM获取分配批准项目?

时间:2019-06-10 06:55:14

标签: c# sharepoint-2013

当前,我正在开发一种应用程序,以更简单的方式访问我的公司Sharepoint网站。我的应用程序功能之一是访问Approvals项目(或在我的研究中定义为_moderationStatus)。

我已经做了很多研究以完成此任务,但是我发现是从List获得批准(_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
}

如果我可以在共享点列表中获取TaskList,则可以使用该代码,但找不到它们。如果有其他解决方案,那就太好了。

1 个答案:

答案 0 :(得分:0)

以下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);
}