答案返却が楽になるフローの作成方法についてまとめました。
データで返却することでペーパーレス化にもなります。
答案返却フローの動作
- 全生徒分の採点済み答案PDFから共有リンクを生成。
- 生徒個人のTeamsチャットに採点した答案と、全員共通の模範解答の共有リンクを送信。
- 生徒へ送信した分の答案は保存用のフォルダに移動してフロー停止。
初期設定
①:答案返却フローセットの準備
OneDrive内に「保管用フォルダ」、「送信用フォルダ」、「その他添付データフォルダ」の3つのフォルダと、「参照用シート」を入れた「答案返却フローセットフォルダ」を作成します。
参照用シートはこちらからダウンロードしてください。
※氏名は疑似データを使用しています。
セットの内容
・参照用シート
※氏名は疑似データを使用しています。
・A,B,Cの3列からなる「テーブル1」
テーブル1はOneDrive内に保存した答案PDFからPowerAutomateでファイルパス(ファイルの置き場所)、ファイルID、ファイル名を取り出して転記するためのテーブルです。
・E~Iの5列からなる「テーブル2」
テーブル2はテーブル1のファイル名からファイルIDを検索し、生徒のメールアドレスとファイルIDを紐づけるためのテーブルです。このIDがPowerAutomateでPDFデータの共有リンクに変換されます。
※テーブル1は編集の必要がありません。
※テーブル2は次のように編集をしてください。
氏名:採点ソフトで出力される生徒氏名を含んだデータ名「〇年〇組_生徒氏名.pdf」等。テーブル1のファイル名(氏名)と一致するように編集しておきます。
アドレス:生徒のTeams個人チャットに登録されているメールアドレス。
ID:G2セルには「氏名」からテーブル1のIDを検索する関数(XLOOKUP関数)あり。編集の必要なし。
模範解答:チャットに添付する模範解答のリンク。OneDriveに保存して模範解答のデータの共有リンクを取得し、貼り付け。
教科:返却したい答案の科目をI列に入力。I3以降はI2と同じテキストが入る。
・保管用フォルダ
生徒に答案を送信し終わったデータの保管場所。送信用フォルダに保存した答案データはPowerAutomateによって答案返却後こちらのフォルダへ自動的に移動されます。
・送信用フォルダ
採点した生徒の答案を保存するフォルダ。このフォルダに入れたものが、PowerAutomateによって共有リンクが生成され、その共有リンクが生徒の個人チャットに送られます。
・その他添付データ
模範解答など、生徒全員に共通して配信したいデータを保存するためのフォルダです。こちらに保存したデータの共有リンクを取得し、「参照用シート」の「テーブル2」の「模範解答」に貼り付けます。
②:フローの作成
Manually trigger a flow
今回は「手動」をトリガーとします。
特に編集の必要はありません。
List files in folder
生徒の答案PDFから「ファイルパス」「ファイルID」「ファイル名」を抽出するアクションです。
画像のように設定します。
Add a row into a table(For each)
アクションList files in folderで取得した「Path」「ID」「Name」をエクセルに転記するアクションです。
画像のように設定します。
Advanced parametersはパス、ID、ファイル名にチェックを入れて画像のように参照します。
List rows present in a table
テーブル2のデータを取得するアクションです。
※テーブル1はPDFデータから「ファイルパス」「ファイルID」「ファイル名」を抽出しただけなので、Excel内でメールアドレスとファイルIDを結び付けているテーブル2を参照します。
画像のように設定します。
Create share link(For each)
テーブル2のファイルIDから共有リンクを生成するアクションです。
画像のように設定します。
Post card in a chat or channel
生徒へチャットを送るアクションです。
Adaptive Cardの部分は以下のコードを貼り付けて、動的コンテンツ(【 】の部分)は画像のように設定します。
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.2",
"body": [
{
"type": "TextBlock",
"text": "【@{items('For_each')?['科目']}】答案返却",
"wrap": true,
"size": "ExtraLarge",
"color": "Attention",
"isSubtle": true
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.OpenUrl",
"title": "@{items('For_each')?['氏名']}",
"url": "@{outputs('Create_share_link')?['body/WebUrl']}"
}
]
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.OpenUrl",
"title": "模範解答",
"url": "@{items('For_each')?['模範解答']}"
}
]
}
]
}
Delete a row(For each)
テーブル1の情報を削除するアクションです。
For each のSettingsのRunafterの部分はすべてチェックを入れる必要があります。
※欠席などで全生徒の答案がそろわなかった場合、IDが取得されないためエラーが起こり、フローが途中で止まってしまいます。エラーの生徒がいても処理が進むようにチェックを入れましょう。
Move or rename a file using path(For each)
「送信用」のフォルダに入れた答案PDFを名前を付けて「保存用」フォルダに移動するアクションです。
フローが止まらないように、こちらもすべてチェックを入れます。
関数の部分は「addHours(timestamp,hours,format?)」は下記のテキストをコピーして画像のように設定してください。
formatDateTime(addhours(utcnow(),9),'yyyy-MM-dd')
初期設定後
①:採点済み答案と模範解答のPDFデータをOneDriveに保存
生徒一人ひとり、名前が付いた採点済み答案は「送信用」フォルダに
模範解答は「その他添付データ」フォルダに保存しましょう。
②:模範解答の共有リンクを「参照用シート」のH2セルに貼り付け
共有リンクはリンクを知っている人すべてが見られるようにしておきましょう。
③:返却する科目名をExcelに入力
答案返却後、PDFを保管するときに必要です。
④:フローを起動
PowerAutomate の画面からフローを起動しましょう。
生徒一人ひとりにこのようなチャットがフローボットから届けば成功です。
※氏名は疑似データを使用しています。
コメント