设为首页 收藏本站
查看: 492|回复: 0

[经验分享] 步步为营 SharePoint 开发学习笔记系列 十、SharePoint web service 开发(下)

[复制链接]

尚未签到

发表于 2015-9-25 09:49:56 | 显示全部楼层 |阅读模式
  概要
  接下来我们介绍Lists.UpdateListItems 在更新 item做法和UserGroup.GetUserCollectionFromSite()的用法,请先学习步步为营 SharePoint 开发学习笔记系列 八、SharePoint web service 开发(上),你将更容易学习web service的开发
  Lists.UpdateListItems的用法
  更新普通list的item的xml格式

<Batch OnError="Continue" ListVersion="1"
ViewName="270C0508-A54F-4387-8AD0-49686D685EB2">
<Method ID="1" Cmd="Update">
<Field Name="ID">4<Field>
<Field Name="Field_Name">Value</Field>
</Method>
<Method ID="2" Cmd="Update">
<Field Name="ID" >6</Field>
<Field Name="Field_Name">Value</Field>
</Method>
</Batch>

  更新folder的item的xml格式

<Batch OnError="Continue" PreCalc="TRUE"
ListVersion="0"
ViewName="{EF2F5A21-0FD0-4654-84ED-112B4F5A48F8}">
<Method ID="1" Cmd="Update">
<Field Name="ID">3</Field>
<Field Name="owshiddenversion">1</Field>
<Field Name="FileRef">
http://Server/[sites/][Site/]Shared
Documents/Folder</Field>
<Field Name="FSObjType">1</Field>
<Field Name="BaseName">Name</Field>
</Method>
</Batch>

  更新documents的item的xml格式

<Batch OnError="Continue" PreCalc="TRUE"
ListVersion="0"
ViewName="{EF2F5A21-0FD0-4654-84ED-112B4F5A48F8}">
<Method ID="1" Cmd="Update">
<Field Name="ID">2</Field>
<Field Name="owshiddenversion">1</Field>
<Field Name="FileRef">
http://Server/[sites/][Site/]Shared
Documents/File</Field>
<Field Name="BaseName">Name</Field>
</Method>
</Batch>

  我们更新item时xml格式的处理

        /// <summary>
/// Get the approved XML Node that will be used for the insert method of the webservice
/// </summary>
/// <param name="batch"></param>
/// <returns></returns>
private XmlNode GetUpdateXmlNode(List<ListItemBE> batch)
{
StringBuilder xml = new StringBuilder();
xml.Append(@"<Batch OnError=""Continue"">");
foreach (ListItemBE listItem in batch)
{
xml.AppendFormat(@"<Method ID=""{0}"" Cmd=""Update"">", listItem.Id);
xml.Append(GetFieldInnerXml(listItem));
xml.Append("</Method>");
}
xml.Append("</Batch>");
//Get the Batch node
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml.ToString());
XmlNode batchNode = doc.SelectSingleNode("//Batch");
return batchNode;
}

  更新item时调用sharepoint的web service的处理

        /// <summary>
/// Insert the items
/// </summary>
/// <param name="batch"></param>
/// <returns></returns>
private UpdateResultBE UpdateItems(List<ListItemBE> batch)
{
//Get the Insert XML Node
XmlNode batchNode = GetUpdateXmlNode(batch);
XmlNode result = null;
_logger.Log("Started batch updating list Items");
try
{
//Call the webservice
result = _ws.UpdateListItems(_listProperty.ListName, batchNode);
}
catch (Exception ex)
{
_logger.Log(String.Format("Error updating Items. Exception: {0}. Stack Trace: {1}", ex.Message, ex.StackTrace));
}
_logger.Log("Finished batch updating list items");
//Transform the result into an object
UpdateResultBE insertResult = new UpdateResultBE(result, _listProperty);
LogInsertResult(insertResult);
return insertResult;
}

  UserGroup.GetUserCollectionFromSite用法
  首先建立web service的连接,代码如下

        public static SPUserGroupWS.UserGroup GetUserGroupWebService(ListBE listProperty)
{
string wsUrl = GetWSUrl(listProperty) + "_vti_bin/usergroup.asmx";
SPUserGroupWS.UserGroup ws = new SPUserGroupWS.UserGroup();
ws.Url = wsUrl;
ws.UseDefaultCredentials = true;
ws.Credentials = WSHelper.GetCredentials(listProperty.Type);
return ws;
}

  我们只取两个简单的字段做个示范

    public class UserInfoBE
{
public string ID { get; set; }
public string NTLoginName { get; set; }
}

  获取本站点用户列表的方法

        public List<UserInfoBE> GetUserInfoList()
{
List<UserInfoBE> userInfoList = new List<UserInfoBE>();
UserInfoBE listItem;
XmlNode nodes = ws.GetUserCollectionFromSite();
foreach (XmlNode node in nodes)
{
if (node.Name == "Users")
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes.Name == "User")
{
listItem = new UserInfoBE();
listItem.ID = node.ChildNodes.Attributes["ID"].Value;
listItem.NTLoginName = node.ChildNodes.Attributes["LoginName"].Value;
userInfoList.Add(listItem);
}
}
}
}
return userInfoList;
}

  这样就可以通过web service获取站点用户列表信息,但要注意的是,web service的用户名和密码必须是sharepoint站点的管理员.
  总结
  学会sharepoint的web service用户对在做sharepoint站点的数据迁移时很有帮助。
  作者:spring yang
  出处:http://www.cnblogs.com/springyangwc/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118507-1-1.html 上篇帖子: 步步为营 SharePoint 开发学习笔记系列 十一、SharePoint 对list操作 下篇帖子: 使自定义的aspx页面仅用于部分SharePoint站点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表