以前、ニュースにカテゴリーを設定し、整理してみようといった記事を書きました。
SharePoint Online モダン サイトのニュースをカテゴリー別に整理する
https://idea.tostring.jp/?p=3917
しかしこの方法の問題は、ニュース Web パーツのニュース ソースの設定で「このサイト」が選ばれているときしか利用できないことです。
ニュース ソースとして「サイトの選択」や「現在のユーザーへのお勧め」が選ばれている場合などの、要は複数のサイトからニュースの情報を集約して表示している場合は、「管理プロパティ」を利用してフィルターを行う必要があります。
この「管理プロパティ」の利用方法が、分かりづらいよなーと思ったので、動作を確認して手順をメモしておきます。
管理プロパティは検索機能のひとつ
まずとっても分かりづらいのですが、この管理プロパティは検索機能に関連するものです。
そもそもニュース Web パーツが様々なサイトからニュースの情報を集めてきて Web パーツに表示するには、裏側では検索機能が利用されています。他のサイトのニュースが Web パーツに表示されるまでには、検索クローラーが巡回してインデックスが作成されなければならず、その処理が完了するまでは表示されないというわけです。
SharePoint の仕組みを理解していないとニュース Web パーツと検索機能が結びつかないのですが、ここはそういうものだと覚えましょう。
管理プロパティのフィルターを使うと何ができるの?
複数のサイトからニュースの情報を集約して Web パーツに表示するときに、特定のカテゴリーが設定されたニュースだけを表示したり、指定された期日よりも前のニュースだけを表示したり、なにか重要度に応じたフラグが付けられたニュースだけを表示したりすることができます。
便利そうですよね。
管理プロパティでフィルターする手順
さて、さっそく手順を見ていきましょう。検索機能の設定をしなければならないので、手間がかかりますし時間もかかります。また、すべての手順を進めるためには、SharePoint Online の全体管理者の権限が必要です。
(2020/10/14 修正)当初はサイト列を利用する手順を記載しましたが、その後も何度か試してみたところリスト列でも大丈夫なようでした。一般的にはリスト列で作成した方が手順が簡単だと思いましたので修正します。
ページ ライブラリに列を追加する
ニュースが保存される「ページ(サイトのページ)」ライブラリを開き、フィルターで利用したい値を入れる列を追加します。
今回はニュースの有効期限のようなプロパティを用意してフィルターしてみたいので、「日付と時刻」を選びます。
SharePoint でこうした列を作成するときには、作成時は列名を英語にしておき、あとから日本語に直すのがオススメです。
ニュースを投稿するサイトにサイト列を作成
まずは、ニュースを投稿するサイトにサイト列を作成しましょう。「はい/いいえ」「一行テキスト」「日付と時刻」など、フィルターに必要な列を作成します。
サイト列の作成は、サイトのトップページを表示した状態で右上の歯車から [サイト情報] – [すべてのサイト設定を表示] – [サイト列] と辿ると開くことができる画面から行うことができます。
とりあえず今回は「日付と時刻」の列を作成してみました。SharePoint でこうした列を作成するときには、作成時は列名を英語にしておき、あとから日本語に直すのがオススメです。
サイト列をページ ライブラリに追加する
次は、ニュースが保存される「ページ(サイトのページ)」ライブラリを開き、ライブラリの設定からライブラリに列を追加します。
ライブラリを表示した状態で右上の歯車から [ライブラリの設定] – (列の設定の下にある) [サイト内の既存の列から追加] をクリックし、先ほど作成した列を「追加する列」に追加して保存しましょう。
これでサイト列がライブラリに紐づきました。
サンプルのニュースをいくつか投稿
検索クローラーに値を拾ってもらえるように、いくつかニュースを投稿しておきましょう。そのときに、今追加した列に情報を入れるのを忘れないようにします。
ニュース投稿時に、[ページの詳細] から先ほど追加した列の値を「プロパティ」として入力することができます。
2 つ 3 つニュースを投稿しておきましょう。
ページ ライブラリのクロール要求を行う
これでページ ライブラリ側の準備は整ったので、ページ ライブラリをしっかりクロールしてもらえるように要求を設定しておきます。
今度は [ライブラリの設定] – (全般設定) [詳細設定] – [ドキュメント ライブラリ インデックスの再作成] をクリックします。
確認ダイアログが表示されますので、そちらでも [ドキュメント ライブラリ インデックスの再作成] をクリックします。
コーヒーブレイク
この後は SharePoint 側で検索クローラーが仕事をしてくれるのを待ちます。その時々で待ち時間は異なるのですが、30 分くらい待てばクロールが終わっていることが多いと思います。のんびりと待ちましょう。
クロールされたプロパティを確認
ここからの操作は「SharePoint 管理センター」で行います。
[その他の機能] – [検索 (開く)] – [検索スキーマの管理] と開きましょう。まずはここでは、ライブラリに対するクロールが終わっており、先ほど追加した列の情報が検索インデックスに認識されていることを確認します。
[クロールされたプロパティ] を選択し、先ほどの列名で検索します。
ows_<列名> のプロパティが表示されることを確認します。表示されない場合は、クロールが終わっていないかもしれませんのでもう少し待ってみましょう。
クロールされたプロパティを管理プロパティにマッピング
さて、いよいよ出てきます。これが「管理プロパティ」です。
先ほど見つけた ows_<列名> のプロパティをクリックし、マッピングを追加します。
このとき、どの管理プロパティにマッピングするかを悩まれると思います。昔から SharePoint を良く知っているエンジニアの方であれば、管理プロパティを新しく作成することを考えるかもしれませんが、SharePoint Online の場合、新しく作成できる管理プロパティは、「テキスト」「はい/いいえ」の 2 種類だけです。今回のような「日付と時刻」を新規に作成することはできません。
というわけで、既に用意されている管理プロパティを利用することになります。SharePoint Online では、実は「RefinableDate00~19」「RefinableDecimal00~09」「RefinableDouble00~09」「RefinalbeInt00~49」「RefinalbeString00~199」のように、管理者が設定して利用できる管理プロパティが用意されています。
今回作成している列は「日付と時刻」なので、「RefinableDateXX」の管理プロパティにマッピングしました。
コーヒーブレイク
はい。ここまで設定が終わったら再び休憩です。クローラーが管理プロパティの設定変更を検索インデックスに反映してくれるまで待つ必要があります。
ここでもおおよそ 30 分くらい待ちましょう。効果があるか分かりませんが、ライブラリのクロール要求をポチっとしても気晴らしになるかもしれません。
ニュース Web パーツの設定
管理プロパティの設定が反映された検索インデックスの作成が終わると、いよいよニュース Web パーツで設定を行っていきます。
ニュース Web パーツをページに追加し、パーツの設定で「ニュース ソース」を「サイトの選択」などに変更して設定、「フィルター」の設定では「管理プロパティ」を選択してフィルター条件を設定していきます。このとき、上手く行ってれば、マッピングした管理プロパティ名で検索することができます。
今回は「日付と時刻」なので検索値には日付を入力するのですが、「2020/10/12」のように入力することもできますが、「[Today]」のように動的に今日の日付を指定することもできました。
例えばこれで、指定した日付まではトップページのニュース Web パーツに表示する(指定した日付を過ぎたら Web パーツには表示されない)といったことができますね。
他のサイトでも設定する
このニュース Web パーツの特徴は、複数のサイトからニュースの情報を集めてきて表示ができることです。そのため、今回の管理プロパティの設定を他のサイトでも行いましょう。
と言っても、他のサイトで行う設定は簡単です。
- ページ ライブラリに列を追加する
ニュースを投稿するサイトにサイト列を作成サイト列をページ ライブラリに追加する- ページ ライブラリのクロール要求を行う
列の英語名を設定を行うすべてのサイトで同一のものとしておけば、今回紹介した手順のうち上の手順を他のサイトでも行えば、あとは勝手にクローラーが情報を収集してフィルターができるようになります。
列の英語名を設定を行うすべてのサイトで同一のものとすることが大事ですね。
さいごに
SharePoint Online がモダンサイトになってニュースを利用し始めると、ニュースの重要度だったりカテゴリーだったり有効期限なりでフィルタリングしたいという要望は必ず出てくると思います。
複数のサイトからニュースを集約して表示できるニュース Web パーツの機能は検索の機能を利用しているため、ユーザーが勝手に設定できるものではありませんが、IT 部門と協力することでより便利に利用できるよう設定を行うことができます。
このとき大切なのは、組織全体でのニュースの運用を決めておくことかなと思いました。
今回の手順、後から設定しようと思った時に絶対に忘れている自信があったのでメモしておきます!