今回はPowerAutomateに関するトラブルシューティングです。
PowerAutomateからSharePointに対して特殊な問い合わせをしたり、リスト項目を特定の列だけ指定して更新したりするとき、重宝するのが「SharePointにHTTP要求を送信します」(Send an HTTP request to SharePoint)アクションです:
Problem
このアクションを使用するフローを作成して動作確認をすると、時折不可解なエラーに遭遇します。
例1:
プロパティ '__metadata' は型 'SP.Data.FooBarListItem' に存在しません。型で定義されているプロパティ名のみ使用してください。
例2:
パラメーター __metadata はメソッド GetById に存在しません。
例3:
要求 ETag 値 '' がオブジェクトの ETag 値 '"xxxx6a6d-b66c-4f9d-8435-c664bbdxxxx,2"' と一致しません。
例4:
無効な JSON です。JSON コンテンツのトークンが認識されませんでした。
Solution
以上は私が遭遇したバラエティに富んだエラーの数々ですが、総じてヘッダーやボディの入力値に半角空白文字やTAB文字なども含め制御文字が混入した結果でした。
こうした不可解なエラーに遭遇した場合は、エラーメッセージの意味解釈を始める前に、まずはヘッダーやボディのJSONをチェックし半角空白文字やTAB文字なども含め制御文字が混入していないか確認したほうがよいでしょう。
# | エラー | 原因 |
---|---|---|
1 | プロパティ '__metadata' は型 'SP.Data.FooBarListItem' に存在しません。型で定義されているプロパティ名のみ使用してください。 |
ヘッダーのContent-Type の前後に制御文字が混入している可能性があります。 |
2 | パラメーター __metadata はメソッド GetById に存在しません。 |
ヘッダーのX-HTTP-Method の前後に制御文字が混入している可能性があります。 |
3 | 要求 ETag 値 '' がオブジェクトの ETag 値 '"xxxx6a6d-b66c-4f9d-8435-c664bbdxxxx,2"' と一致しません。 |
ヘッダーのIf-Match の前後に制御文字が混入している可能性があります。 |
4 | 無効な JSON です。JSON コンテンツのトークンが認識されませんでした。 |
ボディのJSONに制御文字が混入している可能性があります。 |