Liezeのノート

MS製品を中心にやってみたことなどを書いています。あくまで個人的な検証や考察になりますので、内容を保証するものではない点、ご容赦ください。

ドキュメントライブラリへの投稿時にエラーになるパターンとそのエラーメッセージ

間が空いてしまいましてすみません。

今回は、SharePoint 2016の話ではなく、ユーザーが使う際に発生する事象として、ドキュメントライブラリにファイルを投稿した際にエラーが発生するパターンとそのエラーメッセージについてです。

ドキュメントライブラリにファイルを投稿する際、同名のファイルをアップロードすると、基本的には置換するかどうかの確認メッセージが表示され、OKすると上書きでアップロードされます。
ただし、いくつかのケースにおいてはエラーが表示されファイルのアップロードができません。
以下は、ユーザーが編集権限を持っている(ドキュメントの承認はできない)状況下で発生するパターンとそのエラーメッセージです。

①ファイルがチェックアウトされている
これは比較的わかりやすいパターンで、ファイルが別のユーザーにチェックアウトされている場合です。
サイト上でもファイルにチェックアウト中のアイコンがついているので、そこから判別することもできますが、実際に同名のファイルをアップした際にも以下のようなエラーが表示されます。

f:id:lieze:20151015141635p:plain

②同名の未承認ドキュメントがある(メジャーバージョンが存在する場合)
2つ目のパターンとして、アップロードしようとしているファイルと同名の未承認ドキュメントがあるケースです。
これはライブラリでコンテンツの承認、およびバージョン管理機能を有効化しており、かつバージョン設定の「下書きアイテムのセキュリティ」を「アイテムの作成者およびアイテムを承認できるユーザー」に設定している際に発生する可能性があります。

例えばあるユーザー(ここではUser01)がファイルを更新し、メジャーバージョンを発行すると、承認者が承認するまではファイルが「承認待ち」の状態になります。

f:id:lieze:20151015142420p:plain

ここで、「下書きアイテムのセキュリティ」が「アイテムの作成者およびアイテムを承認できるユーザー」にしていると、他のユーザー(ここではUser02)から見た場合、見かけ上「承認済みのメジャーバージョンのドキュメントが存在している」ように見えます。

f:id:lieze:20151015142901p:plain

この状態で、同名のファイルをアップロードすると、実際には未承認のもっと新しいドキュメントが存在するので、以下のようなエラーが表示されます。

f:id:lieze:20151015143125p:plain

アップしたユーザー側からは一瞬あれ?となるかもしれないですが、エラーメッセージの内容が割とわかりやすいので、状況は判断できそうですね。

③同名の未承認ドキュメントがある(メジャーバージョンが存在しない場合)
最後に、②のパターンとほぼ同じですが、メジャーバージョンのファイルが存在しない(0.xバージョンのファイルしかない)場合です。
同じくライブラリでコンテンツの承認、およびバージョン管理機能を有効化しており、かつバージョン設定の「下書きアイテムのセキュリティ」を「アイテムの作成者およびアイテムを承認できるユーザー」に設定しているケースで、あるファイルが初めてアップされた場合、承認されるまではまだメジャーバージョンのファイルが存在しないという状況になります。
この場合、ファイルを先に投稿したユーザー自身は「アイテムの作成者」なので、サイト上からファイルの存在を確認できます。

f:id:lieze:20151015143822p:plain

しかし、その他のユーザーからは「ファイルの存在自体が分からない」状態になります。

f:id:lieze:20151015144354p:plain

この状況だと、ユーザーは同名ファイルはないから問題なさそうだと思ってしまいそうですが、実際はアップロードすると以下のようなエラーが表示されます。

f:id:lieze:20151015144745p:plain

実はこのパターンが曲者で、上図の通り、エラーメッセージが汎用的な内容のため、何故投稿が弾かれたのかがパッと見判断できません。(何となく、権限が足りなくて投稿できないようにも見えてしまいます)
ですが、実際は裏に未承認の同名ドキュメントがあるため、動きとしては既定の動作となります。

ちなみに、「下書きアイテムのセキュリティ」が「アイテムを閲覧できるすべてのユーザー」や「アイテムを編集できるユーザー」の場合は、編集権限を持つユーザーでも「下書き」や「承認待ち」状態のファイルが見えるようになるので、この場合は通常と同じく置換でアップロードすることも可能です。
逆に上書きされたくない場合は、チェックアウト機能も併せて使うなどして、誤操作を防ぐ必要があります。

試してみた限りでは、SharePoint 2010やSharePoint 2016でも、この辺りのパターンやエラーの出方は同様のようです。
ユーザーさんから「ファイルがアップできないんだけど!」的な問い合わせを頂いた場合、物理的な障害等がないようであれば、管理者さんはバージョン関連の設定がされていないかや、未承認ドキュメントが実はないか、辺りを一度確認してみるといいかもしれません。