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

■トラブル事例

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

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

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

実際に検証してみます。

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

▼実際に投稿します。

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

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

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

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

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

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

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

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