SharePoint のドキュメント ライブラリ 上にあるファイルに対して、ファイル名を変更する方法をお話したいと思います。

One Drive では、ファイル名を変更するためのアクションが用意されていますが、SharePoint 用としては用意されていないため、『SharePoint に HTTP 要求を送信します』というアクションを利用して、ファイル名の変更を実行します!

今回は、ドキュメント ライブラリ上に『ファイルが作成されたとき』をトリガーとして、フローを作成します。必要に応じて、トリガーを変更して作成してください。

フローの全体像

フローの作成手順

①.トリガーに「ファイルが作成されたとき(プロパティのみ)」を利用します。

項目設定値
サイトのアドレス任意のサイト
ライブラリ名任意のライブラリ
フォルダー任意のフォルダー

②.1つ目のアクションに、「パスによるファイル メタデータの取得」を利用します。

項目設定値
サイトのアドレス任意のサイト
ファイル パス/[ファイルが作成されたとき(プロパティ)- 完全パス]

/@{triggerOutputs()?[‘body/{FullPath}’]}
(₌・ω・₌).oO(ファイルパスの頭に『/(スラッシュ)』を忘れないように!)

③.2つ目のアクションに、「SharePoint に HTTP 要求を送信します」を利用します。

▲アクション名を『SharePoint に HTTP要求 を送信します – GetMetadataType』に変更しています
項目設定値
サイトのアドレス任意のサイト
方法Get
URI _api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items([パスによるファイルメタデータの取得 – Id])

_api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items(@{outputs(‘パスによるファイルメタデータの取得’)?[‘body/ItemId’]})

④.フローを一度保存して、一度フローを実行します。
※③のアクションの結果を取得して、次のアクションの設定に利用していきます。

⑤.フローの実行履歴を開き、『SharePoint にHTTP 要求を送信します – GetMetadataType』の出力の body をコピーします。

⑥.3つ目のアクションに、『JSON の解析』を利用します。

項目設定値
コンテンツ[ SharePoint にHTTP要求を送信します – GetMetadataType – body]

@{body(‘SharePoint_にHTTP要求を送信します_-_GetMetadataType’)}
スキーマ次の手順で、サンプルから生成します。

⑦.『JSON の解析』アクションの [サンプルから生成] をクリックして、手順⑥でコピーした出力結果を貼り付けて、[完了] をクリックします。

⑧.4つ目のアクションに、『SharePoint にHTTP 要求を送信します』を利用して、ファイルの名前変更を行います。

項目設定値
サイトのアドレス任意のサイト
方法POST
URI_api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items([ パスによるファイルメタデータの取得 – Id])

_api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items(@{outputs(‘パスによるファイルメタデータの取得’)?[‘body/ItemId’]})
ヘッダー下表を参照
ボディ{
‘__metadata’: {
‘type’: ‘[JSON の解析 – type]’
},
‘FileLeafRef’: ‘【拡張子付きの任意のファイル名】’
}

{
‘_metadata’: { ‘type’: ‘@{body(‘JSONの解析’)?[‘d’]?[‘__metadata’]?[‘type’]}’
},
‘FileLeafRef’: ‘【拡張子付きの任意のファイル名】’
}
(₌’・ω・)oO(ファイル名が重複するとエラーが発生するため、一意の名前になるようにしてください)
項目設定値
Content-Typeapplication/json;odata=verbose
If-Match*
X-HTTP-MethodMERGE
▲ヘッダーの内容

以上、SharePoint 上のファイル名を変更する方法でした!
HTTP 要求 アクション、まだまだ理解が浅く苦手ですが、使いこなしたらできることがとっても広がりそう😊