【SharePoint WebService 更新审批状态】分享给互联网技能从业者学习和参考。
SharePoint列表使用WebService操作,可以进行增删改查,但是操作开启审批功能列表的时候,会遇到列表项审批的问题,只要进行修改,该项目就会变成待定状态,然后想要修改审批状态,就使用
UpdateListItems
方法,一直自以为是的以为,修改审批状态,不就是更新么Cmd='Update'不就可以了,事实却不是如此。审批方法名称
UpdateListItems(string ListName, XmlNode updates)参数名称
ListName
为列表名称,string类型Updates
为XmlNode类型,用于更新<Method ID='1' Cmd='Update'>
Cmd参数,Update为更新<Field Name='ID'>1</Field>
Name参数,字段名称;Field中的值,ID字段的值_ModerationStatus
为审批状态字段审批状态:
0
为已批准
1
为已拒绝
2
为待定
3
为草稿
示例代码
[C#]
WebReference.Lists listService = new WebReference.Lists(); listService.Credentials = System.Net.CredentialCache.DefaultCredentials; string strBatch = "<Method ID='1' Cmd='Update'>" +"<Field Name='ID'>1</Field>" + "<Field Name='_ModerationStatus'>0</Field></Method>"; XmlDocument xmlDoc = new System.Xml.XmlDocument(); System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch"); elBatch.InnerXml = strBatch; XmlNode ndReturn = listService.UpdateListItems("通知公告", elBatch); Console.Write("操作成功"); |
如上面的代码,居然执行完毕,也输出“操作成功”,真是见鬼了,但是审批状态,一直为待定,无论修改一次,或者修改几次,都是不会改变的,后来继续查资料,发现更新审批状态时的cmd不是update,真见鬼,居然是
Moderate
,如下面表格。string strBatch = "<Method ID='1' Cmd='Moderate'>" +"<Field Name='ID'>1</Field>" + "<Field Name='_ModerationStatus'>0</Field></Method>"; |
修改完了strBatch的Cmd以后,执行,