SharePoint 選択肢を実現する列の3種類の比較まとめ

いわゆる選択肢を実現したい場合の列の種類は、「選択肢」の他にも「参照」「管理されたメタデータ」と、合計3種類があります。この3種類にはそれぞれ特徴があるのですが、リスト作成時の全体的なニーズに対し、選択肢を追加する際にどの列の種類を利用するのが適切なのか?というのは、それぞれの列の種類の特色を把握していないとなかなか判断できません。
例えば、選択肢列以外の種類ではビューのフィルター条件の一部が利用できなかったり、集計値列で利用できない、など以外と忘れっぽい制限事項などがあり、後々できなくて困る事もあるかと思います。他にも過去の記事にこんな例もあります。

SharePoint 「選択肢」列で陥りやすいトラブル

トラブルにならないように3種類をまとめてみたいと思います。

まずは3種類の特徴を大まかに。

■選択肢

  • 名前がモロそのままなこともあり一番利用される。
  • ビューのフィルター条件での制限がない。
  • 選択肢の値を変更しても、投稿済アイテムの値は連動して変更されない。
  • サイト列として登録をすれば使いまわしも可能。
  • ドロップダウン形式の表示以外にもラジオボタンなどもある。

■参照

  • 参照元となる別リストを作成する必要があり、値の変更も参照元リストで行う。
  • 参照元リストの列を複数参照させる事ができる。※1
  • 参照元リストがあるサイト内でしか参照できない。

■管理されたメタデータ

  • カスケード分類が可能。 ※4
  • 用語ストアで登録すれば広範囲で使いまわしができる。
  • クイック編集時に難あり。 ※2

では、それぞれの機能を○×で表にしてみました。


※1
参照元リストの別の列をビューに表示させられるのは SharePoint 2010 以降。

※2
クイック編集内で別アイテムの値をコピペする事は可能だが、テキストファイルやExcelファイルなどからコピペはできない。(これは後日、別記事で紹介できればと思います。)

※3
既定で1時間インターバルのタイマージョブで変更されるため、最大で変更に59分かかる。

※4
カスケード分類とは?
「入力フォームでよくある、都道府県で神奈川県を選択すると、市区町村の選択肢は神奈川県内の市しか表示されなくなるアレ。」みたいに例えないと、未だに一発で理解できる用語が出てこない機能。SharePoint 界では「カスケード分類」があえて言うならメジャーな用語なのかもしれないけど、その「カスケード分類」と口にしても、未だに追加で都道府県の例えを話さないと理解してもらえない。

※5
利用できる参照元リストはサイト内のリストのみ。


以上です。

例えば、リストのフルコントロール権限は付与しても、選択肢の値の変更を許したくない場合は、選択肢列以外の利用が好ましいですね。参照を利用すれば、参照元リストの権限を閲覧にすれば解決ですし、管理されたメタデータであれば、用語ストアに登録し、その用語セットの権限でコントロールすれば解決ですし。

例えば、カスケード分類が必須であれば、管理されたメタデータのみですね。

例えば、大量の投稿がある事が予測されていて、かつ値は途中で変更する事があり、投稿済アイテムの値も変更に連動させる必要がある場合は、選択肢列は避けないと危険ですよね。(上述で紹介した記事を参照)

あらかじめそれぞれの特徴を把握していれば判断に怖くはありませんが、結構忘れちゃいがちなのでこのように表にしておくと良いと思います。

SharePoint 「選択肢」列で陥りやすいトラブル

■トラブル事例

以下、サイト管理者(Q)と SharePoint 運用部門(A)のやりとりです。

  • Q「選択肢列の値を変更したのですが、投稿済アイテムの値が変更前のままなのですが?」
  • A「はい、選択肢列の値を変更しても、投稿済アイテムの値が連動して変更されないのは仕様です。」
  • Q「そんなの聞いてないよ!500件ほど対象アイテムがあるんだけど、どうするの?」
  • A「はい、手作業で変更するしかありません。フィルターをかけてクイック編集すれば比較的楽に…」
  • Q「いやいやいや、それだと更新日時や更新者の名前が変わっちゃうよね?」
  • A「はい、そうです。」
  • Q「それじゃ困るんだよね!なんとかならないの??」
  • A「そう言われましても…」

知っている人にとっては SharePoint あるあるなのかもしれませんが、選択肢列の値を変更しても、投稿済アイテムの値が連動して変更されません。つまり、選択肢列の設定の値はマスターデータではなく、選択して投稿した際に、その値がそのままアイテムのデータとしてスタンプされるわけです。

実際に検証してみます。

▼「選択肢」列に「AAAA」「BBBB」「CCCC」という値を設定しました。

▼実際に投稿します。

▼投稿後に「選択肢」列の「AAAA」を「ああああ」に変更します。

▼投稿済アイテムは「AAAA」のままです。

これを「クソ仕様」だと言う人もいたけど、選択した時の値を保持したいニーズもあるので、クソではないと思います。

▼想定される選択肢の仕様で後々トラブルになりやすい条件

  • 投稿数は結構多い事が予想される。
  • 更新日時や更新者の情報は大事である。
  • 選択肢列の値を変更する事がある。

例えば、そのようなニーズがあるリストを作成する場合は、選択肢列を利用する前に投稿済アイテムの値については確認を取った方が良いですね。

