按列表列值创建自定义警报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 警报

通过上下文菜单删除后刷新自定义列表视图

隐藏 SharePoint 警报电子邮件中的字段

无法在Sharepoint 2013在线自定义列表中使用SPD获取Lookup字段值

SharePoint:如何以编程方式将项目添加到自定义列表实例

我需要列出 SharePoint 网站中的自定义列表和库吗?