SharePoint お知らせリストの有効期限列をビューのフィルターで活用する際の落とし穴

以前、お知らせリストの有効期限列について以下の記事を書きました。

SharePointの「お知らせ」リストの「有効期限」列の利用および非表示方法

この記事で、利用方法の一例として、ビューのフィルターを活用して有効期限切れのアイテムをビュー上に表示させない方法も紹介しました。この方法は参考書などにも紹介されている方法なのでメジャーな使い方かと思います。ただし、この活用方法には落とし穴があり、実際にSharePoint運営に携わっていた頃にもトラブルがありました。以下、架空の設定ですが実際起きうるトラブルとして紹介いたします。

【トラブル】

閲覧ユーザーが、お知らせリストに掲載されていた情報を元にお客様用に資料を作成し提出したが、その情報が古かったらしく怒られてしまった。その掲載物の投稿者に問い合わせてみたところ、古い情報は有効期限が切れており、新しい情報は別途掲載して表示した、とのこと。

【原因】

ビューのフィルターをかけるだけでは有効期限切れのアイテムはビュー上から非表示になるだけで、実際に削除されたわけではありません。すべてのアイテムを表示させるビューがなかったとしても、検索すれば検索結果に表示されてしまいます。このトラブルも検索結果から古いアイテムを表示した事が原因でした。

お知らせリストの利用用途として検索対象外にする事はあまり好ましくありません。この方法を継続していれば同じトラブルは起きる可能性は高いです。このようなリスクを考慮して有効期限にどの機能を加えて活用するかを検討しないといけないです。

【解決方法】

あくまでも参考としてください。
まずトラブルを避けるには有効期限切れのアイテムは表示されないように配慮する必要があります。やはり情報管理ポリシーの保持を利用し、有効期限が切れたらアイテムを削除するのも一つの手です。ただし、この方法はこのトラブルが解決できても別のトラブルが出る場合があります。これも運営に携わっていた頃によくあった問い合わせなのですが、「過去に投稿したアイテムを再利用したいけど有効期限が切れたらしく見当たらないので復活してほしい。」という問い合わせ。運営側からすると「いやいやあなた…自分で設定した有効期限が切れたならあきらめなさいよ…」と思うでしょうが、実際この手の問い合わせは結構多かったんです。で、ごみ箱から復元できる場合は復元してあげるのですが、ごみ箱からも削除されていたらもうあきらめてもらうわけです。この場合は、運営上そういうものだとユーザーに啓蒙していくしかありませんが、別の方法としては、有効期限が切れたら別のリストに移動するように設定し、移動先のリストのアクセス権限をサイト管理者以外閲覧できないように設定すれば、検索でも古い情報がひっかからず、復元の依頼があっても対応できるのかなと思います。また、SharePoint Designerなどのワークフローを利用して、有効期限の直前に投稿者にメールで通知してから有効期限で移動や削除なんて事も可能かと思います。
そこまでしてフロー情報をストックしておく必要があるかどうかは別として。

そうなんです。そもそも運営の仕方(サイト作成の仕方)がユーザーのニーズと乖離しているところも検討するところです。色々な角度から検討する必要がありますが、例えば、そこで発信する情報の種類が最低限フロー情報なのかストック情報なのかを考えて、サイト作成をしていく必要があります。
極端に言えば、例えば規程集のようなストック情報に有効期限を付ける必要はありませんよね。例えば鮮度が命の情報のようなフロー情報を半永久的に保存しておく必要はありませんよね。これらフロー情報とストック情報は性質が全く異なるので、それを同じ管理方法で運営している事自体を再検討しないといけない、などです。
運営部門の会議などで「有効期限列を活用する方法があります。」と言って説明をすると、すぐに「じゃ、全てに実装しよう!」なんて考えも出てきます。気をつけたいところですね。

SharePoint 「お知らせ」リストの「有効期限」列の利用および非表示方法

SharePoint2007で運営に携わっていた頃はリストと言えばお知らせリストを使っていました。(カスタムリストはほとんど利用していませんでした。)リストを通達・連絡用として利用するケースが多く、パッと作成してすぐ使うにはお知らせリストが最適で、またSharePoint2007の頃は、リストで設定したメールアドレスにメールを送信すると、そのままリストに投稿される受信メール機能があり、これはお知らせリスト固有の機能で重宝していたからです。

ただし、お知らせリストには一点邪魔な存在がありました。それが「有効期限」列です。

こんな列があれば、普通は有効期限列に日付を入れたら、その日が過ぎるとアイテムは削除されると思いますよね。それが何も起きないんですよね。ただ日付の列があるだけで、有効期限列単体では何の機能もないんです。SharePointを運営していると、「有効期限が動作しません」という問い合わせを多く受けました。説明をすると「え?あるのに何も機能しない?なにそれ…」的な腑に落ちない感じに返されてしまいますが、腑に落ちないのもごもっともだと思います。

▼有効期限列を利用する場合の一例ですが、有効期限列を利用して情報管理ポリシーの保持を設定したり、

▼有効期限列を利用してビューのフィルターを利用するなど、

有効期限列+他の機能の組み合わせで利用できます。

※ちなみにビューのフィルターを利用する方法に関しては落とし穴がありますが、話しが長くなってしまうので、それは別の機会にトラブル事例として紹介できればと思います。

一例として有効期限列を活用する方法を紹介しましたが、お知らせリストを運営する際に有効期限なんて不要な場合もあり、ではこの思わせぶりなこの列を削除してしまいたいですよね。でも…この列、削除できないんですよね。これ本当に厄介です。

▼よく見ると「OK」「キャンセル」はあっても、他の列設定のように「削除」ボタンがないんです。

 

ただ、ちょっと設定をする事で、削除ではないのですが非表示にする事は可能です。普段あまり使わないコンテンツタイプを利用します。

▼お知らせリストの詳細設定でコンテンツタイプの管理を「はい」

お知らせリストの設定の全般設定の下にコンテンツ タイプというセクションが表示されるので、「お知らせ」コンテンツ タイプをクリック。リスト コンテンツ タイプの設定の列セクションの「有効期限」をクリック。

▼列設定で「非表示」を選択。

▼これでお知らせリストで有効期限列を非表示にできます。

最初からカスタムリストを使って通達・連絡用リストを作成すれば良いのですが、ワケあって有効期限は不要だがお知らせリストを使いたかったり、すでにお知らせリストで運営されていて有効期限列が邪魔だなぁと考えていた場合などは、この方法を検討してみてはいかがでしょうか。