今回はPowerAutomateのワークフローで発生したエラーのトラブルシューティングです。
Problem
PowerAutomateのワークフロー内にSharePointコネクターの「項目の取得」アクションが組み込まれている。
フローを実行したところ、次のようなエラーが発生した:
アクション '項目の取得' に失敗しました: The API 'sharepointonline' returned an invalid response for workflow operation '項目の取得' of type 'OpenApiConnection'. Error details: 'The API operation 'GetItem' is missing required property 'body/(propertyname)'.'
あるいは:
ResponseSwaggerSchemaValidationFailure
The API 'sharepointonline' returned an invalid response for workflow operation '項目の取得' of type 'OpenApiConnection'. Error details: 'The API operation 'GetItem' is missing required property 'body/(propertyname)'.'
エラー発生の前、「項目の取得」のターゲットになるSharePointリストには入力必須の列を新たに追加していた。
Solution
入力必須の列で未入力となっているものをすべて補完する。
今回の事象の原因はターゲットとなるSharePointリストのスキーマ(リストそのものや各列のメタデータ)の構造と実際にSharePointから返されるデータの構造の齟齬。スキーマでは必須項目となっているのに実データには当該の列が存在しないためエラーになってしまう。
SharePoint単体ではスキーマとデータのズレは問題にならない。スキーマで定められている必須項目を持っていないアイテムについては「注意が必要なアイテム」にリストアップされ、当該の列には「~が不足しています」と表示されるが、データの取得ができないわけではない:
PowerAutomateのアクションのうちでも「複数の項目を取得」アクションは問題なく動作する。しかし「項目の取得」アクションではエラーになってしまう。
対策として実データに当該の列の内容を補ってやることで解決する。