按列表列值创建自定义警报Sharepoint无法正常工作

时间:2017-12-20 21:38:03

标签: c# sharepoint sharepoint-online caml

我一直在设置一个警报,只有当用户在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 个答案:

答案 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>