SharePoint のリストの列名を利用しやすくする方法

# はじめに

Workato などの iPaaS 製品を利用する場合に、簡易的なデータベースとして SharePointのリストを利用することも多いと思います。

SharePoint に対して操作を行う場合、Workatoでは基本的には列の表示名称が利用できますが、絞り込み条件の設定やカスタムアクションの利用時には列の内部名というものが必要になることがあります。

ところが、SharePoint のリストの列の内部名は自動で設定されてしまううえ、確認する方法もやや複雑です。

この記事では SharePoint のリストの内部名を利用しやすくする方法について記載します。


# 列に日本語の表示名をつけた場合

まず、列の表示名を日本語でつけてみましょう。
下記のようなテーブルを作成した場合の列の内部名を確認してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/b8841d8c-c099-c63c-3423-b33a3c1f0539.png)


左上の歯車のアイコンをクリックし、「リストの設定」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/6196dc37-b7dc-fdb9-d255-809959d22501.png)

列のブロックの「名前」の列名を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/1e27b02c-3aa4-37a8-f9ee-1cc2aea3fc96.png)

列の編集画面の URL の末尾の Field= の後ろが列の内部名になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/6d5e07c4-42d4-3f2d-2289-978ebf42385a.png)

これを見ると 「\_x540d\_\_x524d\_」という見慣れない文字列になっています。これは、「名」「前」のそれぞれのユニコードの符号を「\_x」と「\_」で囲んだものです。

列の表示名を日本語でつけた場合、このように直感的ではない名前になってしまいます。


# 列に英数字の表示名を付けた場合

次に列の表示名を英数字でつけてみましょう
下記のようなテーブルを作成した場合に内部名を確認してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/ce4eb7c1-4884-da2e-f25e-a9e4e385af49.png)

結果を表にまとめます。

|表示名|内部名|
|:--|:--|
|Name|Name|
|Address|Address|
|Title|Title0|
|URL|URL|
|1day|_x0031_day|
|H/W|H_x002f_W|
|a-b|a_x002d_b|
|Rate%|Rate_x0025_|
|Test_1|Test_1|


「Name」「Address」「URL」「Test_1」は期待通りの内部名になっています。

ところが、「Title」は「Title0」と末尾に数字がついてしまいます。これは、「Title」が既定の列の内部名として使用されているためです。他に「Author」「Modified」「Created」「Editor」「ID」などがあります。

「1day」は「\_x0031\_day」と数字が日本語と同様の文字列に変換されています。列の内部名の先頭には数字はつけられないようです。

また、「\_」は問題ありませんが、「%」や「-」などの記号も日本語と同様の文字列に変換されています。列の内部名には記号は使用できないようです。

英数字と「\_」で列名をつけることで、内部名を利用しやすい名前に設定できることがわかりました。


# 列の表示名を変更した場合

列の表示名を作成後に変更した場合はどうなるでしょうか？

列の表示名を変更しても、列の内部名は変更されません。

先程のリストで列の編集画面で列の表示名（列名）を変更してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/d41b4b38-783d-4a9c-de16-cea72d9b0cde.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/733c882e-750c-5503-3b0a-d327caba300f.png)

このように列の表示名を日本語に変更しても、列の内部名は変更されません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3755136/62c05281-ba45-3feb-36f2-60052f418df4.png)

SharePoint のリストをプログラムだけでなく、人間も編集する場合、列の表示名は日本語にしたいケースもあると思います。このような場合、英数字でタイトルをつけてから、列の表示名を日本語に変更することで、比較的利用しやすい内部名を設定することができます。

# まとめ

まとめると、以下のようになります。

- 列の表示名を英数字で設定することで、列の内部名を設定できる
  - 既定の列と同じ名称の場合、末尾に連番がつけられる
  - 先頭に数字は設定できない
  - 「\_」を除く記号は設定できない
- 列を作成した後で、列の表示名を変更しても列の内部名は変更されない
  - 日本語の表示名を


# おわりに

Workato のような iPaaS 製品を利用する場合、項目の表示名ではなく、内部名が必要になるケースがあります。残念ながら、この内部名は調査が難しいことが多いです。

完全に自動でつけられてしまう製品の場合はしかたありませんが、SharePoint のように、少しの工夫で利用しやすい内部名を設定できる場合もあります。

Workatoの導入・導入後の活用などでお困りの場合、Workatoリセラーにご相談する方法もございます。お困りごとがございましたら、認定リセラーの[日立ソリューションズ](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato/?utm_source=sns&utm_medium=qiita&utm_campaign=["62c7358305be7869372a"])へ是非ご相談ください。

# 参考リンク

* 株式会社 日立ソリューションズ
    * [Workato ご紹介サイト](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato/?utm_source=sns&utm_medium=qiita&utm_campaign=["62c7358305be7869372a"])