Power Platformメモ
SharePointリストの列名と内部名の違いに注意
SharePointリストで列の表示名と内部名(英字)が異なる問題と、Power AppsやPower Automateで正しく参照するための確認方法をざっくり整理したメモです。
SharePointリストの列名と内部名の違いに注意
この記事の位置づけ
この記事は、Power Platform初学者向けの技術メモです。動作はバージョン・環境によって変わることがあります。実際のリストで確認してください。
ざっくり言うと
SharePointリストの列には、**画面上に表示される「表示名」**と、**システムが内部で使う「内部名(インターナル名)」**の2種類があります。
Power AppsやPower Automateで参照するとき、この2つが一致していないと、値が正しく取得・更新できないことがあります。
よくあるトラブル
| 症状 | 原因 |
|---|---|
| 列名で参照しているのに値が取れない | 内部名が表示名と違う |
| 日本語列名で参照するとエラー | 内部名が英字になっている |
| 列名を変更したのに古い名前を参照している | 内部名は最初に設定した名前で固定される |
なぜ表示名と内部名が違うのか
SharePointでは、列を最初に作ったときに設定した名前が内部名として固定されます。
その後、表示名を変更しても内部名は変わりません。
例:
- 列を「部署名」という表示名で作成 → 内部名も「部署名」
- その後、「部門名」に表示名を変更 → 内部名はまだ「部署名」のまま
内部名の確認方法
- SharePointリストの「列の設定」→「編集」を開く
- ブラウザのURLを確認する
- URLの
Field=またはFieldRef=の後に続く値が内部名
または:
- リストの「リストの設定」を開く
- 「列」セクションで列名をクリック
- URLの末尾
Field=○○○が内部名
よく使われる特殊な内部名
| 表示名(例) | 内部名(例) |
|---|---|
| タイトル | Title |
| 作成日時 | Created |
| 変更日時 | Modified |
| 作成者 | Author |
| 変更者 | Editor |
| 承認ステータス | _ModerationStatus |
「タイトル」列は内部名が常に Title です。Power Appsで参照するときも Title で参照します。
Power Appsでの参照
Power AppsでSharePointリストのデータを使うとき、ギャラリーやラベルで内部名を参照します。
ThisItem.Title ← タイトル列
ThisItem.部署名 ← 日本語内部名(日本語でも参照可能な場合が多い)
日本語の列名をそのまま参照できる場合もありますが、特殊文字やスペースが含まれる場合はエラーになることがあります。
列名を**英字(半角)**で作成しておくとトラブルが少なくなります。
Power Automateでの参照
Power Automateでは、「アイテムの取得」「アイテムの作成」などのアクションで列の内部名を使います。
動的コンテンツの一覧に表示される名前が内部名と一致していない場合、@{outputs('Get_item')?['body/内部名']} のような形で直接参照することもあります。
おすすめの対策
- 列を作るときから英字(半角・スペースなし)の内部名にする: 後から変更できないため、最初から意識して設定する
- 列名を確認する習慣をつける: トラブル発生時は、まず内部名を確認する
注意点
内部名に日本語が含まれている場合、URLエンコードされた形(%E9%83%A8%E7%BD%B2 のような形)で表示されることがあります。デコードして確認してください。