zoukankan      html  css  js  c++  java
  • 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以后,执行,执行成功!

    ******************************************************************************

    作者:霖雨

    出处:http://www.cnblogs.com/jianyus

    本文版权归 霖雨和博客园共有,欢迎转载,但请注明出处。

  • 相关阅读:
    sql中实现先排序后分组
    mysql中的锁机制之概念篇
    PHP对程序员的要求更高
    给初学PHP的学习线路和建议
    设计模式六大原则
    Mysql忘记密码怎么办
    数据库 sql
    精准优化 if…else ,干掉,过多,烂代码!
    JDK1.8 新特性(全)
    mysql 如何修改 删除 添加 表主键
  • 原文地址:https://www.cnblogs.com/jianyus/p/2534759.html
Copyright © 2011-2022 走看看