SharePoint のドキュメント ライブラリ 上にあるファイルに対して、ファイル名を変更する方法をお話したいと思います。
One Drive では、ファイル名を変更するためのアクションが用意されていますが、SharePoint 用としては用意されていないため、『SharePoint に HTTP 要求を送信します』というアクションを利用して、ファイル名の変更を実行します!
今回は、ドキュメント ライブラリ上に『ファイルが作成されたとき』をトリガーとして、フローを作成します。必要に応じて、トリガーを変更して作成してください。
フローの全体像
フローの作成手順
①.トリガーに「ファイルが作成されたとき(プロパティのみ)」を利用します。
項目 | 設定値 |
---|---|
サイトのアドレス | 任意のサイト |
ライブラリ名 | 任意のライブラリ |
フォルダー | 任意のフォルダー |
②.1つ目のアクションに、「パスによるファイル メタデータの取得」を利用します。
項目 | 設定値 |
---|---|
サイトのアドレス | 任意のサイト |
ファイル パス | /[ファイルが作成されたとき(プロパティ)- 完全パス] /@{triggerOutputs()?[‘body/{FullPath}’]} |
③.2つ目のアクションに、「SharePoint に HTTP 要求を送信します」を利用します。
項目 | 設定値 |
---|---|
サイトのアドレス | 任意のサイト |
方法 | 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’: ‘【拡張子付きの任意のファイル名】’ } |
項目 | 設定値 |
---|---|
Content-Type | application/json;odata=verbose |
If-Match | * |
X-HTTP-Method | MERGE |
以上、SharePoint 上のファイル名を変更する方法でした!
HTTP 要求 アクション、まだまだ理解が浅く苦手ですが、使いこなしたらできることがとっても広がりそう😊