【PowerAutomate】日付指定エラー?"OpenApiOperationParameterValidationFailed"
発生したエラー
エラーが発生したフローの詳細
今回は、以下のフローを作成していました。
- SharePointリストでアイテムが更新
- SharePointリストの情報を基に、Teams会議を作成
- Teams会議IDをSharePointリストに更新
- Outlookで会議情報をアップデート←エラー!!!
しかし、「4. Outlookで会議情報をアップデート」でエラーが発生。
エラーの詳細と原因
Flow save failed with code 'OpenApiOperationParameterValidationFailed' and message 'Input parameter 'item' validation failed in workflow operation 'Update_event_(V4)': The parameter with value '"@outputs('Update_item')?['body/StartTime']"' in path 'item/start' with type/format 'String/date-time' is not convertible to type/format 'String/date-no-tz'.'.
エラー情報には、会議の開始時刻のフォーマットをPowerAutomateが認識していない旨が書かれています。つまり、SharePointリストで入力した開始時刻は日本時間なので、PowerAutomateが認識できていません。
解決方法
手順
アクションの開始時刻を、協定世界時刻(UTC)に変更すれば解決できます。
以下のコードを開始時刻に入力してください。
※下線をひいた箇所は、Dynamic contentでSharePointリストの列項目名をクリックすると、自動で式として入力されます。
convertFromUtc(outputs('Update_item')?['body/StartTime'], 'GMT Standard Time')
これで、正常にフローが動くようになりました。
補足:convertFromUtc()とは?
今回使用した関数は、指定のタイムゾーンから協定世界時刻(UTC)に修正するための関数です。第1,2引数が必須項目で、第3引数は任意項目になっています。
convertToUtc('<timestamp>', '<sourceTimeZone>', '<format>'?)
(参照:Microsoft公式ドキュメント)
お疲れ様でした!