はじめに
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```と入力する。
## これから試す予定
- 例外処理系
- バリデーションチェック系
- 集計
- コンポーネント
- 承認ワークフロー系