では、値を変更した際に投稿済アイテムの値と連動させるような方法があるか?ありますよね。参照列を利用し、マスターデータを別リストで管理すれば可能ですね。また、管理されたメタデータでも要件は満たされると思います。ただし、参照列も管理されたメタデータもそれはそれで特色や仕様があるので、そちらにも注意して利用しないと、別のトラブルになりかねないです。
そういう意味でも、選択肢を実現させるには複数の列の種類がありますが、全ての特徴を表にしたりすると良いかもしれません。っていうか僕はそういう表を作っていました。忘れがちなので。

サイト管理者の SharePoint のスキルや経験次第なのですが、仕様を把握せずに作成して運営を開始すると、後々になってトラブルになる事もあります。
とはいえ、運用・運営部門でも SharePoint の細かな仕様はなかなか全ては把握できず、ましてやサイト管理者となれば仕方のない事かなと思うので、やはり経験を積んでトラブルなどはしっかり記録してナレッジとして蓄積させないとですね。

Nintex FormsでSharePointの選択肢を簡単に横並びにする

SharePointの選択肢列で不便に思うのが、ラジオボタンやチェックボックスが1列縦並びにしかできないこと。ムダに縦スクロールができてしまいます。選択肢が多い場合はドロップダウンにしがちですが、複数選択させたい場合はドロップダウンは使えません。

例えばこのように「好きなフルーツ」列を作りました。フルーツ大好きなので単数選択は僕にとっては酷な選択です。なので複数選択できるようにチェックボックスにしました。縦長になりますよね。こういうものだと思えば気になりませんが、なんとかしたい場合には、Nintex Formsでは2列以上に簡単にできます。

必要なコントロールの設定はこの3点です。

例によって文字だけでは意味がよくわからないので検証をします。

まず「列の数」で何列にしたいかを設定します。単純に何列にしたいのか数字を入力するだけでもOKだし、式も使えます。ここに「3」と入力するだけで、3列に設定してみました。簡単です。

次に「選択肢の配置」というのがわかりにくいです。

「下から右へ」はこんな並び順。これを見ると「下から右へ」の意味がわかりますね。

ここを「右から下へ」に変更するとこうなります。

つまり「右から下へ」というのはこういう事ですね。

最後に「列の配置」。

これは「固定」「浮動」とあります。今までは固定。

浮動に変更すると、こうなります。

固定は列ごとに左寄せされるのに対し、浮動は全てが左寄せになります。このままでは値と値の間の余白が不十分なので見づらく、何かしらの調整がしたくなりますね。

このようにFormsなら簡単に3つの設定で列の値を横並びにする事が可能です。

SharePoint 選択肢列の「選択肢を追加できるようにする」を「はい」にした場合の文言がわかりやすくなっていた!

SharePoint2007時代からSharePointを触っていて、日本語訳に難がある箇所がところどころありました。
例えばアイテムの「閉じる」ボタン。ブラウザ操作で「閉じる」はウインドウもしくはタブが閉じるの意味を連想するので違和感を覚えていました。実際は1つ前のページに戻る、もしくはそのリスト・ライブラリの既定のビューに戻るんですよね。現にユーザーからもウインドウが閉じるかと思って閉じるボタンをクリックした事はなかった、なんて声も出ていました。

話を戻して…
日本語訳が微妙であまり使えなかった機能のひとつに、この記事のタイトルのとおり、選択肢列の「選択肢を追加できるようにする」の機能があります。これはつまりラジオボタンやチェックボックスなどの選択肢で、該当なしの場合に自分で記入できるいわゆる「その他」という選択肢。

これがSharePoint2007だと…

この「選択肢を追加できるようにする」を「はい」にすると…

「値を指定してください」なんて文言なんです。どうも微妙な日本語なのでよろしくないです。特にアンケートリストでアンケートをとる際に利用したいシーンが多いのですが…。

ちなみにこの文言は基本操作では変更できません。仕方ないのでJavascriptを使って変更したり、ユーザーにこういうものだと周知させてこのまま使ったりしていました。

それが!

恥ずかしながらこないだ気がついたのですが、今は文言が変わっていました。

SharePoint2013だと…

「その他 (テキストを入力してください):」
あら、問題ないじゃないですか。

いつから変わったんだろう…

SharePoint2010でも変わっていなかったと思うんだよなぁ。

SharePoint2013に関しては全く記憶がなく…。

これからは気兼ねなく使えそうです。

SharePoint 「選択肢」列とビューのグループ化の怪奇現象

【1】「選択肢」で複数選択が可能なチェックボックス型で列を作成します。
01

【2】適当にアイテムを作ります。
02

【3】この「カテゴリ」という選択肢列でビューでグループ化をさせたくても、選択できません。
03

つまり、チェックボックスの選択肢列はグループ化ができない仕様です。

じゃ、ひねくれてこんな検証を…

【4】作成した「カテゴリ」列を編集でラジオボタンに変更します。
04

【5】投稿済みアイテムはすでに値は落ちているので、ラジオボタンだけど「A;B」という現象が。
05

【6】この状態だとラジオボタンなのでビューのグループ化で「カテゴリ」列は選択可能になります。
06

【7】結果
07

このスクショだけを見ると、チェックボックスの選択肢列はグループ化ができているように見えます。しかし、実態はすでにラジオボタンに設定変更をしているので、今後追加されるアイテムは複数選択できません。

じゃ、

【8】この状態で再度チェックボックスにすると?
08

【9】なんか壊れた!!!
09

【10】この状態でビューのグループ化を見るとグループ化されていない事になっています。
10

つまり、結局のところ、チェックボックスの選択肢列はグループ化ができないという結果でした。