2022年10月10日月曜日

Sharepointのファイル名を変更する【PowerAutomate】

event_note10月 10, 2022

PowerAutomateでSharepointのファイル名を変更したいということは結構あるのではないかと思います。

しかし、ファイル名変更専用のアクションは用意されていません。
少しとっつきにくいですが、「SharePointにHTTP要求を送信」のアクションを使用してファイル名を変更をしていきます。

フロー概要

ファイル名変更に必要な、ItemId、フォルダーのODataの種類を取得してから、
ファイル名変更を実行します。 

JSONの解析は必ず必要なものではありませんが、このプロセスを入れておいた方が、前のプロセスの出力結果を設定しやすくなります。



フロー詳細

今回の例では、ドキュメントライブラリ「DocLIb_test」のサブフォルダ内にある、「Book.xlsx」を「aaabbbdde1.xlsx」に変更します。

パスによるファイルメタデータの取得




パラメータ設定値​
​サイトのアドレス​プルダウンから選択するか
ドキュメントライブラリのURLを入力
ファイル パス​/<ドキュメントライブラリ名から始まるファイルパス>
例)/DocLIb_test/General/test/Book.xlsx


SharePointにHTTP要求を送信(ODataの種類取得用)

フォルダーのODataの種類を取得します。
URI欄の<Itemid>はひとつ前の「パスによるファイルメタデータの取得」の出力結果のItemidを設定します。

パラメータ​設定値​
​サイトのアドレス​プルダウンから選択するか
ドキュメントライブラリのURLを入力
方法GET
URI_api/web/lists/GetByTitle('<ドキュメントライブラリ名>')/items(<パスによるファイルメタデータの取得ItmeId>)

JSONの解析

このアクションの設定をするためには、「SharePointにHTTP要求を送信します」の出力結果が必要です。いったん、ここまで作成したフローを一度テスト実行してみます。

実行が終わったら、「SharepointにHTTP要求を送信します」をクリックして結果を確認します。


出力結果をコピーします
 

ここまで終わったら、フローの編集画面に移ります。
JSONの解析のアクションを追加して、


パラメータ​ 設定値​
​コンテンツ<SharepointにHTTP要求を送信します の 本文(body)>
スキーマ(​※サンプルから生成ボタンを押して設定。下記スキーマの設定を参照)

スキーマの設定

サンプルから生成ボタンを押して、「SharepointにHTTP要求を送信します」の出力結果でコピーした内容を貼り付けます。


貼りつけるとこのようになるので、完了ボタンを押してください。

スキーマ欄に値が入っていればOKです。

次に進みましょう。

SharePokintにHTTP要求を送信(ファイル名変更用)

いよいよファイル名変更のプロセスです。

以下の設定画面では、URIで指定したファイルの名前を「aaabbbdde1.xlsx」という名前に変更しています。

ボディの設定欄に変更後のファイル名が記載してあります。


各欄の設定値は以下の通りです。

パラメータ​設定値​
​サイトのアドレス​プルダウンから選択するか
ドキュメントライブラリのURLを入力
方法GET
URI_api/web/lists/GetByTitle('<ドキュメントライブラリ名>')/items(<パスによるファイル メタデータの取得ItmeId>)

ヘッダー
パラメータ設定値​
Content-Typeapplication/json;odata=verbose
If-Match*
X-HTTP-MethodMERGE

ボディ
パラメータ設定値
ボディ{
'__metadata':{
'type': '<
JSON の解析Type>'
},
'FileLeafRef':'<変更後のファイル名>'
}

以上で、フローとその設定は完了です。
後は、フローを実行してみてください。

ファイル名が変更されます。

補足

このフローでは、変更後名前のファイルが既に存在する場合は、処理が失敗してしまいます。
必要に応じて、変更後の名前のファイルが既にないか事前にチェックする等してファイル名が一意になるようにしてください。

終わりに

ファイル名変更の自動化は結構必要となることが多いのではないでしょうか?

例えば、任意のファイル名で提出されたエクセルファイルを受理した日付、種類などを付けた定型のファイル名に変更するな、使える技なので、是非お試しください。