通知テンプレートの形式
Windows SharePoint Services 3.0 には、事前に定義された一連の通知テンプレートが用意されています。これらの通知テンプレートは、Alerttemplates.xml に格納されています。Alerttemplates.xml は、各リストの種類から通知メッセージを作成する際に使用する形式、コンテンツ、およびプロパティを定義します。開発者は、Alerttemplates.xml のコピーを変更し、カスタマイズした通知テンプレートを stsadm -o updatealerttemplates コマンドで読み込んで、通知をカスタマイズすることができます。
注意
Alerttemplates.xml を変更しないでください。変更すると、Service Pack のアップグレードまたはインストール時に機能が失われる場合があります。
事前定義された通知テンプレートの一覧は、「定義済みの通知テンプレート」を参照してください。
通知テンプレートのスキーマ
通知テンプレートは以下の形式です。
<AlertTemplates>
<AlertTemplate Type="List" Default="True" Name ="Default Template">
</AlertTemplate>
<AlertTemplate Type="List" Name="SPAlertTemplateType.GenericList">
<EventTypes IsVisible="True"/>
<Format>
</Format>
<Properties>
</Properties>
<Filters>
<FilterDefinition>
</FilterDefinition>
</Filters>
</AlertTemplate>
</AlertTemplates>
表 1. 通知テンプレートの属性
属性 |
説明 |
Name |
テンプレートの名前。テンプレート名の検索により、特定のテンプレートを簡単に検索できます。 |
Type |
Type 属性は、List、Item、または Custom に設定できます。 |
Default |
Default = "True" の場合、既定の通知テンプレートを設定します。 |
Filters |
IsVisible = "True" の場合、通知の作成時にフィルタ フィールドが表示されます。 |
Filter Definitions |
フィルタ (クエリ) を定義します。 |
Format |
電子メール メッセージの形式は、Format 要素で定義されます。 |
Fields |
どのフィールドを通知の電子メールに表示するかを指定します。 |
Filters 要素と Filter Definitions 要素
Filter では、"タスクの優先順位が変更された" などのイベント用の新しいトリガを作成できます。既存のフィルタを変更、または追加のフィルタを作成する場合は、該当するテンプレートの FilterDefinition 要素を変更します。 Collaborative Application Markup Language (CAML) を使用してフィルタ内にクエリ要素を定義します。
次のクエリは、イベントの日付、終了日付、または場所が変更になると通知イベントを作成します。
<FilterDefinition>
<FriendlyName>$Resources:Alerts_4_filter;</FriendlyName>
<ShortName>$Resources:Alerts_4_filter_shortname;</ShortName>
<Query>
<Or>
<Or>
<Neq><FieldRef name="EventDate/New"/>
<FieldRef name="EventDate/Old"/>
</Neq>
<Neq>
<FieldRef name="EndDate/New"/>
<FieldRef name="EndDate/Old"/>
</Neq>
</Or>
<Neq>
<FieldRef name="Location/New"/>
<FieldRef name="Location/Old"/>
</Neq>
</Or>
</Query>
</FilterDefinition>
AlertTemplates.xml にリストされている、$Resources:Alerts_anything_filter_shortname などのリソース変数は、local_drive\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Resources の core.resx にあります。
注意
通知スキーマの Query 要素には、Where 要素が含まれません。
CAML クエリ スキーマの詳細については、「クエリ スキーマ」を参照してください。
Format 要素
通知テンプレートの Format 要素を使用して通知メッセージの外観を変更します。組み込みのスタイルを使用して通知メッセージの形式をカスタマイズすることもできます。
<Format>
<Digest> - digest format
<Subject>
</Subject>
<Header>
</Header>
<HeaderFieldsHeader>
</HeaderFieldsHeader>
<HeaderFields>
</HeaderFields>
<HeaderFieldsFooter>
</HeaderFieldsFooter>
<RowHeader>
</RowHeader>
<RowFields>
</RowFields>
<RowFooter>
</RowFooter>
<Footer>
</Footer>
</Digest>
<Immediate>
<Subject>
</Subject>
<Header>
</Header>
<Fields>
</Fields>
<Footer>
</Footer>
</Immediate>
</Format>
Row Header 要素
各行のヘッダー行は、ダイジェスト通知における各アイテム レベルの変更内容を参照します。
Subject 要素
電子メールの件名です。
Fields 要素
Fields 要素では、電子メール メッセージに表示するフィールドを指定します。例えば、Fields セクション内に <GetVar Name="NewValue#{Field}"> を指定することができます。他の例は、AlertTemplates.xml で参照できます。
CAML は、すべてのフィールドを調べ、テンプレートのこの部分を表示します。 フィールド自体は、<GetVar Name=”OldValue#{Field}” /> または <GetVar Name=”NewValue#{Field}” /> を使用して参照する必要があります。
電子メール メッセージに一部のフィールドを表示しないようにするには、DigestNotificationExcludedFields と ImmediateNotificationExcludedFields の両セクションに該当するフィールドを含めます。DigestNotificationExcludedFields と ImmediateNotificationExcludedFields を使用すると、即時通知やサマリ (ダイジェスト) 通知にさまざまなフィールドを自由に表示できます。
Properties 要素
Properties 要素では、電子メール メッセージに表示するリストからフィールドを含めたり除外したり、通知ハンドラを指定したりできます。以下の例は、即時通知とサマリ (ダイジェスト) 通知の両方からフィールドを除外する方法を示しています。
<Properties>
<ImmediateNotificationExcludedFields>
ID;Author;Editor;Modified_x0020_By;Created_x0020_By;
_UIVersionString;ContentType;TaskGroup;IsCurrent;Attachments;
NumComments;
</ImmediateNotificationExcludedFields>
<DigestNotificationExcludedFields>
ID;Author;Editor;Modified_x0020_By;Created_x0020_By;
_UIVersionString;ContentType;TaskGroup;IsCurrent;Attachments;
NumComments;
</DigestNotificationExcludedFields>
</Properties>