按列表列值创建自定义警报Sharepoint无法正常工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按列表列值创建自定义警报Sharepoint无法正常工作相关的知识,希望对你有一定的参考价值。
我一直在尝试设置一个警报,只要用户在多重选择一个值时,只要用户在SharePoint列表中选择具有特定值的某个列,就会发送电子邮件。我已设法使用caml查询创建警报但是,我收到有关对列表所做的任何更改的警报。
这是我的查询 -
<Query>
<Where>
<Or>
<Contains><FieldRef Name='CustomColumn_x0020_One'/><Value Type='MultiChoice'>My test value 1</Value></Contains>
<Contains><FieldRef Name='CustomColumn_x0020_Two'/><Value Type='MultiChoice'>My test value 2</Value></Contains>
</Or>
</Where>
</Query>
对于我想要触发警报的多个列和值
<Query>
<Where>
<Contains><FieldRef Name='CustomColumn_x0020_One'/><Value Type='MultiChoice'>My test value 1</Value></Contains>
</Where>
</Query>
单项。
在那之后,我会做一些像,
AlertCreationInformation myNewAlert = new AlertCreationInformation();
myNewAlert.List = tmpList;
// query has either one of the caml queries I listed above.
myNewAlert.Filter = query.ToString();
myNewAlert.AlertFrequency = AlertFrequency.Immediate;
myNewAlert.AlertType = AlertType.List;
myNewAlert.AlwaysNotify = false;
myNewAlert.DeliveryChannels = AlertDeliveryChannel.Email;
myNewAlert.EventType = AlertEventType.All;
myNewAlert.Status = AlertStatus.On;
myNewAlert.Title = "test";
myNewAlert.User = currentUser;
var newAlertGuid = currentUser.Alerts.Add(myNewAlert);
currentUser.Update();
我知道你可以创建工作流来实现我想要做的事情,但是以编程方式这样做,我无法找到很多可靠的文档或事件监听器。
先感谢您。
答案
你可以尝试两件事:
1)用“查询”替换“Where”元素。警报过滤器不接受Where元素。 2)将“MultiChoice”替换为“Text”。
<Query>
<Or>
<Contains><FieldRef Name='CustomColumn_x0020_One'/><Value Type='Text'>My test value 1</Value></Contains>
<Contains><FieldRef Name='CustomColumn_x0020_Two'/><Value Type='Text'>My test value 2</Value></Contains>
</Or>
</Query>
以上是关于按列表列值创建自定义警报Sharepoint无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
无法在Sharepoint 2013在线自定义列表中使用SPD获取Lookup字段值