Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Power Apps を使った アプリの作り方

Ryota Nakamura
February 15, 2020

Power Apps を使った アプリの作り方

#GlobalPowerPlatformBootcamp 2020 in Sapporo
にてお話しした内容となります。

#PowerApps を使ってどのようにアプリを作るべきか
アプリ作成のアイデアの出し方から
データ構造をどう考えるかなどのTips
また、作成スキルが上達するにはどうすればよいか
など記載しています。

Ryota Nakamura

February 15, 2020
Tweet

More Decks by Ryota Nakamura

Other Decks in Technology

Transcript

  1. 自己紹介 りなたむ || 中村亮太(Ryota Nakamura) 株式会社ソントレーゾ 取締役 最高技術責任者(CTO / Co-Founder)

    DX推進事業部 (DX OverDrive Business Dept.) 事業部長 Microsoft MVP for Business Applications ( 2020.2 〜 ) Power Apps / Power Automate • もともとインフラ上がりのエンジニアです。 • Power Appsでゲーム作ったり、IoTと組み合わせたり してます。 • 会社では、Power Platform や Dynamics 365 Microsoft 365の導入提案や支援、教育などを 行っています。 • 自社事例を元にリターンシップを求める方に、 Power Platformを学んでもらい、キャリアアップ (市民開発者の創出)といったことを行っています。
  2. #GlobalPowerPlatformBootcamp #GPPB2020 #JPPUG Power Appsで使用できるデータ格納先 供給元 データソース種別 備考 Office365 Excel

    非推奨 SharePoint データ件数等に一部制限あり Power Platform Common Data Service ※ Dynamics 365 Common Data Service Dynamics365 の契約が別途必要 Azure SQL Server/Azure Data Lake ※ MySQL/PostgreSQL/Oracle ※ AWS/GCP SQL Server ※ MySQL/PostgreSQL/Oracle/RedShift ※ オンプレミス SQL Server/MySQL/PostgreSQL/Oracle/Teradata ※ ※アプリが使用するアカウントにPer Apps User 以上のライセンスが必要 Power Appsでは多種多様なデータ格納先を選択できます。クラウドサービスはもちろんのこと オンプレミスのデータベースサーバなどにも格納可能です。
  3. #GlobalPowerPlatformBootcamp #GPPB2020 #JPPUG 格納先の選択方法 しかし、SharePointのカスタムリストは、元々データベースのような使い方を考慮された設計ではないため 大量のデータ(2万件程度)が入ると急激に遅くなるほか、委任(検索処理を格納先に依頼する)が他の データソースに比べて貧弱といった問題があります。 Search Operation Data

    Format Number Text Boolean DateTime Guid SPS CDS SQL SPS CDS SQL SPS CDS SQL SPS CDS SQL CDS SQL Filter 〇 〇 〇 〇 〇 〇 〇 〇 〇 × 〇 × 〇 〇 Sort 〇 〇 〇 〇 〇 〇 〇 × 〇 〇 〇 〇 - - SortByColumns 〇 〇 〇 〇 〇 〇 〇 × 〇 〇 〇 〇 - - Lookup 〇 〇 〇 〇 〇 〇 〇 〇 〇 × 〇 〇 〇 〇 =,<> 〇 〇 〇 〇 〇 〇 〇 〇 〇 × 〇 × 〇 〇 <, <=, >, >= 〇 〇 〇 × 〇 × × × × × 〇 × - - And/Or/Not - 〇 - - 〇 - - 〇 - - 〇 - 〇 - StartsWith 〇 - - 〇 〇 〇 〇 - - - 〇 - - - IsBlank 〇 〇 × 〇 〇 × 〇 × × - 〇 × 〇 × Sum - 〇 〇 - - - - - - - × - - - Average - 〇 〇 - - - - - - - × - - - Min - 〇 〇 - - - - - - - × × - - Max - 〇 〇 - - - - - - - × × - - データソース別 委任可能操作
  4. #GlobalPowerPlatformBootcamp #GPPB2020 #JPPUG 紙の項目を元にデータの構造をまとめる 列名 データ型 必須項目 アプリ側での仕様 受付日時 日時型

    〇 登録時の日付を自動セッ ト 会社・団体名 テキスト型 〇 代表者氏名 テキスト型 〇 同伴者1氏名 テキスト型 同伴者2氏名 テキスト型 同伴者3氏名 テキスト型 来訪先担当部課 参照型 →部署TBL 〇 受付オフィスに存在する 部課のみに絞る 来訪先担当者 参照型 →担当者TBL 〇 選択された部課のメン バーのみ表示 要件 リスト型 〇 リスト形式 受付オフィス名 テキスト型 〇 設置している端末に登録 されている名称がそのま ま入る 紙の項目に合わせて、どういうデータが欲しいのかをこのようにまとめます。 また、その際にどういう風に入力してもらうかをアプリ側の仕様としてまとめておくとわかりやすいです。
  5. #GlobalPowerPlatformBootcamp #GPPB2020 #JPPUG 実際にデータソースを作成してみる データの構造ができたら、実際にデータソースを作成してみましょう。 列名 データ型 受付日時 日時型 会社・団体名

    テキスト型 代表者氏名 テキスト型 同伴者1氏名 テキスト型 同伴者2氏名 テキスト型 同伴者3氏名 テキスト型 来訪先担当部課 参照型 →部署TBL 来訪先担当者 参照型 →担当者TBL 要件 リスト型 受付オフィス名 テキスト型 来訪受付TBL 担当者TBL 部署TBL
  6. #GlobalPowerPlatformBootcamp #GPPB2020 #JPPUG イベントプロパティを使いこなそう! Power Appsでは数多くのオブジェクトが用意されており、その中に様々なプロパティ(設定項目)が存在しますが アプリを作る上で一番重要なのは、イベントプロパティ(操作や時間などによって実行されるプロパティ)を 正しく理解し、使いこなすことが重要となります。 プロパティ名 処理実行タイミング

    プロパティの場所 OnStart アプリが起動したとき、動画や音声が再生されたときに実行される App、Movie、Audio OnVisible 画面が表示されたときに実行される Screen OnHidden 画面が非表示になった(別の画面になった)ときに実行される Screen OnSelect 対象のオブジェクトをクリック(タップ)したときに実行される Image、Icon、ボタン、ラベル、テキスト入力など、 ほとんどのオブジェクト OnChange データが変わったときに実行される テキスト入力、スライダー、ドロップダウンなど、 値が任意に変更できるオブジェクト OnCheck チェックやスイッチが有効になった時に実行される チェック、切り替えオブジェクト OnUnCheck チェックやスイッチが無効になった時に実行される チェック、切り替えオブジェクト OnTimerStart タイマーが開始されたときに実行される タイマー OnTimerEnd タイマーが終了したときに実行される タイマー OnStream ストリームが更新されたときに実行される カメラ OnPause 動画や音声が一時中止となった時に実行される Movie、Audio OnEnd 動画や音声の再生が終了したときに実行される Movie、Audio OnScan バーコードスキャナーの読取が成功したときに実行される バーコードスキャナー
  7. #GlobalPowerPlatformBootcamp #GPPB2020 #JPPUG 関数を使いこなそう Power Appsでは数多くの関数も用意されており、関数を使いこなすことで、より高度なアプリケーションと なりえます。以下に個人的によく使う関数を列挙します 関数名 意味 If

    条件を指定し、条件に合致した場合は真の値を、一致しない場合は偽の値を返す Switch 条件の結果に応じた処理を実行する SubmitForm 指定されたフォームのデータを元に、データソースに対して登録・更新を行う Patch 指定されたデータソースの指定したレコードに対して指定されたデータを更新する。 Default関数と組み合わせることで新規登録を行うことも可能 ForAll 指定されたテーブルのレコード単位で評価を行い、指定された処理を実行する。 Back 移動前の画面に戻る Navigate 指定した画面に移動する JSON 指定されたテーブル型のデータをJSONフォーマットに変換する。 また、バイナリデータをBase64Stringに変換することもできる Text 数値型のデータを文字列型に変換する Value 文字列型の数字を数値型に変換する Concatenate 文字列を結合する Concurrent 指定した関数を同時実行する Collect メモリ空間上にデータソースを作成する(アプリ終了時に削除される) https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/formula-reference