惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
LINUX DO - 最新话题
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
月光博客
月光博客
博客园 - 叶小钗
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
量子位
美团技术团队
Vercel News
Vercel News
Y
Y Combinator Blog
IT之家
IT之家
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
腾讯CDC
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
罗磊的独立博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
博客园 - 司徒正美
N
Netflix TechBlog - Medium
S
Schneier on Security
博客园 - 聂微东
U
Unit 42
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
雷峰网
雷峰网
Latest news
Latest news

博客园 - Sunmoonfire

SharePoint 2013无代码实现列表视图的时间段动态筛选 SharePoint 2013:自定义ECB菜单项的添加 SharePoint Foundation 2013 with SP1 在SharePoint列表中使用自增栏 SharePoint 2010自定义母版页小技巧——JavaScript和CSS引用 修改SharePoint列表项显示“新”图标的天数 通过PowerShell实现SharePoint列表增删改 在SharePoint 2010页面中嵌入SWF文件 在LINQ to SharePoint中使用创建时间,创建者,修改时间,修改者 SharePoint 2010之LINQ与SPMetal 修改SharePoint页面上的控件数量的限制 SharePoint 2010:部署.resx(资源)文件到App_GlobalResources的简单方法 在SharePoint 2010中使用jQuery 在SharePoint 2010环境下区分w3wp进程 打SharePoint 2010 SP1后访问用户配置文件同步服务应用程序出错的解决办法 "缺少服务器端相关性"的内容定位 SharePoint 2010开发工具图解系列:Visual Studio 2010创建事件接收器 SharePoint 2010开发工具图解系列:Visual Studio 2010创建列表 SharePoint 2010开发工具图解系列:Visual Studio 2010 SharePoint Tool入门
使用[本人]创建视图筛选时的一个问题和解答
Sunmoonfire · 2012-05-04 · via 博客园 - Sunmoonfire

问题的提出是基于这样一个需求。比如一个请假条列表,上面跑了一个自己的审批工作流。有权进行审批的经理有多个。而且这个审批工作流也包含了多步审批,每一步都可能有不同的审批人。现在需要创建一个视图,某个经理审核后还想看到自己审核过的请假条。解决的思路是创建一个字段记录每个人审核的人名,之后通过这个字段加一个“ 包含 ”的筛选条件来查看视图。

首先,尝试了使用单行文本类型的栏来保存审批人。当我们在这个栏上添加了一个“包含”[本人]的筛选条件后,视图无法保存,验证通不过,提示“筛选值不是有效的文本字符串”:

看来[本人]这个函数无法用在单行文本上。

由此,就想到换成多行文本。一试果然能够通过。但是添加测试数据后,发现并不能进行预想的筛选。SPD打开该视图查看了一下SharePoint自动生成的CAML,如下:

<Query>
    <OrderBy>
        <FieldRef Name="Title" Ascending="FALSE"/>
    </OrderBy>
    <Where>
        <Contains>
            <FieldRef Name="_x5ba1__x6279__x4eba_"/>
            <Value Type="Integer">
                <UserID Type="Integer"/>
            </Value>
        </Contains>
    </Where>
</Query>

原来,是把UserID直接拿过来做了“包含”操作。随便找了一个UserID,作为测试数据填写到审批人这一栏里,发现筛选正常。比如“张三”对应的ID是13。实际上判断的是包含13的。虽然筛选表面上是成功的,但是实际上这样会造成结果的重叠。(如还有一个UserID是113)。虽然可以通过在 ID号左右添加分割符(比如括号)的方式解决(SPD工作流里可以从工作流上下文里得到当前用户,并返回用户ID),但是CAML查询却不支持<Value Type="Integer">(<UserID Type="Integer"/>)</Value>这样的写法。除非是自己写一个WebPart,取到当前用户的UserId后再拼Value字符串。这样无疑增加了工作量。

其实,SharePoint中有一个更简单的方法能够解决这个问题。就是“用户或用户组”字段类型。

1、创建这个字段值时,使用“用户或用户组”类型。允许多选。


2、视图的“包含”关系就可以直接用“等于”来替代。


3、在工作流更新列表项时,这个字段的值采用在原有值基础上加一个分号,然后再加上当前用户的方式进行保存。

这样,组织出来的视图就能显示包含当前用户的所有审批。并且审批人可以是多个人。

参考资料

SharePoint - [Me] = Easy Item Level Security