PDFファイルをOneDriveで一括管理する
解決できる課題
PDFファイルの管理で、こんなお悩みを抱えていませんか? ・バラバラの命名規則で保存されたPDFが探しにくい ・請求書や契約書などの重要なPDFを手作業で一つひとつ整理している ・新しいPDFが追加されるたびに、手作業でフォルダを移動している このレシピを使えば、そんなPDFファイルの管理業務から解放されます。 このフローを設定することで、特定のフォルダに保存されたPDFファイルを自動で検知。 あらかじめ設定したルール(例:日付や送信者名)に基づいてファイル名を自動で変更し、整理します。 これにより、手作業でのファイル整理が不要になり、誰が見ても分かりやすい状態で、常に最新のファイルにアクセスできるようになります。
完成イメージ

必要なもの
OneDrive コネクタ
作り方
複数人からの提出を受け付けるOneDriveのフォルダある場合に有効です。
提出されたファイルは、提出者や提出日に合わせ、ファイル名を規則で統一します。
※ファイル名を統一できれば、その規則に従い、さらにフォルダ分けも可能です(条件を使う)
- 1. トリガー「ファイルが作成されたとき」を設定
[フォルダー]には、PDFファイルの提出先フォルダを指定します。
※OneDriveの場合、共有フォルダにすれば、複数人からのアップロードが受け付け可能です
※今回はOneDriveを想定していますが、SharePointでも同じことができます

- 2. アクション「ファイルのコピー」を設定
[ファイル]は、一意の識別子を設定するので「ファイル識別子」にします。
[対象ファイルのパス]は、フォルダーのパスとアップロードされた「ファイル名」を使用します。
なお、この段階でファイル名は変更可能ですが、アップロードしたユーザー名や日付は指定できません。
※例えば、ユーザー名は、triggerOutputs()?['body/CreatedBy/displayName']など
日付は、formatDateTime(triggerOutputs()?['body/Created'],'yyMMdd')など
理由は、triggerOutputs()にdisplayNameやCreatedの値が含まれないからです。
ですので、ステップ3でリネーム(名前の変更)を行います。
ちなみに、[上書きする]は「はい」にしておくと、アップロードが複数回にわたってもコピーが成功します。
※「いいえ」の場合、同じファイル名がすでにあるため、エラーとなります

- 3. アクション「ファイルの移動または名前変更」を設定
[ファイル]は、ステップ1のトリガーの方ではなく、ステップ2のコピーの方を指定します。
[対象ファイルのパス]は、フォルダーのパスとファイル名を指定します。
ここで、「最終更新者」や「最終変更時刻」の設定が可能です。
※「最終変更時刻」は、そのままにせず、下記の要領でフォーマットを指定します
formatDateTime(outputs('ファイルのコピー')?['body/LastModified'],'yyMMdd')
なお、yyMMddは、お好みの表記に変更可能です
ファイル名を作っているので、最後尾に拡張子を必ず付けてください。
[上書きする]は、ここでも「はい」にします。

アップロードされるファイルは、下図のようにファイル名に規則がなくても問題ありません。

ステップ3のアクションで、下図のようにリネームされます。
