SPAlert для запуска при публикации страницы определенного типа контента - PullRequest
1 голос
/ 03 февраля 2011

Может ли кто-нибудь сообщить мне, как вызвать оповещение, только когда страница определенного типа контента опубликована опубликована в MOSS?

Требуется:настроить оповещения в библиотеке страниц сайта публикации для отправки уведомлений, когда кто-то создал страницу с использованием определенного типа контента, и опубликовать страницу.Мне удалось вызвать предупреждение для страниц, созданных с использованием типа контента.И отдельно, когда страница публикуется с использованием CAML в свойстве SPAlert.Filter.

Но когда я объединяю запросы с помощью CAML <And></And>, оповещения перестают вызывать любые уведомления.

Кто-нибудь знает, почему этоэто происходит?И правильный способ использования CAML <And> в SPAlert.Filter?

Мой код:

SPUser user = SPContext.Current.Web.CurrentUser;
SPWeb web = SPContext.Current.Web;

SPAlert alert = user.Alerts.Add();

alert.Filter = "<Query><And><Eq><FieldRef Name='ContentType' /><Value Type='Text'>CUSTOM_PAGE_CONTENT_TYPE</Value></Eq><Eq><FieldRef Name='_ModerationStatus' /><Value Type='Integer'>0</Value></Eq></And></Query>";

alert.Title = "Alert Title";
alert.AlertType = SPAlertType.List;
alert.EventType = SPEventType.All;
alert.List = web.Lists["Pages"];
alert.AlertFrequency = SPAlertFrequency.Immediate;
alert.AlwaysNotify = true;
alert.Update(true);

Заранее спасибо, Ризи.

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Попробуйте:

<Query>
    <Where>
        <And>
            <Eq>
                <FieldRef Name='ContentType' />
                <Value Type='Text'>CUSTOM_PAGE_CONTENT_TYPE</Value>
            </Eq>
            <Eq>
                <FieldRef Name='_ModerationStatus' />
                <Value Type='ModStat'>Approved</Value>
            </Eq>
        </And>
    </Where>
</Query>

Вам нужен элемент Where между Query и And.Кроме того, используйте тип ModStat вместо Integer для ModerationStatus.

0 голосов
/ 22 декабря 2011

На самом деле, свойство SPAlert.Filter не должно иметь XML-элемента <Where>. Удалите это из XML-фрагмента фильтра, и оно должно заработать.

Отметьте второе поле «Примечание» на этой странице: http://msdn.microsoft.com/en-us/library/bb802961(v=office.12).aspx

...