調子に乗ってブログ書いてきますあきらです。
これからきちんとアウトプットしていこうと思います。
吉田さんのこの記事↓がキッカケでもありますし、
お友達のおばちゃんの影響でもあります。(下記リンクの塾のおばちゃん)
何と言っても色んなコミュニティで活動してる中で
「恩送り」
というのはとても大事だな、と考えその一助になろうと思った次第です。
色んな方に送り、またその恩を送ってもらおうと考えて書くことにします。
※本ブログ内容は試験的機能が含まれていますので実用の際は承知願います。
試験的機能をPower Automateで使用する方法はMVPのHiroさんのブログを参照ください。
- 全体構造
- とりあえず何も考えないで任意のTeamにPower Apps環境を作成する
- DBの作成(Teams for Dataverse)
- ここまで作ったときのユーザーの声
- Power AutomateでTeamsに日次配信する仕組みをつくる
- 実働チェック
- おわりに
全体構造
本日subjectはAdaptive Cardsってやつですね。
全体像は以下の図になります。
-全体像-
①Teamsで定時にfoamが流れてきて、それに対し日付と日報内容を記入する
②日報内容がSPOやdatavereseに登録される
③Power AppsやPower BIに反映されて、それが閲覧、編集される
このような仕組みを作っていきます。
とりあえず何も考えないで任意のTeamにPower Apps環境を作成する
普通は
DB作成→Power AppsでUI作成&Power Automateで動的処理作成
みたいな順序になると思いますが、今回はDataverseをDBにするため、任意のTeamsにPower Apps環境を作ります。
別にSPO環境でもいいですが、日報という色んな人間が一斉に書く恐れのあるものならば、旧CDSであるTeams for Datevereseのほうが適しているように考えます。
SPOでは大量データの管理や大多数の同時アクセスに耐えられるデータベースとは言えない(ってかそもそもDBじゃない)ので実運用で、「ほぼ同時に日報書いたら登録されなかった!」みたいな事態が某弊社でもちょこちょこ起こっています。(放置してるけど)
とりあえずPower Apps環境を作成します。
まずTeamsを開き、Power Appsのボタンを押すと下の画面になります。
[アプリの作成]ボタンをクリックすると以下画面になるので
作りたいTeam選んで作成、しばらく待ちます。
アプリ名を指定して「作成」ボタンを押します。
たったこれだけでアプリができました!すごい!
ここが結構大事なんですが、
必ず「保存」してください。
Teamsアプリのほうでは基本的にビルドが先に行われるようですが、ブラウザ版のPower Apps builder(だったかな?)では保存して初めて「作成」とみなされるため、今後Power Appsでアプリケーションを作成する場合も癖付けのために保存はしといたほうがいいです。
↓保存のやりかた
「保存」クリックするだけです。
DBの作成(Teams for Dataverse)
ここからDBを作成していきます。
アプリケーション作成画面からDBが作成/編集できるなんてすばらしい!!!(他媒体で作ったことないから知らんけど)
サイドバーから「データベース」タブをクリックして、出てきた画面から「データの追加」をクリック、出てきた画面で「新しいテーブルの作成」をクリックします。
こちらが日報を収集するDBになります。
下の画面になりますので名前は任意で付けてください。
「dailyreport」としておきます。
「+」ボタンをクリックして、「件名」と「種類」を記述/選択します。
以下のように3つ列を作成します。
列名 | 件名 | report | day | username |
詳細 | 日報のタイトル | 日報内容 | 日付 | ユーザーのdisplayname |
形式 | 一行テキスト | 一行テキスト | 日 | 一行テキスト |
「閉じる」ボタンを押して登録完了(簡単!)
Power Appsを開いた状態で「新しいテーブルの作成」を選択して作成すると、デフォルトで指定されているデータソースが自動的に現在作成したDBに置き換わります。
右上の「▷」ボタンを押すとプレビューできますので、何でもいいので以下のように日報みたいなものを作成してみましょう。
まぁアプリとしてはこれで完了にしておきます。
作りこみたい場合は別記事で書いていきたいと思います。
今回はメインはPower Platformなのでねw(めんどうだからってのもあるw)
右上の「Teamsに公開」というボタンを押し、「次へ」
その後、どのTeamに反映するか聞かれるので、反映するTeamの横の+ボタンを押して「保存」ボタンを押してあげましょう。
これでアプリがTeamsで起動できるようになりました。
該当Teamのタブに生成されてると思いますので確認してみてください。
ここまで作ったときのユーザーの声
これで日報データの登録と編集/削除のアプリができました。
実際これだけでTeams登録してしまえば、アプリは動きますが、
「日報書くのにいちいちアプリ開かなきゃいけない!忘れる!面倒くさい!」
なんて素敵なコメントを周りに言いふらすユーザーがいらっしゃるかもしれません。
実際今回この記事を書くきっかけになったのは、そういう声が多かったからでもありますw
コンセプトとしてはタイトル通り『書かせる』仕組みなので、
「問答無用でいつも使ってるツールに配信されれば忘れようがないよね!?(威圧)」
って回答を用意した、ということですねwww
常々言ってますが、業務改善に必要なのは「ユーザー目線」なので、ユーザーが使い難ければどんな素晴らしいシステムもゴミですわ。
というわけでゴミをシステムにしちゃおう!
Power Automateの登場です。
Power AutomateでTeamsに日次配信する仕組みをつくる
先ほど作ったアプリの編集画面に戻ります。
方法は
Teamsサイドバーの「Power Apps」をクリック
→最近使用したアプリ 若しくは 「ビルド」タブからTeam名選択するとアプリ一覧が出てくるのでそちらクリック
(ブラウザでさわりたいよーって方は非推奨ですがMVPのHiroさんの記事を参考にどうぞ)
さてそれではPower Automateを作成していきます。
ツールタブの「・・・」をクリックして「Power Automate」を選択
→「フローの作成」
そうするとブラウザからPower Automateが開かれます。
(いつもと違う「Team名」での開発環境となっているので注意!作ったものを編集するときは環境を選択してTeam名を選択すれば編集できます)
タイトルを「makereport」(任意でOK)にしましょう。
トリガーを選択します
定期配信したいので「schedule」トリガーを選択します。
「間隔」と「頻度」などを選択できる画面になるので、
間隔:1
頻度:週
タイムゾーン:大阪、札幌、東京
設定曜日:(任意選択)
設定時間(時間):17
設定時間(分):00
(タイムゾーンと設定曜日、設定時間はご自身の環境で合わせてください)
アクションを追加します。
「+新しいステップ」ボタンから「Teams」コネクタを選択
アクション名:「アダプティブ カードを Teams ユーザーに投稿して応答を待機」
※preview機能なのでご利用は計画的に!
受信者:(受け取る任意のメールアドレス)
更新メッセージ:(送信ボタンを押したあとに表示するメッセージ、例:登録されました等)
カードの更新が必要:はい(送信ボタンを押した後にカードの表示を上の更新メッセージにするか否か)
ここで「アダプティブカードの作成」ボタンをクリックすると
以下のようなadaptive cards designerが開きます。
textblockやInput.Text、Input.Date、ActionSetをドラックアンドドロップして作成します。
デザイナーの使い方はまたまたまたMVPのHiroさんがまとめてらっしゃるので以下から参照してください(他力本願)
以下のようなカードを作ります。
詳細は省きますが、「id」をきちんと定義しないとDesignerに怒られますので注意してください。
あとでその「id」をPower Platformで取得します。
以下サンプルです。こんな内容で登録したら、「カードの保存」をクリック
これで配信する内容が作れました。
では登録した内容を先ほど作成したDBに登録します。
※社員全員に配信したい場合はループ処理が必要になるので別記事で書きます(たぶん)
「+」ボタンから「common Data service」を選択
アクション内容:「新しい行を追加する」
テーブル名:(先ほど作ったDateverseの名前)
で指定します。
少し待つと、列名を指定できるようなboxが生成されるため、これに対し先ほどの「id」を「DBの列名」に当てはめていきます。
雷のようなマークを押すと前のアクションやトリガーの内容が取得できますので、先ほど指定した「id」を各列名に合わせて選択します。
これでおそらく該当TeamにAdaptive Cardsが配信されました。
こちらにそれぞれ記入し「送信」ボタンを押すと先ほどのPower Appsに反映されます。
これで仕組みが出来上がりました。
右上の「保存」ボタンから保存をしてください。
実働チェック
最後に指定した時間にPower Automateが発動すれば完成です。
今回Adaptive Cardsで配信したことにより
- ユーザーの記入忘れを防ぐ
- 忘れてることに気付ける
という二点を満たすことができます。
休日に配信したくない、などの内容がありましたらこれまた別記事で方法を配信したいと思います(意外とめんどくさいので…)
ご自身で工夫ができる方はおそらく「休日テーブル」を別で作成する方法を考えれば構築可能かと思います。
おわりに
今回はAdaptive CardsとDataverse for Teamsで作成しましたが、SPO+Outlookやそれぞれ相関交換しても可能です。
Adaptivecardの利点は「ユーザーの導線をTeamsやメールに統一できる」ことかと思います。これによりよくある問い合わせの「いろんなアプリがあってよくわからない!」とプンプンしてる方々に対してもアプローチできると思います。
SQLなど連携すれば、社内レガシーシステムに直接connectできるかもしれません。
こちらで初めてAdaptive Cardsを知った!という方は、また違う形で工夫やアイディアを、
- 「次のユーザーのため」
- 「自分の手記のため」
- 「ボランティア精神がなせる」
何でも結構ですので、
「恩」を周りにいる初学者ユーザーに送ってください。
私はそれを望みます。
街中でmicrosoft365やPower Platformがあふれることを願っています。
Please send "gratitude" to the beginner users around you.
I hope that microsoft 365 and Power Platform will spread.