Power Appsの使い方

Power AppsとPower Automateの使い方やできることがわかるブログを目指しています。

Power Apps x No Code でなにができる?

当初はノーコードアプリ作成プラットフォームと謳われていた気がする Power Apps

Power Apps でノーコード縛りでなにができるか、あんまり意味はないですがちょっと考えてみました。

 

ノーコードの定義

ここでは関数を自分で書かないことと定義。コピペも不可。

UIポチポチで入力できるものは可。

 

ノーコードでできそうなこと

なんとなく、以下のようなことができそうです。

 

簡易なデータ操作アプリを作れる

Power Apps にはデータソースを指定すると自動でアプリを作成してくれる機能があります。

これを利用して、簡単なデータの一覧表示、登録、修正、削除機能を持ったアプリを作成できます。

 

f:id:botherntu:20201225003144p:plain

よく挙げられるSharePoint Excel、 Common Data Service( Microsoft Dataverse )だけでなく、他にも SQLServer や MySQL など、多くのデータソースに対応しています。

自社システムの簡易なデータ管理アプリなどは簡単に作れそうです。

 

モデル駆動型アプリを作れる

モデル駆動型アプリも関数を書くことなく構築することができます。

 

モデル駆動型アプリはアプリを作成するというよりは、アプリの設定をしていくようなイメージで作ることができます。

以前はライセンスが Plan1 Plan2 と別れており、利用のハードルになっていましたが今は有償ライセンスがあればプランによらず利用することができます。

 

キャンバスアプリのような自由度はありませんが、業務フローに則った定形業務に対しては非常に効果的なアプリを作成することができます。まだ触ったことがない方は是非モデル駆動型アプリも触ってみてください。

 

キャンバスアプリで、プレゼンアプリやモックなどが作れる。

キャンバスアプリで考えてみると、ひとまずUIコントロール類は配置できそうです。

 

また、キャンバスアプリは基本的に関数を駆使して構築していきますが、UI上のボタン操作でごく一部の機能を利用することができます。

 

アクションタブから、以下のようなことができそうです。

・画面遷移の実装

f:id:botherntu:20201225003300p:plain

 

・コレクションへのデータ追加(InputTextなどの入力テキストをコレクションに入れるなど)

・コレクションのデータ削除

・コレクションやデータソースのレコード一覧表示

 

Filter()関数を使用したフィルタリングはルール違反なので実装できませんが、Microsoft Dataverse でビューを設定しておけば、ビューのフィルタリング情報を利用してフィルタすることができます。

 

上記を整理してみると、こんな感じ。

 

キャンバスアプリでできそうなことの整理

UIの作成

・画面遷移

・コレクションへのデータ挿入と削除

・コレクションやデータソースのレコード一覧表示

・フィルタレコードの一覧表示(Microsoft Dataverse のみ)

 

上記を駆使してモックアプリなどは作成できそうです。

 

ノーコードにこだわる意味はあるのか・・・?

ここまで読まれた方、ノーコードにこだわる意味はなにかあるのか・・・?と思われたかもしれません。

私もそう思います。そういう事を伝えたくて、この無駄な記事を書きました。

 

ノーコード = 簡単 = 誰でもできる!

なんとなく、そんなイメージを持たれると思います。

 

なら、上記のことは皆さんできますよね?

モデル駆動型、使いこなせますよね?

かっこいいモックアプリも簡単につくれますよね?

 

実際はそんなことないと思います。関数を書かなくたって、他にも考えることはいろいろあります。かっこいいアプリなんてセンスも必要です。

 

要するに、"ノーコードだから"とか、そういうレッテル張りって意味がないと思うんです。レッテルを貼って諦めたり、挑戦したりするのをやめたりして欲しくないなと思います。

 

Power Apps はだれでもアプリを作れる!?

Power Apps はだれでも(非開発者、業務担当者)、自分が必要としているアプリを自分の手で作成することができるアプリ作成プラットフォームです。と、Microsoftの製品ページには書かれています。

 

実際、通常のプログラミングよりはるかに少ない手順でアプリを構築することができます。覚えることも少ないです。

 

この "だれでも" のところで、ユーザーと Microsoft のメッセージで相違が発生している気がします。

だれでも、なんの努力もなしに、作れる、というわけではないです。

もちろんアプリの作成方法について知る、ということもそうですが、ざっくりいうと"少しだけ開発者の領域を学ぶ必要がある"ということ。このメッセージが全く含まれていないんです。

 

だれでも = 開発者でなくても = 開発の事を1ミリも知らなくていい!

ということではないんです。ちょっとだけ、開発者の領域に踏み込む必要があります。

 

ただ、別に何も難しいことはありません。開発者、プログラマーの方々も元は文系卒だったり、専門学校卒だったりでも問題なくプロフェッショナルとして活躍されています。生まれたときから開発者の人間なんていないんですから、できないってことはないはずです。

 

それも、ほんの少しの領域だけでいいんです。

それだけで、自分が欲しいと思っている理想のアプリを作ることが出来るんです。

 

是非、挑戦してみてください。誰にでも、Power Apps は扱えると私は信じています。

私を信じて、Power Apps に挑戦してみてください。

 

最後に市民開発者の方へ

できることから、まずはやってみましょう。興味があれば、もっとできることを増やしていければいいと思います。開発者ではないからこれはできないとか、無理とか言うこともありません。開発者も生まれたときから開発者ではないんですから。

 

