見出し画像

Power Apps 教えてAkiraせんせー!⑭

@akira_365🐟さんの講習14回目が終了しました!最終回でした🎊
前回 Teamsにアダプティブカードが送信され、日報を記述、アプリに登録するところまで確認しました。
まだ気になることがありますよね~

13回目はこちら

Power Automate での条件分岐


「⽇報作成のリマインド」で困ること

平日の定時前に必ず アダプティブカード が届くということは、午後から休みを取ったとしても、早めに日報を記述していたとしも通知されるということです。

余計な通知がされないように、その日に⽇報を書いた時のであれば、16:45には⽇報リマインドを送らない、というのがベストです。
ユーザーや投稿日時を指定して、アダプティブカードの投稿を制限します。

クリップボード

前回作成した「アダプティブカードを投稿して応答を待機する」「項⽬の作成」フローの前にアクションを追加していくのですが、フローをテストするたびにアダプティブカードが送られてし まいます😧
チャット欄が大変なことになりそうです…いちいち止めるのもストレス…

🐟Power Automate の特徴として、現時点(2022/11)では BreakPointのように、フローの処理を途中で止める処理がありません

では、これまたプレビューなので稀に上手くいかないこともあるようですが、⼀度「どこかに保管しておく」という方法で進めます。
アダプティブカードを投稿して応答を待機する」「項⽬の作成」フローの三点リーダーの一番上にある クリップボードにコピー(プレビュー)をクリックします。

特に画面上で変化は無いが、2つのアクションがクリップボードに保存されました

2つのアクションをクリップボードにコピーしたら、それぞれのアクションを三点リーダーから 削除 コマンドで削除します。

一旦、Recurrence のみになるので、ここにクリップボードから追加をする方法も試してみます。
新しいステップ自分のクリップボード を選択していくと、先ほどコピーしたアクションが表示されます。
そこから戻したいアクションをクリックするとフローへ格納されます。

🙋‍♀️クリップボードの追加方法が確認できたので Recurrence のみにしておく

本日の日報を Filter して取得する

条件により、アダプティブカードを送るか送らないかという設定をします。休みだろうが、すでに日報を書いていようが、毎回16:45にカードが届くというのは、ユーザーからするとアナウンスにもリマインドにもならないです😨

ますは、SharePoint の TblReport を確認してみます。
リストの 登録者 が自分で、登録日時 が今日の日付であれば、アダプティブカードを送らないという条件にします。

当日担当者が書いた日報がなければ アダプティブカードを送ってほしい

🐟16:45 に SharePoint の TblReport 内にどのような情報があるのか

新しいステップSharePoint コネクタ→複数の項⽬の取得 を追加します。
サイトのアドレス(レポートがあるサイト)とリスト名(TblReport)を指定します。

複数の項⽬の取得 アクションは高頻度で使用されるものらしい👀


ここで保存をし、一度テストを行います。(エラーが出ますが続けます)
このアクションではどのようなことをしているのか確認します。
出力欄の中に「クリックしてダウンロードします」という項目があるので
クリックし中身を見てみます。
すると、すごいものが出てくる🙃・・・ので戸惑いますが、日報内容が複数書かれています。
Title で検索をしてみると、日報の Title を取ってくれているようです。

SharePoint のテーブルの内容を JSON形式 でとってくる

情報量が多すぎるので、作成者と作成⽇時で Filter したいと思います。
条件で検索するフィルタークエリーが可能ですので、先ほど作成した 複数の項⽬の取得詳細オプションを表⽰する をクリックします。
さらに項⽬が展開されますので、こちらで Filter をかけていきます。
フィルタークエリ という欄へ、ルールに沿って(クエリ形式)で設定を行います。

該当する列演算子で等しいという意味の eq 、検索文字列を指定して次のように入力してみます。
Title eq ‘GW での過ごし方’
※文字列はシングルクォーテーションで囲む

保存して今の状態をテストしてみます。(エラーはもう出ません)
出力欄の中の「クリックしてダウンロードします」という項目をクリックし中身を見てみます。
Title が『GW での過ごし⽅』という項⽬のみ抜き出すことができました。 このように項⽬と値を⽐べ Filter することが可能です。

Title が GWでの過ごし方 のみ抜き出してくれました

⽐較演算⼦

頭文字を取って使われる。

知っておかなくてはいけないことは次から次へとありますね😅

リストの列名を正確に取得する

