インフォシェア株式会社 飯島聡
SharePoint 2013のカスタムリストでコンテンツタイプを有効化した場合、リストの設定画面から「列の順序」リンクが消えます。
リストの詳細設定で「コンテンツタイプの管理を許可する」を選択します:
コンテンツタイプ有効化後、リストの設定画面からは「列の順序」リンクが消える:
リストアイテム新規・編集フォームでタイトル列を非表示にする で、コンテンツタイプを有効にして、各フォームでタイトル欄を非表示にするという方法をご紹介させていただきました。
その手順3.で、
…フォームの列の順序は次の手順の画面「リストコンテンツタイプ「アイテム」」の下方にある「列の順序」リンクの先の画面で指定できます。)
と、コンテンツタイプを使用する場合のリストフォーム上の各フィールドの上からの順序を変更する方法について触れました。
具体的には、リストの設定画面の「コンテンツタイプ」セクションのコンテンツタイプのリンク(以下の図では「アイテム」の部分)をクリックして表示される「リストコンテンツタイプ画面」の下方に「列の順序」リンクがあります。
このリストコンテンツタイプの「列の順序」リンクで開く画面で、列順序を設定すれば、各フォーム画面で変更が反映されます。
また、ビューにおける列の左からの順序に関してはコンテンツタイプを使用するかしないかにかかわらずビューの設定で変更できます。
というわけで、「そんなの常識だよ。」「知っているよ!!」「わざわざTips記事にする意味があるの?」と思われるかもしれませんが、実はコンテンツタイプの「列の順序」の設定通りにならないものがあります。
SharePointには、リストアイテムの変更等を通知する機能があります。(リボン「リスト」タブの「共有と追跡」に設定を開くボタンがあります。もし、ボタンが表示されていない場合は、このページの一番下の「付録」を参照してご確認ください。)例えば、リストのアイテムが変更されたときに特定のユーザーにメールを送信するなどの設定ができます。
注意:この先の内容は私のテスト環境での確認内容ですので、実施される場合は充分テストを行ったのち問題ないとご判断いただいてからのちにお願い致します。
この通知メール本文上でのフィールドと値の上からの記載順序が、コンテンツタイプを有効化する前のリスト設定での「列の順序」になっています。
コンテンツタイプの「列の順序」を変更しても通知メールではその通りになりません。
アイテム変更通知メールの内容(コンテンツタイプの「列の順序」を変更後でも反映されていない):
実はリストの設定の「列の並び順の変更」ページを開く方法があります。そして、そのページで順序を設定すると、それが通知メールの本文の順序にも反映されます。
以下に手順を記載します。
- ブラウザで該当のリストのビューの画面を開きます。
-
右クリックして、コンテクストメニューを表示して、「ソースの表示」を選択します。
- エディターでHTMLソースが開いたら、検索ダイアログを開き「ListId」を入力して検索します。
-
pageListId:" {44e195db-b854-4733-9c78-36688a74e303}"のような記述が見つかるので、メモします。これがListId(リストのGUID)です。
-
テキストエディタで、「(siteUrl)/_layouts/formedt.aspx?List={(ListId)}」となるようにURLを組み立てます。
-
組み立てたURLをブラウザのアドレスバーに貼り付けて、リクエストします。
→「列の並び順の変更」の画面が表示されます。
-
この画面で順序を変更して、設定を保存すると、通知メールや各フォームに反映されます。
(注意:こちらの設定変更の後、各フォームでもこちらの設定が反映されてしまいますので、フォームでは異なる順序にしたい場合はリストコンテンツタイプの「列の順序」を変更する必要があります。)
付録
リストアイテムの通知機能がリボン「リスト」タブに表示されない場合の確認事項:
- ファーム管理者のアカウントで「サーバーの全体管理」にサインイン
- 「サーバーの全体管理」>「システム設定」を開く
- 「電子メールとテキスト メッセージ (SMS) 」>「送信メール設定の構成」のリンクをクリックして、「送信 SMTP サーバー」に適切なサーバー名が入力されていることを確認する。
-
「サーバーの全体管理」>「アプリケーション構成の管理 」>「Web アプリケーションの管理 」の
該当のWebアプリケーションを選択。
- 表示されるリボンの「WEBアプリケーション」「管理-全般設定」のドロップダウンより「全般設定」を選択
- 「Webアプリケーションの全般設定」ダイアログで「通知」の項目を探し、このサーバー上での通知:のラジオボタンがオンになっていることを確認する。