IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 最近的SharePoint开发感想 -> 正文阅读

[开发测试]最近的SharePoint开发感想

众所周知,SharePoint当表的item数量和文档库的文件数量超过5000后有列表视图阈值的限制,SharePoint一次请求返回的最大数量是5000,所以在使用数据量特别大的库或表时,需要多次请求。尤其是需要完成分页请求时,SharePoint自带的请求无法很好的满足日常的工作需求,以SharePoint Rest api为例,通过使用 t o p 和 top和 topskiped关键字,虽然也可完成分页的请求,但是还需要配合计算需要跳过的item的id,如果表中的许多数据在后面删除,九会丢失很多id,使得计算出的id不准确,造成分业数据的不准确,就需要通过多次请求获取所有数据再对数据进行假分页。这样的问题就是在加载数据时需要比较久的时间,用户体验不佳。
在表数据超过5000后,也无法使用$filter关键字对表进行过滤(写这边博客的想到也可以通过rest api调用caml过滤表)。
综上:在初期开发时,需要考虑到后期数据量变大的问题,提前处理。
附从large library中过滤出指定类型文件并发送邮件给指定人员的脚本:

Add-PSSnapin Microsoft.Sharepoint.Powershell;
#目前为测试站点url
$web = Get-SPWeb siteurl;
$ListName1 = "Library1 ";
$list1 = $web.Lists[$ListName1];
$Query = New-Object Microsoft.SharePoint.SPQuery;
$caml = '<View Scope="RecursiveAll">
            <Query>
                <Where>
                <And>
                    <Lt>
                        <FieldRef Name="Created" Type="DateTime"/>
                            <Value Type="DateTime" >
                            <Today OffsetDays="-1"/>
                            </Value>
                    </Lt>
                    <Eq>
                        <FieldRef Name="columnInternalname" />
                        <Value Type="Text">体检报告</Value>
                    </Eq>
                    </And>
                </Where>
            </Query>
        </View>
        <ViewFields>';
$Query.ViewXml = $caml;
$ListItems1 = $list1.GetItems($Query);

$YesterdayDate = (Get-Date).AddDays(-1).ToString('yyyy-MM-dd')
try {
    $subject = $YesterdayDate + ' HealthCertificate';
    ForEach ($Item1 in $ListItems1) {
        If ($Item1.ContentTypeId -eq "0x0101003ADB858DB6E3BA43BF71B17F054997D30022ADF6D49D8F024BA37B9D37E8F9CBE3") {
            
            $b = $Item1.File.OpenBinary();
            $fs = New-Object System.IO.FileStream(("d:\FileStagingFolder\" + $Item1.File.Name), [System.IO.FileMode]::Create);
            $bw = New-Object System.IO.BinaryWriter($fs);
            $bw.Write($b);
            $bw.Close();
            $fileUrl = "d:\FileStagingFolder\" + $Item1.File.Name;
            Send-MailMessage -From 'spadmin@mail.com' -To 'amos@mail.com' -Subject $subject -SmtpServer "mailaws.swirebev.com" -Attachments $fileUrl ;
        }       
    
        
    }

    Remove-Item D:\FileStagingFolder\*.*;
}
catch [System.SystemException] {
    if ($ListItemsOthers.length -eq 0 -or $ListItems1.length -eq 0 -or $ListItems2.length -eq 0) {   
        $subject = $YesterdayDate + 'error message';
        $ExceptionMessage = "Error sending health certificate script (SharePoint 2019 server), exception information:" + $_ ;
        Send-MailMessage -From 'spadmin@mail.com' -To 'spadmin@mail.com' -Cc 'amos@mail.com' -Subject $subject -SmtpServer "smtpserver" -Body $ExceptionMessage;
    }
}


  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:12:40  更:2022-04-18 18:14:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 16:01:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码