Power Automate のフィルタークエリでは、「内部名」と呼ばれる名前が使⽤されます。
日報の元になっている列名を調べてみましょう。 TblReport のリストの右上の⻭⾞マークをクリックして、リストの設定 をクリックします。
今回、絞り込みたいのは「登録日時」と「登録者」です。
詳細画⾯で「登録日時」と「登録者」をクリックして、リンク先の URL バーの末尾のイコールの後が内部名となるので、それぞれ確認しておきます。

登録日時・・・ Created     登録者・・・Author
フィルタークエリで使⽤しますのでこちらを覚えておきます🪄

🐟日本語で作成したりExcelから取りこんだ列名はきちんと読み込まれない

addHours関数、utcNow関数

就業時間が8時間としたら、日報が自分の名前で今の時間より8時間前の間に書かれているものを取得したい。
「作成⽇時 ≧ 今の時間マイナス8時間」かつ
「作成者のメールアドレス = ⾃分のアドレス」

まずは、列名 Created を比べてみます。
Created のほうが大きいか等しい場合、比べるものは・・・関数を使います。
動的なコンテンツの追加 を選択します。

次のような式を作成し、OK をクリックします。

このような表示になるはずです。

式をシングルクォーテーションで囲むこと
比べるのが文字列、時間などもシングルクォーテーションが必要

使⽤している式の概要は addHours(「⽇時」,「⾜したい時間数」,「書式」) 「書式」の引数の部分に、設定した書式で返されます。
 utcNow() は、今の時間を取ってくる関数なので、マイナス8時間を足すということで、フローのアクションを実⾏した時間となります。

ここで保存とテストを行います。
出力欄の中の「クリックしてダウンロードします」という項目をクリックし中身を見てみます。

日報の内容が何もない!

8時間以内に日報を書いていないので、ここまでは成功です😚

あとは、複数人が日報を書いているという設定で、作成者のメールアドレスと自分のメールアドレスをイコールで結び、自分が作成したものを取得する条件も加えます。
Created ge 'addHours(utcNow(),-8,'yyyy-MM-ddTHH:mm:ssZ')' and Author/EMail eq '自分のメールアドレス'

ここでのテストも先ほどと同様の結果になります
シングルクォーテーションで囲むことを忘れずに~

条件分岐

8時間以内に自分が書いた日報を取得できた or 取得できなかったかという条件でフィルターをかけます。
フローの続きに、新しいステップコントロール条件 を選択します。

True であれば「はい」のアクション、Falese であれば「いいえ」のアクション

はいの場合」の アクションの追加 をクリックして、今回の内容の最初にクリップボード に格納した 2 種類のアクションを追加します。

続いて、条件内の 値の選択動的なコンテンツの追加 をクリックし、式を
入力します。
まず、Empty()と⼊⼒し()の中にカーソルを置き、動的なコンテンツ から value を選択します。

式の内容はこのようになります

empty 関数を使用しているのですが、配列に要素が1つ以上、存在するか調べる関数ですので、なければ True を返し、存在すれば False で返します。
8時間以内に自分が日報を書いている場合は、何も処理をしなくても良いため、空の場合が True という設定です。

複数の項目の取得で、テーブルが空なら trueということで「はいの場合」処理を行う


これで、8時間以内に自分が日報を書かれていない場合のみ、アダプティブカードが送られるというフローが出来上がりました🎉

試してみます!
日報を書いた後に、テストを行いましたが、結果で False が返されました!
すごいですね🤩ちゃんと自分が書いた日報の有無を確認してくれました!

以上で、講習はすべて終了しました😆

当初は、簡単なアプリをゆっくり作っていくのかなと思っていたのですが、難しくてまだ理解できていないところも多いですが、たくさんの知識が詰まった、素敵なアプリの作成方法を教えていただきました✨
Power Automateも講習に取り入れていただきありがとうございました!

最初はついていけるのか、どうなることかと不安になったりもしましたが、少しずつ慣れていき、だんだんと楽しめるようになっていきました。
本当に毎回、何度も中断させてしまい申し訳なかったのですが、ちゃんと「すいませーん」と聞けたことで、みなさんと一緒にゴールできたので良しとさせていただきたいです💦

講習が完結したことは寂しいですが、これからも相談し合える仲間ができたことはとても嬉しいです😊
Akira先生、皆様お疲れさまでした✨ありがとうございました🥰
そしてこれからもよろしくお願いしまーす!!


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