技術情報ブログ
Power Platform
2022.12.21

Power Apps 市民開発者がアプリを構築するための知識とは?

Power Apps 市民開発者がアプリを構築するための知識とは?
小刀稱知哉

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

昨今、プログラムを極力書かずとも、自分がほしいアプリを作成することができるという理由で「ローコード」の需要が非常に高まっていると感じます。

弊社でもMicrosoftのローコードツールである「Power Automate/Power Apps」のコンサルティングやアプリ開発を通じて、 多くの企業様の支援をさせていただいております。

また、少し前に市民開発者の方を支援する「DX教育プログラム」というサービスも立ち上げました。

前回のブログでは、「Power Appsって本当に誰でも作れるの?」という内容で、 Power Appsでアプリを構築するためには、その前段階として、データベース(以下、DBと呼びます)やシステム設計の知識が必要であるという話をしました。

今回は「Power Appsでアプリを構築する最低限の知識(DB・システム設計について)とはなにか」について私なりの意見を紹介させていただきます。

(あくまで私なりの意見ですので、正確な内容ではないと思いますが、そこはご愛嬌でお願いします(笑))

市民開発者の方や、Power Apps初心者の方に向けた内容です。

 

前回のおさらい:自分がほしいアプリを構築するまでの知識レベル

前回のブログでは、
DBやシステム設計の知識を持っていない人にとっては、いくらPower Appsを勉強しても、「自分が欲しいアプリを構築する」ことのハードルは高いので、Power Appsの勉強を始める前に、まずDBやシステム設計の知識を得ることをおすすめします。とお伝えしました。

市民開発者がアプリを構築するための知識とは?知識レベル
知識レベル

今回はDBやシステム設計の知識とは具体的になにを指すのかについて紹介いたします。

 

DBの知識とは

そもそも「アプリ(システム)とはなにか?」についてざっくり説明すると、画面上に表示されているデータを編集・削除、あるいは新規登録するものだと私は考えています。
(本当にざっくりですいません、、、)

そしてDBとは、画面の”裏”にあるデータの保存場所を指しており、画面とデータのやり取りを行っています。
(ユーザーが直接DBを参照できるわけではなく、画面を通して参照しているため、あえて”裏”と呼んでいます。)

市民開発者がアプリを構築するための知識とは?
アプリ(システム)とは
アプリ(システム)とは

また、DBを具体的に説明すると、Excelの表のことであり、行と列でデータを管理します。

市民開発者がアプリを構築するための知識とは?
DBはExcelの表である
DBはExcelの表である

「DBとは」とネットで調べると、とてつもない情報量が検索結果として表示されると思いますが、市民開発者の方はそこまで細かく知る必要はなく、あくまでDBとはExcelの表だとイメージしていただければと思います。

ただし、以下の知識は抑えておくと良いのではないでしょうか。

 

マスタ・トランザクション

これは、表の種類のことを指します。
(マスタはディメンションと呼ばれたり、トランザクションはファクトと呼ばれたりします。)

  • マスタ:データ処理の基となるデータのこと。(イメージとしては、選択肢の参照元となるデータ一覧です。)

  • トランザクション:アプリを使用する中で蓄積されるデータのこと。

家計簿アプリを例に取ると、日付や種類(交通・娯楽・食費など)・金額といったデータを登録すると思います。

その中で、種類一覧はマスタに該当し、日付・種類・金額を登録したデータはトランザクションに該当します。

市民開発者がアプリを構築するための知識とは?マスタ・トランザクションとは
マスタ・トランザクションとは

マスタ・トランザクションの細かい話はネットで調べるとたくさん出てくると思いますので、詳細は割愛します。

大切なこととしては、DBを設計する際、マスタとして必要なデータは何か?トランザクションとして必要なデータは何か?を意識することです。

 

リレーション

リレーションとは、各表がどのように連携しているのかを指します。

データを登録する際に、選択肢から項目を選択することがあるかと思います。 (上記家計簿アプリの「種類」のことです。)
このような場合、「トランザクションとマスタは1対多でつながっている(1対多でのリレーション)」といいます。

リレーションについてもネットで調べると多くの情報が出てくると思いますので詳細は割愛しますが、 細かいことは覚える必要はなく、「データを登録する際に、選択肢から登録したい項目はあるか」程度の認識で良いと思っています。

、、、自分で書いていて申し訳ないですが、わかりづらい説明となっていますね(笑)

私がお伝えしたいのは、リレーションそのものの知識ではなく、アプリを構築する際には、複数の表が連携している(リレーションで繋がっている)ということです。
(そしてその連携は多くの場合、リレーションは選択肢項目として表現されます。)

アプリを構築する際、1つの表ですべてを賄う必要はありません。
必要に応じて、複数の表を用いてデータを保存しましょう。

 

システム設計の知識とは

システム設計とは、とても簡単に説明すると、やりたいことをアプリとして構築するためのレシピづくりです。
(レシピは、具体的に言うと「設計書」のことを指します。)

大規模かつ複雑なシステムを設計する場合は、幅広い知識や多くの経験が必要となりますが、市民開発者の方がターゲットにするアプリの場合は、そんなに片肘張る必要はありません。
(逆に、難易度の高いシステム設計が必要となるアプリは自身で構築せず、外部業者に依頼したほうが良いでしょう。)

市民開発者がアプリを構築するための知識とは?システム設計とは
システム設計とは

システム設計を行う際には、私は以下の手順にて設計することが多いです。
※手順と記載していますが、順番通りに考えるのではなく、すべて項目を行ったり来たりしながら設計します。

 

<システム設計の手順>

  • 登場人物の整理と、各登場人物が何をするかを考える

    アプリを使用する人物の種類を考えます。
    その後、各登場人物がどのような操作を行うのかを考えます。

  • データを考える

    どのようなデータを保存するかについて考えます。
    マスタやトランザクションとして必要なデータを検討します。

  • 画面を考える

    データを表示するための画面について考えます。
    よく使われる画面としては、以下が挙げられます。

    1. 一覧画面:データの一覧を表示する画面のこと。検索もこの画面で行われることが多い。

    2. 編集画面:データを編集・新規登録する画面のこと。

    3. 詳細画面:データの詳細を表示する画面のこと。編集画面とほぼ同じだが、データを編集することはできない。

市民開発者の方が「アプリを構築したい!」と思っても、何から手をつければいいのかわからないという方が多いと思います。
そのような場合には、まず上記手順を参考にシステム設計を実施していただければと思います。

 

おわりに

少し長くなってしまいましたので、今回はここまでとさせてください。

次回のブログでは、具体的なアプリを例に取り、実際にシステム設計を行ってみたいと思います。

小刀稱知哉

お楽しみに!
本年最後のブログです!少し早いですが良いお年を!

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き♥♥)、現在は東京都在住

1990年4月9日生まれ

30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

シェアする
記事カテゴリ
最新記事
2024.04.17

Power Apps・Power Automateの勉強方法(1)

2024.04.03

非エンジニア【(元)自治体職員】が半年間ローコード開発をしてみたら

2024.03.27

Power Automateのベストプラクティス・アンチパターン(5)【Apply to each×コンカレンシー×変数の設定はNG】

2024.03.20

Power Apps×Teams:Teams上からPower Appsを実行する方法

2024.03.13

Power Apps:SharePointリストと連携したカレンダーアプリを自作してみよう

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザインtemplateテンプレート運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeamsローコード開発非エンジニア体験談勉強内製化
PageTop
ページトップに戻る