【PowerAutomate】日本語列でエラー?SharePointフィルタークエリ
発生したエラー
アプリの概要
今回は、Microsoft Power Automate(以下PowerAutomate)を使ってSharePointリスト(以下SPOリスト)のアイテムを消すフローを、Microsoft Power Apps(以下PowerApps)に組み込んでいました。
詳細はこちらの記事を参照してください。
エラーの内容
上記の"Get Items"では、フィルタークエリを設定することで、変数(Person)に格納した人の名前と一致する値を持つレコードのみを抜き出したSPOリストを取得しています。
しかし、SPOリストの列名をそのまま設定しても動きませんでした。
エラーの原因
このようなエラーが発生した原因は、SPOリストの列名を日本語で作成してしまったからです。
通常は、"OData_xx"の部分は列項目名をそのまま使用可能。これは、列名と内部列名が一致するからです。しかし、日本語で列名を作成した場合は、列名と内部列名が一致しません。PowerAutomateのフィルタークエリでは、内部列名を使用する必要があるため、一工夫が必要です。
解決方法
1. 日本語で作成した列項目の内部列名を確認
2. "OData_"を先頭に追加
内部列名の確認
日本語で列項目を作成した場合
対象のSPOリストにアクセスし、右上の歯車マークから順に「設定→リストの設定→列名をクリック→URLを確認」で内部列名を確認します。URLに書かれている最後の部分が内部列名です。上記の場合は、"_x62c5__x5f53_"が内部列名になります。この列の表示列名は「担当」のため、列名と内部列名が異なることが確認可能です。
英語で列項目を作成した場合
ちなみに、表示列名を英語で設定した場合は、URLの部分が表示列名になっています。
"OData_"の追加
日本語で列項目を作成した場合は、"OData_内部列名"で使う必要があります。そのため、今回の例の場合は、"OData_x62c5__x5f53_"がフィルタークエリで使用するときのSPOリストの列名になります。
この列名だと、フィルタークエリが正常に動きました。
お疲れ様でした!