ディスカッション掲示板で返答があったら通知が欲しい

ディスカッション掲示板を運用する上で、欲しくなる機能が「メール通知」ではないでしょうか。特にディスカッション掲示板のスレッド(返信)機能を活用してQ&A掲示板的な運用を行うようなケースでは、返信がついた際に、親アイテム(質問)の登録者にメール通知を飛ばすことが出来ればとても便利です。

もちろん、質問の作成者自身が、アイテムに手動で「通知」設定を行えば、返信が通知されます。しかし、この方法はあまり現実的ではありません。どうにか、通知が自動で行われるようにしたい。

一見難しそうですが、実は、SharePoint Designer で、カスタムワークフローを設定すれば実現できます。

・SharePoint Designer でサイトを開き、リストにワークフローを作成します。
・適当な名前を設定します。
・[アイテムが変更されたときにこのワークフローを自動的に開始する]をチェック。
・条件は空のままでかまいません。
・アクションに[電子メールを送信する]を選択。

・電子メールの内容を設定します。
・送付先は[現在のアイテムを作成したユーザー]
・件名、本文は適当に。メッセージと、掲示板へのURLリンクを入れておくとよいでしょう。

いたってシンプルですが、これで完成です。
何故かうまく動きます。

何故か、というのもおかしな話ですが…。というのも、私の理解ではこのワークフロー、きちんと動作するはずが無いのです。返信もひとつのアイテムの筈ですから、通知メールは返信の作成者に飛ぶのではないか?

でも実際には、きちんと動作するんですよね。どうやら、ディスカッション掲示板において、親アイテムに対する子アイテム(返信)は、MOSS内部的には親アイテムの更新、として認識されているようです。

あと、本来なら、メールには(掲示板のURLではなく)掲示板の該当スレッドを直接開いてくれるURLを挿入したいところなのですが…これがどうにも上手くいきません。
スレッドを開くURLの生成ルールが難しすぎて理解できないんです。
SharePoint Designer で [本文への参照の追加] を色々を試してみたのですが、頓挫。

続・ディスカッション掲示板で返答があったら通知が欲しい
ディスカッション掲示板で返答があったら通知が欲しい
ディスカッションリストのアイテムが持つ値は?


これまでのコメント

  1. katomacha より:

    AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
    お疲れ様です
    掲示板での通知がうまくいく理屈がたぶんわかりましたっ(たぶんですけど・・・)
    掲示板は親のディスカッションコンテンツと子のメッセージコンテンツでなってるっぽいです。
    で、返答をいれるとメッセージコンテンツを新規作成しつつ親のディスカッションコンテンツを更新するようです。
    そのため、更新時にWFを回すように設定してるとディスカッションコンテンツ分のWFのみが起動するみたいです。
    で、記事のようなWFを設定しているとディスカッションコンテンツの作成者(ようはスレッド作成者)へメールが送信されるようです

  2. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727) Sleipnir/2.5.12
    katomachaさん、どうも。
    なるほど…親を同時に更新するようになっているんですね。
    変なところでよくできてるなぁ(笑)

  3. katomacha より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
    お疲れ様です
    スレッドを開くURLですが以下の感じかなぁ?と・・・

    ディスカッション掲示板のURL/Threaded.aspx?RootFolder=[%アイテムの相対URL%]

    普通にスレッドを開いたときにURL上に記述されている他の変数は無くても開けちゃうようですからこれで大丈夫だと思います

  4. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) Sleipnir/2.5.12
    おおっ!早速明日試してみますね!

  5. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727) Sleipnir/2.5.12
    うむぅ〜(x_x)
    sharepoint designerで試しているのですが、「アイテムの相対URL」という参照項目が見つかりません。
    他のそれっぽいものも試してみたのですが、撃沈。
    ひょっとしてDesignerのSP1を適応する必要があるんでしょうか?(x人x)help!

  6. katomacha より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
    お疲れ様です。
    結論から言うと[%エンコードされた絶対URL%]のみでOKっぽいです。
    試しにメール本文中にそれを埋め込み、メールをWFから送信させてみたところ、受け取ったメールに載っているURLをIEのアドレスに貼\り付けて移動してみるとちゃんと表\示されました。(URLが適切なものに置き換わって表\示されましたので裏で何かがディスパッチかけてるものと思います・・・)

  7. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727) Sleipnir/2.5.12
    お返事遅くなりまして申\し訳ない。
    [%エンコードされた絶対URL%]は試してみたのですが…駄目でした。
    環境の問題なんでしょうかね

  8. tama より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2)
    はじめまして。
    最近Sharepointデビューをした者です。
    ユーザ要望に対応すべく日々奮闘中です。
    さて、上記の記事はまさにユーザ要望とドンピシャだったため同じように
    設定してみたのですが・・・うまくいきませんでした。

    議題そのものが編集されると確かにメールは送信されるのですが
    「返信」にてコメントが追加されただけではWFが起動しません。
    「返答があったら」=「議題に返信コメントが追加されたら」と
    理解してましたが何か勘違いをして記事を読んでいたのでしょうか・・・。

  9. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
    はじめまして!

    なにしろ2008年のエントリですので、あれ?そうだったかな?
    と改めて手元の環境で試したのですが…。

    あ、確かに飛びません。
    おかしい…当時は確実にメールが親アイテム作成者に
    飛んだ記憶があるのですが。

    加えて、Designerで選択できる参照項目に、当時の記憶にない
    項目が沢山…。スレッドとか…なに?これ?

    ど~もSP2もしくはSP1が臭いです。
    tamaさんの環境はどのバージョンでしょう?
    このエントリを書いた当時は、おそらくSP1も未適用だと思います。
    で、ある意味この方法はバグのようなものでしたから、
    SPでそれが修正されたのではないでしょうか?

    上のコメントで、katomachaさんが言及されている
    [%エンコードされた絶対URL%]
    も、SP2環境で試したところ、確かにスレッドへの有効な
    リンクになりました。
    当時は確実にダメだったのですが。
    バージョンの問題だったのですね。

  10. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
    続きです。
    …という訳で、新たな発見がありました。
    貴重な情報、ありがとうございました^^

    さて、そこで、現在の環境(SP2)で当初の目的を達成する方法ですが…。二通り考えつきました。

    ひとつは、親アイテム作成者に、そのアイテムレベルでの「通知」を自分で設定してもらうことです。すると、返答があった場合、「○○への返信が追加されました」として、通知が飛びます。

    しかし、この方法では、ユーザーがいちいち設定をしないといけません。
    まあ、あまりスマートではないですね。

    そこで、ワークフローを利用して、自動的に通知メールを飛ばす方法を、
    改めて組み立ててみました。こちらは、さすがにこのコメント欄でご説明するのは難しいので、明日の夜にでも新規エントリにしたいと思います。

    乞うご期待?(笑)

  11. tama より:

    AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
    こんにちわ。
    丁寧に返信いただきましてありがとうございます。
    私の環境はSP2でした。
    なるほどSP未適応とは動きが色々修正(?)されているのですね。
    2008年のエントリを2年経って掘り起こしてすみません(笑)
    (実は、こちらにエントリされている内容を上から順番にやっていたり(ぁ)

    実現方法ありがとうございます。
    自分で辿り着くべきところではありますが期待させていただきます!
    よろしくお願いします。

login

Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9