概要
PowerAutomateやPowerAppsなどで何かと確認する機会があるIDや内部名を確認する方法についてです。
IDは下図のようなリストのURLの%7B
と%7D
で囲われた部分になります。
内部名は、下図のような Sharepoint List を開いた際に表示される列名(表示名)ではなく
下図のような列の設定を開いた際に表示されるURLのField=
より後の部分になります。
詳細
Sharepoint ListのIDを確認する方法
IDを確認したいリストを開きます。
画面右上の「設定」アイコン(歯車マーク)をクリックし、表示されたメニュー内の「リストの設定」をクリックします。
リストの設定画面が表示されたら、URLのList=
以降を確認します。%7B
と%7D
に挟まれた下図赤枠の12345678-1234-1234-1234-123456789012
のような形式の部分がIDです。
ちなみに、%7B
と%7D
は{
と}
がURLエンコードされた文字ですので、List=
以降のURLはList={12345678-1234-1234-1234-123456789012}
という文字列になります。
このIDは自動生成されるもので、任意のものを指定したり、後から変更したりすることは出来ません。
列の内部名を確認する方法
内部名を確認したい列が含まれるリストを開きます。
画面右上の「設定」アイコン(歯車マーク)をクリックし、表示されたメニュー内の「リストの設定」をクリックします。
リストの設定画面が表示されたら、内部名を確認したい列名をクリックし、列の編集画面を開きます。
下図の列項目に表示されているのは内部名ではなく列名(表示名)になります。
列の編集画面が表示されたら、URLのField=
以降の部分を確認します。
下図赤枠のようにField=
より後のTitle
や_x672c__x6587_
になります。
内部名が _x672c__x6587_のような文字列(Unicode形式)になる理由
列を作成する際、列名を「本文」などの日本語にして作成すると内部名は_x672c__x6587_
のようなUnicode形式に置き換えられます。列名など、基本的にURLの一部として利用されるため、日本語などはそのままではURLに利用できないためUnicode形式に置き換えられているようです。
列名を「Title」などの英数字にして作成するとそのまま内部名はTitle
となります。
列名を決めるコツ
Sharepoint Listだけで完結する分についてはあまり問題はないと思います。
ただ、PowerAutomateなどと連携しようとする際には基本的に列の内部名を指定することになります。内部名が_x672c__x6587_
のような列が複数あると、コーディング時に視認性が悪くなり、設計書と見比べながらか、リストの設定画面を都度開きながら作業することになり、非常に効率が悪いです。そういったことから、基本的には内部名が英数字になるようすることを推奨します。
同じ名前の列名や内部名を複数作ることは出来ない
列名や内部名はユニークなものでなければいけませんので、設計時に重複しないように注意する必要があります。
すでに存在する名前で作成しようとすると下図のメッセージが表示されますので、実際にSharepoint上で重複した状態が発生することはないです。
内部名を後から変更することは出来ない
列名に関しては後から変更することは出来ますが、内部名に関しては後から変更することは出来ませんので、設計段階で注意する必要があります。
どうしても変更する必要がある場合は、いったん該当の列を削除し、新たに追加することになりますが、すでにデータが蓄積されている状態ではその手順は使えないため、タイプミスなども含めて気をつける必要があります。
後から変更しなければいけない場合は、エクスポートとインポートを行うか、別途記事で紹介しているADOでSharepoint Listに対して直接Updateクエリを実行する方法が有効化と思います。
内部名を英数字にする方法
列を追加する際には、まず内部名としたい名称で列を追加します。
「本文」という列名を追加する際、まずは「Body」と入力し、「保存」ボタンを押します。
「Body」という列が追加されますので、「Body」をクリックし、「列の設定」内の「編集」をクリックします。
列の編集画面が表示されますので、「名前」項目に「本文」と入力し、「保存」ボタンを押します。
すると、表示名は「本文」ですが、内部名が「Body」になっている列を作成することが出来ました。
仮に、「本文1」で作成した場合は「_x672c__x6587_1」になりました。その他についても試すと以下のようになりました。
命名時の参考になればと思います。
基本的に数字を1文字目に入力した場合、半角全角関係なくUnicodeに置き換えられます。仮に「11」とした場合は2文字目以降の数字は置き換えられないようです。
追加時の列名 | 生成された内部名 |
---|---|
本文1 | _x672c__x6587_1 |
1本文 | x0031__x672c__x6587 |
11本文 | x0031_1_x672c__x6587 |
1b本文 | x0031_b_x672c__x6587 |
1本文1 | _x0031__x672c__x6587_1 |
本文1本文 | x672c__x6587_1_x672c__x6587 |
1本文 | xff11__x672c__x6587 |
Body本文 | body_x672c__x6587_ |
本文Body本文 | x672c__x6587_body_x672c__x6587 |
Body本文Body | Body_x672c__x6587_Body |
おすすめ書籍
ひと目でわかるMicrosoft 365 SharePoint運用管理編
数少ないモダン UI を中心とした書籍です。
基本的なことから他ツールのとの連携まで画像や例付きで紹介されていますので、まずはこの一冊を読むことをおすすめします。
ひと目でわかるOffice 365ビジネス活用28の事例 SharePoint Server 2016対応版
クラシック UI 時代には重宝した一冊です。
モダン UI に関する情報が少ないため、直接活用できるものではありませんが、SharePoint で何ができるかを知るにはいいと思います。
おわりに
Sharepoint ListのIDや内部名を確認する方法でした。
SharepointやPowerAutomateなどを利用して、ノーコードで直感的に機能を開発したりできるためすごく便利ですし、あまりなれていない人でも機能を開発することが出来ます。ただ、設計を意識せずに日本語名などで列を作成していくと、あとで痛い目を見ることがありますので、命名規約に関してはしっかり部内で決めておく必要があると思います。