Power Apps 超入門(相変わらずクソ仕様)
会社ではMicrosoft社の方針に従わざるをえず、クソ仕様なPower Platformを使う羽目になっています。
しかし既存の業務をExcelとPower Automateで連携してみても、人間の操作が障害となってまともに動きません。そこでアプリを開発するためにPower Appsを使い始めました。
Power Appsの制約
しかしPower Appsでは、無償の範囲ではモデル駆動型アプリ(データを先に作成してから実装する)が使えません。これでは何のためのアプリか分からないと感じますが、仕方がないので無償の範囲でPower Appsの実装を始めました。
データベースに何を使うか
無償でDataverse for Teamsが使えるとか言われていますが、Power Appsの作成は既存のデータからしか始められず意味がわかりません。
かといってDataverseというアプリメニューがあるわけでなくDataverseのデータが作れるわけではないので、Share Point Listをつかってデータを作ってみました。Share Point ListとはListsで作ることができるデータのことです。
SharePointListでデータを作成する
しかしListsでは基本個人のOne Driveにしかデータを書き込むことができず、Teams内にデータを作ることができません(まさにクソ)。
任意のSharePointフォルダ(Teamsフォルダ)にSharePointリストを作るには、TeamsフォルダからSharePointListで開くを選択して、サイトコンテンツメニューを選択し、「+新規」でSharePointListを作ってあげる必要があります。
そこからCSVやExcelでデータを流し込むことになりますね。
アプリを作成する
アプリを作成するには、まずデータを接続し、ギャラリー(リスト選択画面)とフォーム(項目の表示・編集画面)を貼り付けながら作成していきます。
データを接続する
データができたら今度はPower Appsでアプリを作ってあげることになりますが、これがまたわけわからない。
まずは、データ(SharePointList)を繋いであげる必要があります。ドラムのアイコンからSharePointのコネクタを選んであげると、Teamsチームのリストがでてくるので該当するチームを選択すると、作成したSharePointListが表示されるので選択します。
データを表示させる
データを表示させるには、ギャラリーとフォームを接続して表示させることになります。ギャラリーはからならずしも必要ないかもしれませんが、その方が簡単ですね。
ギャラリーを追加する
つぎにスクリーンにギャラリーを追加します。ギャラリーとはデータベースの行を選択する画面です。挿入メニューからギャラリーを選択すると勝手にリストが表示されます。
フォームを追加する
次にギャラリーで選択した行の各項目を表示させるためのフォームを追加します。これも挿入メニューからフォームを選択するだけで、データベースの項目を追加してくれます。
ギャラリーとフォームを接続する
この方法がわからないんだわ。デフォルトで実装してもらいたいものですが、おまじないが必要です。Chat GPTに聞いてわかりました。Chat GPTがなかったらどうやって知るのでしょう。
まず、表示されているギャラリーを選択して、選択しているアイテムを変数に格納します。ギャラリーのOnSelectプロパティに
Set(selectedItem, ThisItem)
を入れます。これぞノーコードだわww
次にフォームを選択し、Itemプロパティに
selectedItem
を入れます。これでフォーム上の全ての項目にギャラリーで選択した行の項目が全て表示されまます。
データ(行)の削除
データ(行)を削除するには、ギャラリーで選択したアイテムを削除するボタンを追加します。ボタンを追加しGUIで名前を「削除」に変更後、ボタンのOnSelectプロパティに
Remove(SharePointList名, selectedtem)
を入れると出来上がります。まぁコードとしては簡単ですが、ノーコードではないですねぇ
データ(行)の追加
データ(行)を追加するには、表示とは別に新規入力のための別スクリーンを表示して項目のデータを入力させて追加する必要があります。
まずは、新規入力用のスクリーンを挿入し、その上にフォームを挿入します(SharePointListを指定)。
その後、表示用のスクリーンに戻り、追加ボタンを挿入します。ボタンを挿入して、ボタンのOnSelectプロパティに
Navigate(NewItemScreen, ScreenTransition.Fade);
を記入します。
その後、新規入力のためのスクリーンにOKボタンを挿入し、Onselectプロパティに次のコードを実装します。
SubmitForm(FormName);
If(FormName.Valid, Navigate(MainScreen, ScreenTransition.Fade));
あとはデータの変更も必要になりますが、上記のフォームでデータを入れて表示するという実装を必要とするかと思います
いかがでしたでしょうか。
Power Platformについては、どうやら魑魅魍魎(ちみもうりょう)の界隈では、自分でデータを追加したり削除したりできる、という妄想をもっているようですが、「あなたがたにはできませんから」といいたいですね。
これからさらに項目間の複雑なルールを実装しなくてはなりません。とりあえずプロトタイプで項目数やデータ数を減らして実装してみましたが、項目数が100近くあり画面設計や実装がが面倒ですねぇ。すでにExcelで作っているのだからそっちを使ってくれといたいですねぇ。
魑魅魍魎たちの妄想につきあうのは疲れますわ・・・
この記事が気に入ったらサポートをしてみませんか?