Power Automateをつかって脱PPAP

今回は、「SharePoint Onlineの外部共有機能をつかって脱PPAP」で紹介した、SharePoint Online(以下SharePoint)を使った脱PPAPを、Power Automateで実装(自動化)する方法を紹介します。

PPAPとは

取引先などにファイルを共有する際、パスワード付きZIPファイルを送信し、別のメールでパスワードを送信するといった流れを一度は経験したことがあると思います。この一連の手順を「PPAP」と呼びます。

  • P:パスワード付きZIP暗号化ファイルを送ります
  • P:パスワードを送ります
  • A:暗号化
  • P:プロトコル

Power Automateで自動化

「SharePoint Onlineの外部共有機能をつかって脱PPAP」では、脱PPAPの手段として、SharePointを手動で操作し、ファイルを共有する方法を紹介しました。手動操作はどうしても手数が多くなります。そこで、今回はPower Automateで操作を自動化し、より少ない工数でファイル共有する方法を紹介します。

事前準備

Power AutomateはMicrosoft 365のライセンスを所持していれば利用できます。
他に準備する必要があるものについては、以下リンク先の「準備するもの」をご確認ください。

SharePoint Onlineの外部共有機能をつかって脱PPAP

Power Automateフローの全体像

今回作成するPower Automateフロー(以下フロー)の全体像です。

大まかな構成としては、下記の順でフローが進みます。

  1. 変数初期化
  2. ファイルのプロパティ取得
  3. ファイルのアクセス権付与


それではフローを作成していきましょう。

Power Automateフローの作成

  1. Power Automate (https://make.powerautomate.com/) を起動します。


  1. メニューの「作成」から「インスタント クラウド フロー」を選択します。

  1. フロー名を入力し、トリガーを選択後、[作成]ボタンをクリックします。

今回は手動で起動させるため「フローを手動でトリガーする」を選択します。

このようにフローが作成されました。

変数の初期化

  1. [新しいステップ]ボタンをクリックします。

  1. 「変数を初期化する」アクションを選択します。

※ 手順2を3回繰り返し、「変数を初期化する」アクションを3つ追加します。

  1. 「変数を初期化する」アクションの設定をします。

「名前」には、分かりやすい変数名を設定します。「種類」はすべて「文字列」です。アクションの名前も「…」アイコンの「名前の変更」から分かりやすいように変更します。

値は以下のとおり設定します(順不同)。

  1. サイトのアドレス
    SharePointサイトのアドレス、もしくはOneDriveのアドレスを設定します。
    (ドメイン名やサイト名は、自分の環境に合ったものを設定してください。)
  2. ライブラリ名
    共有したいファイルが配置されているライブラリ名を設定します。
    ※フォルダーの指定はできません
  3. ファイル名
    共有したいファイル名を拡張子付きで設定します。

ファイルのプロパティ取得

  1. SharePointのアクション「ファイルの取得(プロパティのみ)」を選択します。

  1. 「ファイルの取得(プロパティのみ)」アクションを設定します。 

 

設定値は以下のとおりです。

No. 設定項目名 設定値 備考
① サイトのアドレス variables(‘サイトのアドレス’) 動的なコンテンツから変数を選択
② ライブラリ名 variables(‘ライブラリ名’) 上記と同様
③ フィルタークエリ FileLeafRef eq ‘variables(‘ファイル名’)’ FileLeafRefで 指定したファイルのみ取得

 

※変数が表示されない場合は、「カスタム値の入力」を選択すると動的なコンテンツに表示されます。

ファイルのアクセス権付与

  1. SharePointのアクション「アイテムまたはフォルダーへのアクセス権の付与」を選択します。


  2. 「アイテムまたはフォルダーへのアクセス権の付与」アクションを設定します。


    設定値は以下のとおりです。
    No. 設定項目名 設定値 備考
    ① サイトのアドレス variables(‘サイトのアドレス’) 動的なコンテンツから変数を選択
    ② リストまたはライブラリ名 variables(‘ライブラリ名’) 上記と同様
    ③ ID outputs(‘ファイルの取得_(プロパティのみ)’)?[‘body/value’][0]?[‘ID’] 式に左記の設定値を入力し、[更新]ボタンをクリック
    ④ 受信者 受信者のメールアドレス 複数指定する場合、アドレス間に「;」を入れ込むことで、一括でロールを付与できる
    ⑤ ロール Can edit/Can viewから選択 編集可→「Can edit」 参照可→「Can view」
    ⑥ メッセージ (任意)
    ⑦ 受信者への通知 (任意) はい/いいえから選択

     以上でフローが完成しました。

    Power Automateフローの実行

    フローを実行して、ファイルを共有してみましょう。

    作成したフローを選択し、[実行]ボタンをクリックします。

    実行履歴の状況が「成功」であることを確認できたら、ファイルの共有は完了です。

    ファイルの受信

    ここからは、ファイルの受信者としての手順を確認していきます。

    1. フローの「受信者」に設定したメールアドレスにメールが届いていることを確認し、
       [開く]ボタンをクリックします。
    2. メールアドレスの入力を求められるので、入力し[次へ]ボタンをクリックします。
      (※必ず受信者に設定したアドレスと同一のアドレスを入力してください)
    3. メールが届くので、検証コードを入力し[確認]ボタンをクリックします。
      メールに記載のとおり有効時間は15分間です。
    4. 共有されたファイルを開くことができました。
      ロールを「Can View」に設定したので、閲覧権限であることが確認できます。

      Power Automateでファイルを共有する手順は以上です。

      これで一連の流れが確認できました。

      まとめ

      • ファイルとパスワードを送信せずに、Power Automateでファイル共有が自動化できる
      • SharePoint、OneDriveどちらにも対応可能
      • 組織外のメンバーにも送信できる
        少ないステップで簡単に共有ができるので、PPAPの利用を廃止する手段として、個人的にはとても良い方法だと思いました。

      次回の予告

      今回作成したフローは簡易なものなので、以下のような課題があります。

      • ファイル共有する際、毎回フローの変数を変更する必要がある
      • 詳細な共有履歴が確認できない
        これらの課題を解消するため、Power Appsを使った脱PPAPアプリ作成について紹介する予定です。ぜひご期待ください!

      関連サイト

      Office365 利活用|株式会社テンダ