VBおじさん の Power Apps:③Accessのようなアプリを作ってみる

VB/Access に親しんだ方を「 VBおじさん」と呼びます。私も VBおじさん です。共に生き残りましょう!

こんにちはさまのすけです。

さて今回は Access のようなアプリをサクッと作ってみます。ここでは、Dataverseでテーブルを作る場合の素朴な疑問やできた画面の確認をします。
ただ、世の中には動画で詳しく1からアプリを作る手順がたくさんありますので、そちらを見た方が親切です。こんな風に検索でたくさん動画が出てきます。吉田さんのとか。

それでも一応記事を作るのは2つほどポイントがあるためと、最近PowerAppsもCDSをDataverseに変えたりエンティティをテーブルと名称変更していたりするので、手順を追って作成する記事を作りました。

 

Accessのようなアプリを作ってみる】

Accessのようなアプリを作ってみる、とは具体的には Dataverse(旧Common Data Service)をバックエンドにしたアプリ、ということです。初めにテーブル(旧エンティティ)を作ってしまえばあとから簡単にフォームが作成できます。本当に簡単に。

今回作るのはベタな日報報告用のアプリです。

 

【テーブル作成】

まずはテーブルを作成します。以下の通りに作りましょう(雑)

①PowerApps管理ツールから「データ」→「テーブル」→「新しいテーブル」を選択

f:id:samanosuk:20210131160626p:plain

ここの「テーブル」が、「Dataverse」と言われる領域なんですね。なんかよくわからないテーブルが最初からいっぱい入ってますが、これはCRM的に使えるように用意されたテーブルです。これは気にせずに新しいテーブルを作ります。

※さまのすけ は会社で Power Apps が使えるので画面の説明はプレミアム版になります。 Office 365 に付属する Dataverse for Teams での画面とは異なりますのでご注意ください。

 

以下の通りにテーブルを作成します。いわゆる日報アプリのサンプルです。

 

新しいテーブル

  • 表示名: DR_DailyReport
  • 表示名の複数形:DR_DailyReport
  • 名前:DR_DailyReport
  • プライマリ名の列
    ・表示名:Title
    ・名前:Title

以下入力した画面です。

f:id:samanosuk:20210131164845p:plain


で、今日のポイント1点目です。まずここで賢明な VBおじさん としては、「プライマリ名の列」をプライマリキーだろうと思いこみます。なるほどでは一意になる値にしないとなぁ、じゃぁオートナンバー型とか選ぶか。あれ、そもそも型選択できないじゃん、なにこれ、どうすればいいんだよ。。と。

実はこのプライマリ名の列とは、プライマリキーとか関係なく、主な列の名前、でございます。同じ値で重複しても全然問題ありません。事実、組み込みの「タスク」テーブルは「件名」がプライマリ列に設定されています。

40代、50代になって責任世代とか呼ばれて、いろいろなものを知らないうちに抱え込んでしまった VBおじさん たち。気が付けば昔のように体は動かず、ジムに行けば2日遅れて筋肉痛が来る。実は簡単なことも難しく考えてしまってはまってしまう。。

そう、難しく考えてはいけません。もっと楽に行きましょう。

 

また、本日のポイント2つ目ですが、テーブル名はアプリごとにプレフィックスを統一しておいた方が良いです。今回は例として「DR_DailyReport」 としました。日報アプリで複数のテーブルを持つなら 「DR_」で始まるテーブル名にしておくと開発がやりやすいです。Dataverse はその思想上、すべてのデータを統合するという発想なので、テーブルは同じインスタンス(環境)上でまとまっています。

 

【列の設定】

そして以下の列を作成してください。ちなみにすべて英語の名前にしています。デフォルトで日本語の列が入ってくるので英語にした方が使いやすいですが好みでOKです。英語にすると今度は画面の方を日本語に変更する手間もありますので一長一短です。

  • 表示名/名前 : DateTime
  • データ型:日時
  • 必須:任意

  • 表示名/名前 :ReportBy
  • データ型:テキスト
  • 必須:任意
  • 表示名/名前 :Report
  • データ型:テキスト領域
  • 必須:任意

要するに日報の日時、報告者、タイトル、内容 を含むテーブル、というものです。
最もシンプルな例かと。
列をすべて作成したら、最後に「テーブルの保存」をお忘れなく。

 

【アプリの作成】

ぶっちゃけこのテーブルが作られればアプリの作成は本当に簡単です。

PowerApps画面で「新規」→ Common Data Serviceの「携帯電話レイアウト」をクリック。

f:id:samanosuk:20210131170702p:plain

先ほどの「DR_DailyReport」が表示されるので、それを選択して「接続」

なんかこんなアニメーションが出てきて、アプリを作ってくれます。

f:id:samanosuk:20210131170918p:plain

はい、できたのが下図です。データの追加・更新・削除等、
必要な枠組みがすべてそろってます。本当に簡単です。

f:id:samanosuk:20210131171008p:plain

これ、Accessのフォームのようなアプリですが、実際フォームコントロールを使っています。

 

【表示・編集フィールド追加】

そして少し手を入れましょう。DetailScreen1と EditScreen1 という2、3番目のフォームで表示・入力するコントロールを指定する必要があります。
まずは DtailScreen1 の DetailForm1 を選択します。

f:id:samanosuk:20210131172402p:plain


そしたら右画面に DetailForm1 のプロパティ情報が表示されるので、「フィールドの編集」をクリックします。すると「フィールド」という画面が現れて追加したいフィールドを選択することが可能になります。ここで、「DateTime」「Report」「ReportBy」を追加します。

f:id:samanosuk:20210131172318p:plain

 

上記と同じ手順を「EditScreen1 」でも行います。完成画面はこんな感じです。

f:id:samanosuk:20210131173000p:plain

 

はい、これで俺 Power Apps 使えるぜ! と言っても良いと思います。ですが真面目な VBおじさん としてはこんな簡単なアプリはおもちゃだ、もっとこだわりを持って作らないとだめだ、となると思いますので、次回以降はそのためのTIPSを紹介します。

ただし、ここでできたアプリがどのように動いているのかを確認していくのは理解の助けになるのでお勧めします。