1

特定のコンテンツ タイプのページがMOSSで公開された場合にのみアラートをトリガーする方法を教えてください。

要件は、誰かが特定のコンテンツ タイプを使用してページを作成し、そのページを公開したときに通知を送信するように、発行サイトのページ ライブラリにアラートを設定することです。コンテンツ タイプを使用して作成されたページのアラートをトリガーすることができました。SPAlert.Filterまた、プロパティで CAML を使用してページが公開されている場合は個別に。

しかし、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);

前もってありがとう、Rizi。

4

2 に答える 2

1

これを試して:

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

QueryとAndの間にWhere要素が必要です。また、ModerationStatusには、整数ではなくModStatのタイプを使用します。

于 2011-02-08T16:30:15.713 に答える
0

<Where>実際には、SPAlert.FilterプロパティにXML要素を含めるべきではありません。これをフィルターXMLフラグメントから削除すると、機能するはずです。

このページの2番目のメモボックスをオンにします:http: //msdn.microsoft.com/en-us/library/bb802961 (v = office.12).aspx

于 2011-12-22T15:49:16.600 に答える