Power Apps塾14回目

Power Apps塾、今回はついに最終回です!前回はこちら。

前回は毎日夕方に日報のリマインドを送るフローを作成しました。でもこれだと、例えばその日半休をとって、午前中に日報を書き終わっている人にも夕方リマインドが送られてしまいます。
そこで、夕方時点で、その8時間前までに日報を書いている人には、リマインドを送らない、という処理を追加していきます。
(こういうきめ細かい作りがさすがアキラ先生だな、と思いました。自分で作ったら、もう提出している人はリマインドを無視してくれればいいし!と思ってしまいそう。ちゃんと仕組みで解決する方向で考える姿勢が勉強になります)

処理を追加していく前に、Power Automateの(残念な)仕様(現時点)として、BreakPointのように、フローの処理を途中で止めることができません。フローの前半部分をテストして、後半の通知を送る処理の前で止めておく、といったことができないのです。
テストするたびに通知が送られてしまうのは避けたいので、いったん前回作成した処理をコピーしてから消すことにします。以下のようにクリップボードにコピーすることができます。ただし、この機能はプレビューです!失敗することもあるようなので気をつけないと。

2つ目、3つ目の処理をクリップボードにコピーしたあと、新しいステップから次の処理を選ぶ際に、「自分のクリップボード」を選ぶと、先ほどの処理が選択できるようになります。

ちゃんとクリップボートに保存されているようなので、いったん削除してしまいます(後ほど復活させますが)。

この状態にしてから、今回追加したい処理を設定していきます。

SharePointの「複数の項目の取得」を選びます。

サイトのアドレス、リスト名を設定したあと、詳細オプションから、フィルタークエリというところを設定して、該当の項目だけを取得するようにしていきます。

フィルタークエリは、例えば「=」は「eq」と表記するなど、ぱっと見わかりにくいのですが、これは慣れていくしかなさそうです。(「=」と書いてOKにしてくれればいいのに・・と正直思いますが、なにか大人の事情があるのでしょうか)

今回は、「8 時間以内の作成⽇時」と「作成者が⾃分」であるデータを取得します。その前に、リストの列名には、内部名と表示名があり、フィルタークエリでは内部名を使用するので、内部名を確認します。(表示名は自由にあとから変更できますが、内部名は最初に列を作った時の名前から変更できません。)


SharePointのリストを開き、歯車マークの設定から「リストの設定」を選びます。


登録者をクリック

クリック後の画面で確認するのは、列名・・ではありません!URLです。URLの末尾は、「Field=Author」となっています。この「Author」が内部列名です。同様に「登録日時」の内部名を確認すると、「Created」となっています。この2つで条件設定していきます。

作成したい条件は、作成日時が今の時間より8時間以内、作成者のメールアドレスが自分のメールアドレス、の2つです。これを式で表現するために、Power Automateの関数を使います。今回使うのは、addHoursという関数です。設定したのはこちら。

addHours(utcNow(),-8,'yyyy-MM-ddTHH:mm:ssZ')

utcNow()は現在の日時、そこから-8を足した日時を、この表示形式で返してください、という関数になります。
これとフィルタークエリの式を組み合わせて、最終的にはこのような式をフィルタークエリにいれます。

Created ge 'addHours(utcNow(),-8,'yyyy-MM-ddTHH:mm:ssZ')' and Author/EMail eq '自分のメールアドレス'

ge は式の記号で表現すると「≧」になります。そして複数の条件は「and」でつなげることができます。

ここまでできたら、次に新しいステップとして「条件」を選択。

「はい」の場合のアクションに、クリップボードにコピーしておいた2つの処理を貼り付けます。

次に、条件を設定していきます。左側は動的なコンテンツの追加から、また式を選択して、「empty」という関数を設定します、これは、データが空かどうかを判断する関数です。

()の中に、動的なコンテンツからvalueを選択します。

右側には、「true」と直接入力。

これで、先ほどフィルタークエリで取得したデータが空っぽかどうか、の判定ができます。空っぽだった場合、つまり8時間以内に日報を書いていない場合は通知を送り、なにかデータがある場合は何も処理をしない、つまり通知を送らない、という処理ができました。

これで、一度テストするとTeamsにアダプティブカードが届くので、入力して送信します。その直後、もう一度テストすると、もうアダプティブカードは届きません。これでうまくいったようです!

今回、Power Appsだけでなく、Power Automateやアダプティブカードまで学べたのは大変うれしかったです。Power Appsは、今回の講習では特にカレンダーの作成が難易度が高かった。。すぐに自分でぱっと作れる気が全くしていませんが、作る際の考え方などは大変参考になりました。こんな風に考えられるようになりたいです。

最後にアキラ先生から、Power Appsのアドベントカレンダーに是非参加してください!とのこと。大人気で、1つ目のカレンダーはもう埋まっているのですが、2つ目のカレンダーには空きがあります。

Power Automateのカレンダーもありますね。

どちらにも、一緒に勉強させていただいたお二人のお名前が!さすがです!
と宣伝しているだけではなんですので、私も参加したいと思います・・!

改めて、4ヶ月に渡って丁寧にご指導いただいたアキラ先生、一緒に勉強できた皆さま、本当にありがとうございました!

この記事が気に入ったらサポートをしてみませんか?