SharePointOnline タイトルを変更してもAPIで変更後のタイトルが取得できなかった

2023年02月14日 00時02分

結論

GUIDで取得する。

※以下タイトルでどうしても取得したい場合の話

既定の言語を設定し(例えば英語)、別言語(日本語ユーザー)が編集を加えた場合、翻訳語ファイルが変更される。

そのためタイトルを変更してもAPIで使用するTitle名は変更されたことにならず、変更後のタイトルで値は取得できない。

ただし、GUIDでリストを取得した場合のTitle Fieldは翻訳済みの言語で表示されるので罠に見える。(PowerAppsでは翻訳済み項目名でリストが取れているので今後変わるのかも)

SharePointOnlineとAPI

SharePoint自体はRESTAPIが存在しており気軽にListのアイテムやRoleを操作できるようになっている。

一部のサイトでRESTAPIやPowerShellのList.getByTitle関数が動作しないことがあった。(正確にはタイトルを変更しても、変更後のタイトル名がGetByTitleで取得できない)

ただ、GUIDで値を取得すると、Title名Fieldは変更後のタイトルになっている。

言語設定からタイトル変更まで

既定の言語確認

サイト設定を見ると、翻訳の言語内で既定の言語が記載されている。

そちらが英語となっていた。

サイトの詳細

サイト詳細

規定の言語に設定を確認 既定の言語確認

既定の言語が英語になっている。

マニュアルに従い言語を英語に変更する。

しばらく待つと、日本語表示から英語表示のSPOサイトが確認できる

SPO(英語版)

英語版のリストタイトルと項目名を設定

SPO(英語版)

GetByTitleで設定したリスト名が取得できる

英語ユーザーでGetByTitle実行

英語ユーザーでリストタイトルを変更してみる

GetByTitle実行

変更後のリスト名が取得できる

英語ユーザーGetByTitle実行

既定の言語以外のユーザーの挙動

日本語ユーザーのリスト名が英語版と違うと・・・?

GetByTitle実行

GUIDで取得すると翻訳済みリスト名が取得できる(ヽ''ω`)

GetById実行

日本語ユーザーの該当タイトルでは取得不能

GetByTitle実行

まとめ

多言語環境でリストを取得するときはGUIDで取得する。

どうしてもタイトルで取得したい場合には、既定の言語を確認して取得。