【SharePoint】内部列名が短すぎる場合、1文字目がエンコードされてしまうことがある
SharePoint Online でカスタムリストに列を追加するときに遭遇した謎現象。
内部名は後から変更できない、内部名を日本語で設定するとエンコードされるから、まずは英語で設定してから表示名を変えるということを知っている前提です。
不明な方は「SharePoint 内部名」で検索してみてください。
列を追加する:正常ケース
リストの設定を開き、keke01 という名前の列を追加します。
すると、keke01 という列が追加されたことが確認できます。
普通の動きです。
列を追加する:異常ケース例
同じように、ke01 という列を追加します。
すると、ke01 という列が追加され・・・ない?
_x006b_e01 なんて列が作られてます。
この現象について、わかっていること
- 英数字、または数字で構成された列の場合に起きる
- 英字のみの場合は発生しない
- 英字や数字の種類は関係ない
- 桁数は関係ありそう。ただし、何文字以下が NG かはっきりとは調べていない
- 同じ列名の場合、削除して作り直しても必ず発生する
- CSOM で列作った場合も起きる
- 作成する列の種類は関係ない
回避策
- 内部列名は、意味の通るある程度の長さにする
- ただし 32 字以内でないといけない
- 内部列名に数字を使うことを避ける
- 使う場合、勝手に列名が変わっていないか確認する
- 変わってしまう場合、列名を再考する・または長くする