SharePoint API测试系列——Records.BypassLocks测试

对于SharePoint中已经是Record的Item,我们想要修改他的属性,这在UI界面是无法完成的:

这时需要通过Records.BypassLocks API来完成。设计一个tool,利用Records.BypassLocks API来修改Recorded Items的属性(这里拿Title举例),界面如下:

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
//Assembly:  Microsoft.Office.Policy (in Microsoft.Office.Policy.dll)
using Microsoft.Office.RecordsManagement.RecordsRepository;
using Microsoft.SharePoint.Publishing;

namespace BypassLocksTestTool
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void test_button_Click(object sender, EventArgs e)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate ()
                {
                    SPSite site = new SPSite(siteURL_textBox.Text);
                    SPWeb web = site.RootWeb;
                    SPList list = web.Lists[listTitle_textBox.Text];
                    SPListItem item = list.Items[0];
                    Records.BypassLocks(item, delegate (SPListItem spListItem)
                    {
                        //Do your stuff here.
                        item["Title"] = itemTitle_textBox.Text;
                        item.Update();
                        if (list.Items[0].Title == itemTitle_textBox.Text)
                        {
                            testResult_richTextBox.Text = "Test result is passed! Now the first item‘s title is: " + list.Items[0].Title;
                            testResult_richTextBox.Select(0, testResult_richTextBox.Text.Length);
                            testResult_richTextBox.SelectionColor = Color.Green;
                        }
                        else
                        {
                            testResult_richTextBox.Text = "Test result is failed!";
                            testResult_richTextBox.Select(0, testResult_richTextBox.Text.Length);
                            testResult_richTextBox.SelectionColor = Color.Red;
                        }
                    });
                });
            }
            catch (Exception ex)
            {
                testResult_richTextBox.Text = ex.ToString();
            }
        }
    }
}

点击Test按钮进行测试,测试结果会回显到界面,如果Title的value完成了修改,则算测试通过;否则算测试失败。

测试通过后,我们去SharePoint中查看Item的属性,结果和我们预期的一样,对应Item的Title属性值已经变为“SuperTylan”:

这就是对于Records.BypassLocks API的使用与测试,它让我们修改locked recorded item的属性与内容成为可能。

时间: 2025-01-06 22:42:55

SharePoint API测试系列——Records.BypassLocks测试的相关文章

Fitnesse测试系列--如何设置SetUp文件

又被抽去做了一段时间的Fitnesse用例的编写,现在case写了几个星期,有点收获,最近会一起整理出来. SetUp 这个页面主要被我用来做环境变量的设置了. 环境变量的设置: !note 这一部分用来在写测试步骤里包含,来定义用户场景.!note 比如!note 1,用户一($USERNAME_A)注册帐户,密码为(${PASSWORD_A}) !以下是代码!define topic_name {kindle}!define USERNAME_A {tester001}!define PAS

社保系列8——送检测试项

1.  PIN的格式是否正确 2.  卡复位信息是否规范 3.  响应报文数据域是否规范 4.  一级分散因子.二级分散因子的构成是否正确 5.  数据项"卡的标识码"中的应用城市代码是否正确 6.  数据项"规范版本"是否正确 7.  数据项"初始化机构编号"的内容是否正确 8.  规范要求的DF文件是否存在 9.  规范要求的EF文件是否存在 10. 线性记录是否以TLV格式存储 11. B-TLV记录的记录格式是否正确 12. 循环记录的记

服务端协议测试系列教程

测试技术分享之服务端协议测试系列教程 童鞋看完后有啥想法,可以发给我改进 在线播放地址:http://www.iqiyi.com/u/2013029540/a 下载地址:链接: http://pan.baidu.com/s/1boDHpbp 密码: p76e

"测试系列"文章索引

Animation/Animator Animation Play/Stop测试 关于Animation动画事件的几项测试 Rigidbody/Collider 刚体Collider包围测试(重叠后,挤出和质量的影响) Rigidbody SweepTest测试 Unity重力的测试 U3D刚体测试3(constraints) U3D刚体测试2(ForceMode,AddForce,RelativeAddForce) Rigidbody.position/rotation更新测试 斜面上的根骨骼

FPGA与simulink联合实时环路系列——实验一 测试

实验一 测试 实验内容 ????在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟悉整个基础开发流程. 创建模型 创建开发板的信息 ????在Matlab的指令窗口输入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\11.0\quartus\bin\quartus.exe

“让开发者爱上安全测试”系列之“源码安全测试”——开发者之伤

源代码安全测试不再是新鲜话题,在很多的企业已经开展了相关工作,对于已经开展此项目工作的企业来说,我想问的问题则是"在你的源代码安全测试工作中所面临的最大阻力是什么?" 这个问题不同的企业可能有不同的答案,且各有各的道理. 其实,据我总结来看,很多的阻力表象最终都可以归结为"开发人员不配合"的问题.那为什么开发人员不配合源代码安全的相关工作呢?换句话说:如何让开发者爱上安全测试呢? "源代码安全测试"--想说爱你不容易 对于开发者而言,源代码安全测

移动质量(MQ)测试系列

移动质量(MQ)测试 向移动开发者提供专业.稳定.全面.高价值的自动化测试平台. 发现 APP 中的各类隐患,包括 APP 崩溃.各类兼容性.功能性.性能问题等等. MQ 的 5 大功能(兼容性测试. 稳定性测试.H5 测试.功能测试.安全测试 )从不同的测试维度帮助开发者关注并提高了 App 的质量. MQ 测试能力一览 ? 兼容性测试 ? 稳定性测试 ? 功能测试 ? 安全测试 ? H5 测试 ? 场景测试 ? 性能测试 ? 其他更新 兼容性测试 是 MQ 为解决安卓碎片化.测试成本高.机型

SharePoint 2013 Designer系列之自定义列表表单

在SharePoint的使用中,默认的样式过于单调经常困扰着我们,其实,SharePoint使用Designer工具,可以很轻松解决这一问题,制作出各式各样漂亮的页面.下面,让我们简单介绍下这一过程. 1.首先创建一个测试列表,里面的字段如下: 2.看一眼默认的Dispform.aspx页面,对于新闻来说,基本属于不能看: 3.使用SharePoint Designer 2013打开列表,找到Dispform.aspx页面,右键在高级模式下编辑该文件,如下图: 4.一般都是隐藏默认的td,然后新

SharePoint 2013 Designer系列之数据视图筛选

在SharePoint中,我们经常需要对列表进行简单的筛选,这时,数据视图就有作用了,我们可以定制对于字段的筛选,来进行展示:特别的,筛选不同于搜索,并没有对于附件或者文档的全文检索,如果需要全文检索,可以使用列表的垂直搜索功能. 1.新建一个测试页面,然后右键在高级模式下编辑,如下图: 2.在PlaceHolderMain节点里,加入webpartzone,用来添加数据视图: 3.数据视图选择News列表,如下图: 4.列表视图就选择第一个就可以了,如下图: 5.查看测试页面,如下图: 6.在