くらっちのクラウド日記

仕事や勉強で得た Microsoft 365 関連の技術知識を投稿していくブログです。

【PowerAutomate】「型名のないエントリが見つかりましたが、必要な型が指定されませんでした。」を解決する。

はじめに

「型名のないエントリが見つかりましたが、必要な型が指定されませんでした。型情報を持たないエントリを受け入れるには、モデルを指定するときに、必要な型も指定する必要があります。」
PowerAutomate でこんなエラーが出たとき、解決に苦労しました。

今回は、このエラーを解決するための対処方法2点をご紹介します。

目次

筆者が直面した状況

SharePoint の「ドキュメント(Shared Documents)」ライブラリにファイルが作成された時にファイル名を変更する。
というフローを作成していた時に表題のエラーが発生しました。

エラーが発生したのは「SharePoint に HTTP 要求を送信します」アクションです。
気を付けなければいけないのは、下図赤枠内の2カ所です。

原因その1:type が間違っている

上図の「SharePoint に HTTP 要求を送信します(リネーム)」アクションでボディにPOSTする対象を type で指定しています。
指定する際は下記に従って記入してください。
指定するのが「表示名」ではなく「内部名」である点に注意してください。

構文
"type": "SP.Data.リスト内部名Item"

例1  ドキュメント(Shared Documents)の場合
”type”: "SP.Data.Shared_x0020_DocumentsItem"

原因その2:metadata の記述が間違っている

上図の「SharePoint に HTTP 要求を送信します(リネーム)」アクションでボディの type を囲む metadata ですが、よく見ると先頭に「__(アンダーバー)」が含まれています。

しかも、アンダーバーは半角1文字でも全角1文字でもなく、「半角2文字」ですのでご注意ください。
アンダーバー1文字の _metadata だと表題のエラーが発生します。

 "__metadata": 

結論

例のように、ファイル名のリネームを行いたい場合は下記コードを参考にして ボディを作成してください。

{
    "__metadata": {
        "type": "SP.Data.Shared_x0020_DocumentsItem"
    },
    "FileLeafRef": "新しいファイル名"
}