SharePoint 集計値列の式を利用してHTMLを生成する方法がブロックされるとか無慈悲!

FacebookでHirofumi Otaさんの書き込みを見て知りました!

開発やカスタマイズNGの環境では、集計値列の式を利用してHTMLを生成する方法は小手先技だけど色々できる技だったのにぃ!なんだかこの利用方法での実行がブロックされたらしい!っていうかこれは正式な利用方法ではなかったんだ?

以前デモで作ったリストがあったので確認しました。
選択肢を選ぶとそれに応じたアイコンが表示される仕組みです。

マジかぁぁぁぁ…orz

たった数日前まではimg列にはキレイなアイコン画像が並んでいたのに、今確認したら見るも無残なソースの表示がぁぁぁ…。

これ裏技だったとは知らなかったけど、テクニックとしてはネット上に色々紹介されているので、利用されている会社も少なくはないハズ。結構困る人もいるのでは???

Handling HTML markup in SharePoint calculated fields
https://support.microsoft.com/en-us/help/4032106/handling-html-markup-in-sharepoint-calculated-fields

よく読むと、SharePoint Online は2017/9/10までは延長をリクエストできるそうですが、延命措置はそこまでで、9/10以降は完全にNGそうです。
オンプレミスの SharePoint 2013/2016 は、2017/6のPUで「CustomMarkupInCalculatedFieldDisabled」という新しいWebアプリケーション設定が含まれ、この設定により管理者側で特殊文字をエスケープするかどうかを設定できるとの事。小難しい事言ってるけど、つまり、オンプレは管理者の設定次第で免れるという事ですかね。

SharePoint あるある:リストの詳細設定の「アイテムごとの権限」の罠!

リストに対して閲覧権限を付与されたユーザーは、他人の投稿したアイテムを編集しようと思っても、ボタンがグレーアウトされてクリックできません。わかりやすいし罠の臭いも感じません。

次にリストに対して投稿権限はあるけど、リストの詳細設定の「アイテムごとの権限」の設定を変更した場合。ここにイジワルとも言うべき罠が潜んでいるんです。

初期設定では「読み取りアクセス権」「作成/編集のアクセス権」が共に「すべてのアイテム」になっています。

ここで問題なのは「作成/編集のアクセス権」を「ユーザー本人のアイテム」にした場合。

つまり自分以外のアイテムは編集できないという事です。
この設定がなぜ罠かというのは実際にやってみるとわかります。

▼この設定にして他人のアイテムをまずは開きます。ん?リボンの「アイテムの編集」ボタンはクリックできる?? …とりあえずクリックします。

▼あれ?編集画面になった!編集できるんじゃん。編集しよう。

▼内容を編集して「保存」ボタンをクリックすると…このタイミングでNG!?

そうなんですよね。編集できそうに見せかけて最後の最後でやっぱできないんですよね。「編集できますよ!できますってば!ほら、やってみて!…うっそぴょ~ん!」というイジワルな声が聞こえそうな罠です。

このイジワル仕様による弊害は立場的には2点あります。

【1】リスト作成者の弊害

この仕様を知らないリスト作成者が、自分のアイテム以外を編集できない要件のあるリストを作成した際に、この設定を施します。その後、検証をしてみると編集ボタンはあるし編集画面に行けるから「あれ?うまく動作してない?」と勘違い。普通編集画面まで行けてしまった時点でうまく機能していないと思ってしまうから、そこから更に実際に「保存」までのアクションをテストせずに悩んだり調べたりしちゃいますよね。この仕様がわかった時に、無駄な時間をすごしてしまったと思っちゃいます。

実は実際に僕はこの罠に陥った一人です。ホント仕様を知った時に心の中で「orz」になりましたよ。

【2】投稿者の弊害

該当リストがそういう仕様だという事に気がつかずに、他人のアイテムを編集する機会があったとします。ボタンがグレーアウトしていたり事前にそういう仕様であると示唆するメッセージなどがないので、知らずにメッチャ気合い入れて編集し、保存ボタンをクリックしたら…。
俺の気合いを返せ!となります。

実は実際に経験談ですが、これで苦情を受けたこともあります。仕様なので仕方ないんですけど、苦情を入れたい気持ちもわかる。

アイテムごとの編集の設定を変更したら、リスト作成者はこの仕様を忘れずに。また、投稿者には何かしらの手段でしっかりアナウンスする必要がありそうです。