Power Apps で モデル駆動型アプリを作る(3)


前回はCDM/CDSに標準で用意されているエンティティ「取引先企業」を使用してモデル駆動型アプリを作成しました。今回はエンティティを自前で1から作成してモデル駆動型アプリを作成してみます。これによって、標準エンティティだから簡単便利に作れたのか、カスタムエンティティでも簡単便利に作れるかが分かるはずです。

用意するもの:Power Apps Plan2 が使えるOffice365アカウント。

今回はカスタムのエンティティを作るところまでやってみます。

まずはO365からPower Apps を起動。

環境は前回作成した、モデル駆動型アプリ用の環境を使いましょう。(既定の環境だとモデル駆動型が使えないようで新環境を作れと言われます。)

サイドメニューから「データ > エンティティ」を選択。

「+新しいエンティティ」をクリック。(ちなみに環境構築時に標準のエンティティを作成するフラグを立てておくと下の画面のように標準エンティティが存在するはずですが、今回はこれらの標準エンティティをを使わないので存在しなくても大丈夫です。)

エンティティを定義します。今回は与信限度額をランク分類するマスタを作成する、という想定で作ってみます。表示名とか技術名(名前)とか説明とか入れて「次へ」。(表示名の頭に ’z_’ を付けたのは自分のカスタムエンティティを見分けやすくするための自分ルールなので付けなくても全く問題ないです。)

エンティティが作成されました。フィールドはデフォルトで一つだけ作られています。ヒネリも何もなく「Primary Name」という必須のテキストフィールです。「Primary Name」の部分をクリックすると、、

項目定義のプロパティが右側に現れます。

項目の名称やその他の属性を変更します。変更したら「完了」をクリック。(頭に’10_’とつけたのは見つけやすくするための自分ルール&並び順を制御する方法が他に見当たらなかったためなので、付けなくても問題ないです。)

フィールドを追加します。

2つ目の項目は「与信限度ランクの説明」。名称を指定してデータ型を指定。

指定できるデータ型はこれだけあります。今回は「テキスト」を指定。

データ型を指定すると、下に「詳細設定オプション」が表示されます。データ型に応じた属性定義項目が表示されます。説明とか長さを指定します。指定したら「完了」をクリック。

3つ目の項目として「与信限度額」を設定。データ型は「通貨」を指定。

詳細設定オプションの項目が「データ型:テキスト」の時と少し変わりました。今回は既定値のまま「完了」。

4つ目の項目は日付項目も追加してみましょう。データ型が日付の場合はタイムゾーンを意識するようです。指定したら「完了」をクリック。(ちなみに「日付のみ」にするつもりが間違って「日時」にしてしまいました。。普通に考えて有効期限で時刻は必要ないですね。)

ここまでに指定した4つのフィールドが表示されています。「エンティティの保存」をクリック。

保存されます。少し待ちます。

保存されました。と、ここで「為替レート」と「通貨」が追加されています。

これはCDM/CDSの方で「与信限度額という金額項目があるのだから、普通は通貨と為替レートが必要でしょ。」という事を考えて自動で付け加えてくれる項目です。(実際のところ、中の人に聞いた訳ではないので確証はないのですが、ERPシステムやCRMシステムでよくある作りなので、そうだという確信はあります。)実はこのタイミングで他にも項目が作成されているのですが、それについては後ほど説明します。

他にも自動で追加されているものは無いか? ということでタブを順にみていきます。まずはリレーションシップタブ、、は何もなし。

ビジネスルールタブも自動追加されたものは無し。

ビューについては6つほど自動で作成されています。前回の「取引先」よりは少ないですが、色々と用意されているようです。試しに6つの内の一番上のビューの名前の右側のアイコンをクリックしてみましょう。

以下の画面が表示されるはずです。画面のテイストが明らかにD365CEっぽいです。CDM/CDSのカスタムエンティティはキャンバスアプリでもモデル駆動型アプリでも使えるのですが、この画面を見ると、CDM/CDSはモデル駆動型アプリを意識した作りになっていることが想像できます。(まあ、「フィールド」の下に「モデル駆動型」と書いてあるので当たり前と言えば当たり前ですが。)

上の画面はそっと閉じて進めましょう。閉じるとエンティティのフィールド定義画面に戻るのですが、ビュー定義を編集中という排他制御のメッセージが表示されています。ビューの編集はキャンセルしたので「完了」を押してメッセージを消します。

次にフォームタブを見ます。自動で3つ作られていることが分かります。名前は全部同じですが、種類が違います。「簡易表示フォーム」「カード」「メイン」の3種類です。

一つ目の「簡易表示フォーム」の文字の右側のアイコン(□に→)をクリック。

 

フォームのデザイン画面が開きました。2つしかフィールドが表示されていません。エンティティでフィールド定義した(「Primary Key」改め)「10_与信限度ランクコード」はフォームに配置されていますが、「20_与信限度ランクの説明」「30_与信限度額」「40_与信限度ランクの有効期限日」はフォームに配置されておらず、右側の「フィールドエクスプローラー」から移す必要があります。

と、ここでフィールドエクスプローラをよく見て欲しいのですが、自分が明示的に追加した4項目と、エンティティ保存時に自動追加されることを確認した「通貨」「為替レート」の項目以外にも色々と追加されています。

まず一つは「30_与信限度額(基本)」という項目。おそらく「30_与信限度額」が通貨タイプなので基本通貨での金額を換算して持ってくれると推測。(根拠はERPでよく見かける手法だから。)

あとはレコード作成に関する情報として「作成者」「作成者(代理)」「作成日」の3つ。レコード修正に関する情報として「修正者」「修正者(代理)」「修正日」。あと「ステータス」と「状態」があります。(項目名からは違いが分からないですねw)

カード型のビューも同様に開いてみます。

先ほどのフォーム編集画面とほぼ同じです。パーツの配置が若干違いますが、中央のペインで定義されている項目が2つというのは同じです。

最後に「メイン」のフォームを開きます。

中央のペインで定義されている項目が2つというのは同じです。

ダッシュボード。これは何も自動で追加されていません。

グラフ。これも自動で追加されたものはナシ。

キー。これも自動で追加されたものはナシ。

データ。これも自動で追加されたものはナシ。標準エンティティだとサンプルデータが入っていますが、カスタムのエンティティなので当然データレコードは無しです。と、ここで、、

右上にビューのプルダウンがあるようなのでプルダウンリストを見てみます。先ほどビューのところで見た「自動で追加された6つのビュー」が表示されます。

今回はここまでです。

エンティティを1からカスタムで定義して作成した際に、
・フォームやビューがいくつか自動で生成される。
・カスタム定義した項目に応じていくつか項目が自動で生成される。(ex.金額系項目)
・レコード管理用の項目が自動生成される。(ex. 作成日、作成者、変更日…)
という事が分かりました。このあたりがCDM/CDSを使う価値の一つになると思います。

次回は今回作成したカスタムエンティティをベースにしたモデル駆動型アプリを作成します。(繰り返しになりますが、カスタムエンティティ自体はキャンバスアプリでも使えます。そういう意味では今回はモデル駆動型アプリを作る前準備にすぎません。)

1件のコメント

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です