我一直在设置一个警报,只有当用户在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();
我知道您可以创建工作流来实现我想要做的事情,但是以编程方式这样做,我无法找到太多可靠的文档或事件监听器。
提前谢谢。
答案 0 :(得分:0)
你可以尝试两件事:
1)替换&#34;其中&#34;带&#34;查询&#34;的元素。警报过滤器不接受Where元素 2)替换&#34; MultiChoice&#34;用&#34;文字&#34;。
<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>