前回に引き続きタスクリストに使用される通知テンプレートの詳細を確認します。
Format 要素
通知メールのカスタマイズをする上で重要なのがFormat 要素です。このタグの中にメールの定型文書が書かれています(ちなみに、リストから取得するフィールド(列) 情報は "<Properties>~</Properties>"で定義されています)。
Format 要素は Digest 要素と Immediate 要素で構成されています。
Digest 要素は、"日に一度通知する" もしくは "週に一度通知する" ように設定した際に使われます。一方、Immediate 要素は "すぐに通知する" ように設定した際に使われます。では、この Immediate 要素の詳細を見てみたいと思います。
Immediate 要素は Subject , Header, HTML, Fields, Footer で構成されています。
それぞれは、実際に送信される HTML メールのどこに該当するのでしょうか。実際に照らし合わせてみましょう。
以下が、タスクリストに設定した通知メールのサンプルです。Outlook 2007 を使用し、タスクアイテムのタイトルは aaa としています。
[Subject 要素]
最初のSubject 要素はメールの「件名」です。
つまり 「件名 : {AlertTitle} - {ItemName} 」 となっており、実際のメールでは GetVar で指定した部分に値が代入され、「タスク - aaa」 となっています。
[Header 要素]
続く Header 要素を見てみましょう。ここから複雑になってきますので、まずは実際のメールのどの部分に当たるかを確認しておきます。Header 要素の内容と生成される HTMLコードと照らし合わせると、次の図の部分が生成されることになります。
***生成されるHTMLソースコード****
<html dir = ltr>
<head>
<base href="http://moss2007/sites/top/SiteDirectory/soumu">
<style>
<!--
.headertop1 {
width: 100%;
}
(中略)
-->
</style>
</head>
<body>
<table class="headertop1" cellspacing="0" cellpadding="0">
<tr><td class="headercontent">
<table class="breadcrumb" cellspacing="0" cellpadding="0" width="100%"><tr><td><a href="http://moss2007/sites/top/SiteDirectory/soumu">総務部</a></td></tr></table> 次のアイテムが変更されました: <em>aaa</em>
</td>
</tr></table>
<table class="content" cellspacing="0" cellpadding="0">
<tr>
<td colspan="3">
<table class="toolbar" cellspacing="0" cellpadding="0" width="100%"><tr><td>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu/_layouts/MySubs.aspx">通知の設定の変更</a></td>
<td class="toolbarsep">|</td>
<td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu//Lists/Tasks/DispForm.aspx?ID=5">表示 aaa</a></td>
<td class="toolbarsep">|</td>
<td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu/Lists/Tasks">表示 タスク</a></td>
<td class="toolbarsep">|</td>
<td class="toolbarbutton"><a href="http://moss2007/sites/top/SiteDirectory/soumu/_layouts/mobile/dispform.aspx?List=A5540ED9-AC8D-4C1F-9772-421B2CBD2BBA&ID=5">モバイル ビュー</a></td>
</tr>
</table>
</td></tr></table>
</td>
</tr>
<tr><td colspan="3"class="spacer"> </td></tr>
*******************
Header 要素ではHTML文書が生成されるようになっおり、大まかにいうと Table タグとスタイルシートで構成されいます。XML に慣れていない方は "<![CDATA[ " から "]]>" までを中心に確認してください。ここに生成されるHTMLの構造が書かれています。なお、スタイルシートが複数定義されていることから、もしスタイルを変更したいのであればHeader 要素を修正すればよいのだということがわかります。
[HTML 要素]
ここは生成されるHTMLメールを見ると使用されていないようですので割愛します。
[Fields 要素]
ここで本文を生成してます。
***生成されるHTMLソースコード****
<tr>
<td class="formlabel">タイトル:</td><td class="formbody"> aaa</td><td class="altvb"> </td>
<tr>
<td class="formlabel">優先度:</td><td class="formbody"> (2) 標準</td><td class="altvb"> </td>
<tr>
<td class="formlabel">状態:</td><td class="formbody"><span class="edited">進行中</span> 完了</td><td class="altvb"><span class="editedicon">編集済み</span></td>
<tr>
<td class="formlabel">担当者:</td><td class="formbody"> 山崎 愛</td><td class="altvb"> </td>
<tr>
<td class="formlabel">説明:</td><td class="formbody"> <div></div></td><td class="altvb"> </td>
<tr>
<td class="formlabel">開始日:</td><td class="formbody"> 2008/02/09</td><td class="altvb"> </td>
****************************************
(図.Fields 要素の抜粋)
面白いのは、フィールドの古い値を新しい値を取得しているところです。HTMLメールを見るとわかりますが、状態フィールドの値を"進行中"から"完了" に変更しています。メールではどの部分が変更されたか確認できるように、GerVar 要素を使って値を参照しています。古い値は"OldValue#{field}"として新しい値は"OldValue#{field}"となっています。
[Footer 要素]
ここでメールの締めくくりの部分を生成しています。
(図.HTMLメールの抜粋)
***生成されるHTMLソースコード****
<tr>
<td colspan=3 class="descriptiontext">最終更新日時 2008/02/09 15:21 更新者 山崎 愛</td>
</tr>
</table>
</body>
</html>
****************************************
以上、Format 要素の詳細を見てきましたが、これでなんとなくどのあたりを変更したらカスタマイズできそうかの見当がついたことと思います。
次回は、具体的なカスタマイズ方法をご紹介します。
コメント