SharePointを扱っている人にとっては常識レベルのお話ですが、列作成時の注意点です。
一旦英語の列名で
列作成時に日本語の列名を付けることが可能ですが、一度英語やローマ字表記の列名を付けてください。作成後に編集をして日本語の列名に変えるのがセオリーです。
例えば 期限日 という列を作る場合、 limitDate などの列を作成し、その後編集して 期限日 に変更するといった具合です。これはオンプレミス版でもSharePoint Onlineでも同じです。
理由
何故そのようなまどろっこしいことをするのかというと、「内部列名」という仕組みがあるためです。
リストの列は基本的に「内部列名」と「表示列名」の2つの名前を持っています。
内部列名は基本的に殆ど表に出てこない名前で、列編集画面のURLパラメータから確認することができます。
表示列名は逆に表に出てくる名前で、リストのあちこちで表示されるヤツです。
で、問題となるのが先に挙げた内部列名の方です。
最初から日本語の列名で列を作成してしまうと、この内部列名がエンコードされた文字列となってしまいます。下図の例では列名「あいうえお」なのに内部列名はよく判らない文字列となってしまっています。
SharePointに何もカスタムを入れない場合は問題ありませんが、powershellやjavascriptによるカスタムを行う場合はこの内部列名を使用します。エンコードされていても正しく扱うことはできますが、ソースコードを読む際に訳が分からない状態となってしまい、オススメできません。
作業
では実際にどのように作成とリネームを行うか、見ていきましょう。
まずはリストの設定画面などから「列の作成」を選択します。
列の作成画面が開きますので、「列名」の入力欄にアルファベットを用いた列名を入力して「OK」ボタンを押下します。※その他の設定値はお好みで構いません
「OK」ボタンを押すと列が作成され、リストの設定画面に戻ります。先ほど作った列が表示されていますので、その列名部分をクリックします。
列の編集画面へと遷移しますので、ここで「列名」に表示させたい列名を入力して「OK」ボタンを押下します。ここで入力する列名は日本語でOKです。
再度リスト設定画面へと戻り、名前変更後の列が表示されています。これで作業としては完了です。
では念のために内部列名を確認してみましょう。
ちゃんと作成時の名前「aiueo」となっているのでOKですねっ!
まとめ
リストの列を作る時は、内部列名がエンコードされることを防ぐために、2バイト文字などは利用してはならない。手間がかかってしまうが英語などの列名で作成後に日本語へと編集する必要がある。
とこんな感じですね。
作成する列が少ない場合は手作業で行ってもよいのですが、大量の列を作成する場合にはやってられません。そんな時にはpowershellを用いて作成→リネームという作業を一括で実行することも可能ですので、興味があったら調べてみてくださいねっ!
コメント