はじめに
PowerAppsを計30時間程触ってみたので、自分用の備忘録書きます。
30時間の中では、以下のようなサンプルも作成しました。
#PowerApps で日報サンプルアプリ作成できた!
— go-kawano (@go_kawano) 2019年2月12日
一つの日報に複数の訪問先を登録する方法について悩んでたけど、下記のサイトに救われました。https://t.co/U8sp7XJ8RE pic.twitter.com/FKRAODrNGy
#PowerApps 試したかったことできた!リストの項目をモーダル表示して編集する。 pic.twitter.com/JX0vC8KKIz
— go-kawano (@go_kawano) 2019年2月22日
アプリ作成でやること(キャンバスアプリ)
- データの箱を決める(sharepoint,excel,database,etc..)
- データ項目を決める
- レイアウトを大体決める
- データソースと接続する
- 処理、プロパティを書く
- 実行して動作テスト
用語
-
コントロール
:リボンから挿入できるパーツ(テキストフォーム、ラジオボタン、ギャラリー等) -
スクリーン
:画面 -
プロパティ
:各画面、コントロールの設定値 -
関数
: f(x)で書く処理 -
コレクション
:PowerAppsのローカル上で保持できるテーブルみたいなもの
よく使うコントロール
-
テキスト入力
:テキストの入力フォーム。単一行か複数行かは設定してた方が良い。 -
コンボボックス
:選択肢はitems
プロパティで設定。Choise
でデータソースから参照するか["選択肢1","選択肢2"]
のように記述する -
ギャラリー
:接続したデータソースを一覧で表示する。コレクションも可。どの項目を表示させるかはプロパティのフィールド⇒編集から設定できる。 -
フォーム
:接続したデータソースの入力フォームを自動で作成してくれる。新規モードと編集モードがある。デフォルトが編集モードになっているので注意。 -
アイコン
:下の方にある図形はよく使う
よく使うプロパティ項目(自分で手を入れる部分)
-
default
: デフォルト値 -
OnVisible
:画面が表示された時の処理 初期化、変数定義に使うことが多い -
OnSelect
:ボタンが押された時の処理 -
item
:コントロールが参照するデータソース、コレクションを設定できる。設定し忘れること結構ある -
Visible
:表示、非表示
よく使う関数
-
Navigate("スクリーン名","画面遷移のエフェクト")
:画面遷移処理 -
Submit("フォーム名")
:フォームで入力されたデータを入力フォームが接続しているデータソースにINSETする -
Patch("データソース名","データソースの列名と入れる値")
:データソースにデータをインサートする。コレクションでも可 -
Clear(コレクション名)
:コレクションを初期化する。 -
Reset("入力フォーム名")
:入力フォームをクリアする -
User()
:サインインしているユーザーの情報を取得できる -
Now()
:現在日時取得。実際はText( Now(), "[$-ja-JP]yyyy/mm/dd" )
みたいにフォーマットして使う -
Filter("テーブル名","条件")
:条件にマッチしたレコードを複数返す -
LookUp("テーブル名","条件")
:条件にマッチした最初のレコードを返す -
Collect("コレクション名",{"列名:値"},{...})
:コレクションを作成する -
Set("変数名","値")
:グローバル変数を決める -
Select("コントローラー名")
:指定したコントローラー名と同じ処理をさせる
⇒ギャラリーの各カードの中のボタンにSelect(Parent)
とすると選択された項目の値がとれるようになる("ギャラリー名.Selcted"が使える)
詰まったポイント
- フォームのレイアウトはプロパティで列数を決定する
- NewForm(新規モード)はSubmitすると表示が消えるので、itemにdefault(テーブル名)をしておく。
- コンボボックスの初期値は
DefaultSelectedItems
に以下のJSONで指定する
'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"
,Value: "初期値を入れる"
}```
- ```"入力フォーム名".LastSubmit.ID```:入力フォームで最後にINSERTされたリストの項目のIDを取得する
⇒複数のリストで1:Nのデータが登録できる。詳しくは[こちら](https://qiita.com/h-nagao/items/7a57d78394bec6e6c4ed)
- ```User().FullName```でとってきた姓名を入れ替える処理<br>```Concatenate(Last(Split(User().FullName," ").Result).Result," ",First(Split(User().FullName," ").Result).Result)```
## 便利
- 右上のアプリチェッカーを押すとエラー一覧が見れる
- 関数には```//```でコメントをつけれる
- 組織全体にアプリを共有するには、配布の検索ボックスに```すべて```もしくは```everyone```と入力する。
## これから試す予定
- 例外処理系
- バリデーションチェック系
- 集計
- コンポーネント
- 承認ワークフロー系