開発者のほうが Power Apps の習得は容易でしょうが、それは新しいことへの挑戦に慣れているから、というだけな気もします。Power Apps も癖が強いので、すんなり扱えるかというと開発者もそうではないはず。開発者もがんばっているんです。

 

自分が欲しい物を自分で作れたら最強です。是非最強を目指しましょう。

 

PR

毎週 Power Apps もくもく系イベントを開催しています!

一緒に Power Apps 勉強しましょう!どなたでもご参加いただけます。

途中参加、途中離脱もOKです。

ゆるくやってますので、ゆるーくご参加ください。

 

Power Apps もくもく系コミュニティ #おうじゃさんといっしょ

https://oujasan-to-issho.connpass.com/

Microsoft Dataverse の日時カラムにはミリ秒まで入るっけ?

作成順ソートについて考えていたときに、日時カラムにミリ秒まで入るっけ?というのがあやふやになってきたので試してみました。多分入らないと思うけど・・・

 

やったこと

Microsoft Dataverseテーブルに日時型のカラムを用意して、ミリ秒までのデータを入れられるか試してみた。

 

Patch()実装

Patch(TestSerialNumberTable,Defaults(TestSerialNumberTable),{CreatedOnMs:DateTimeValue("2020/12/16 01:01:01.123")});

 

結果

ミリ秒のデータを入れようとしても、秒までしか入りませんでした。

ミリ秒まで入ったとして、一意性が保証されるわけではないので確実な作成順ソートには使えないですけどね・・・。

 

PR

Power Apps Power Automate 関連で技術支援が必要な方は下記からお問い合わせください。

 

Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport

https://powerapps.zee-citizendevsupport.com/

 

Microsoft Dataverse オートナンバーは重複しないか?

作成日順ソートの選択肢として、オートナンバーが一番良さそうです。ただ、昔試したときにあまり連番生成の信頼性がなかった気がしたので、現状の動作を確認して見ようと思います。

 

検証項目

以下について、動作確認をしてみる。

 

・フォームで複数端末から同時に登録してみる。

Patch()で複数端末から同時に登録してみる。

 

検証環境

PC上からEdgeブラウザでアプリ再生モードで検証。

iPhoneXs Power Apps アプリから起動して検証。

・アプリは同一のタブレット形式のアプリを使用。

 

同時にFormSubmit してみる

2つの端末から、なるべく同時にフォームからデータ挿入をしてみた。

何度か連打してみたが、重複して登録されることはなかった。

 

同時にPatch()してみる

2つの端末から、なるべく同時にPatch()でデータ挿入をしてみた。

何度か連打してみたが、重複して登録されることはなかった。

 

結論

記憶違いかもしれないですが、昔のように容易に重複レコードが作成されることは無いみたいです。2端末での検証なので信頼性がどこまであるかはアレですが、重複しないものとして扱ってよさそうです。

Docsにも事前に番号が予約される的なことが書いてあるので、問題ないと思われます。

 

参考URL

自動付番フィールド

https://docs.microsoft.com/ja-jp/powerapps/maker/common-data-service/autonumber-fields

 

PR

Power Apps Power Automate 関連で技術支援が必要な方は下記からお問い合わせください。

 

Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport

https://powerapps.zee-citizendevsupport.com/

Microsoft Dataverse バージョン番号カラムはレコード作成順ソートに使えるか?

作成日(createdon)でレコード作成順ソートが思うようにできなかったので、バージョン番号は代わりに使えるのか?と思って少し確認してみました。

 

一見、使えそう?

ぱっとみ、バージョン番号は作成順に並んでいる。一見使えそうに見えた。

 

懸念として、データ更新時に更新されるかどうか気になる。確認してみた。

 

データ更新してみた。

残念ながら、更新時にもバージョン番号は更新された。

データ更新時にバージョン番号は新しい番号になってしまう。

 

まとめ

ということで、レコード作成順ソートの用途には使えなささそうです。

バージョン番号列についての仕様が書いてあるDocsページを知っている方がいたら教えて下さい!ぱっとみ見つからなかった。。。)

 

PR

Power Apps Power Automate 関連で技術支援が必要な方は下記からお問い合わせください。

 

Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport

https://powerapps.zee-citizendevsupport.com/

Microsoft Dataverse CreatedOnカラムではレコード作成順にソートできない?

Microsoft Dataverse で自動生成されるカラム createdon でソートしたところ、想定通りにソートされないことがあったので、どういう原因か確かめてみました。

 

実装に誤りがある?

まず最初は実装に誤りがあるところを疑うが、ひとまず誤りはなさそうだった。

 

データを確認してみる

レコードの値を確認したところ、作成日カラムには秒単位までしかデータが入っていない。

これだと容易に重複タイミングのレコードができそう。

 

結論

作成日カラムに秒単位までしか日時データが入っていないため、連続で作成したレコードはソート順が同位になってしまい思うようにソートされない現象が発生してしまったようです。

秒単位までならソートできますって感じですね。

 

正確な作成順ソートには、CreatedOn(作成日)カラムは使用できなさそうです。

別でオートナンバーなどを用意して、それでソートするのが良さそうですね。

 

PR

Power Apps Power Automate 関連で技術支援が必要な方は下記からお問い合わせください。

 

Power Apps / Power Automate 技術支援サービス | ZEE CitizenDevSupport

https://powerapps.zee-citizendevsupport.com/

Power Apps や Power Automate に関する仕事のご依頼は下記ページからお問い合わせください。
ZEE CitizenDevSupport