※Power Platform Day Winter 2019 のハンズオン用に内容をリバイズしました。(2019/12/5)
CDS/モデル駆動型アプリを理解するハンズオンシリーズ その3です。
今回は標準エンティティを使用せず、カスタムエンティティを1から作成してモデル駆動型アプリを作成してみます。これによって、標準エンティティだから簡単便利に作れたのか、カスタムエンティティでも簡単便利に作れるかを実感できます。
前提:Office 365 開発者プラン + CDSが利用可能な環境、ハンズオンその1、その2を実施済
・Office365開発者プランの作成手順はこちら
・CDSが利用可能な環境の作成手順はこちら
・ハンズオンその1はこちら
・ハンズオンその2はこちら
作成手順詳細
Office 365 Portal からPower Appsを起動。(直接https://make.powerapps.com/から起動しても構いません。)
既定の環境ではCDSが使用できないため、環境を切り替えます。環境をクリックし、「既定」と書かれていない環境を選択して切り替えます。切り替えたら × ボタンを押して戻ります。
サイドメニューから「データ > エンティティ」を選択。
「+新しいエンティティ」をクリック。
新しいエンティティを定義します。今回は与信限度額を決めるためのランク付けマスタ管理アプリを作ります。
エンティティの表示名や技術名を指定します。また、この時点でプライマリキーの表示名と技術名を指定します。指定した後、右下の「作成」をクリック。
エンティティが作成されました。作成直後はプライマリキーフィールドのみ表示されますが、数秒後に多数のフィールド(赤枠部)が追加表示されます。※表示名などの列幅はExcelライクに修正できますので適宜修正してください。
下にスクロールして確認します。
前回の手順の中で、「自分のアクティブな取引先」ビューなどが自動で作成されることがCDS/モデル駆動型アプリの大きなメリットの一つだと説明しました。同様に、CDSのカスタムエンティティは自動で「作成者」「ステータス」「作成日時」などの項目を作ってくれ、これも非常に大きなメリットです。
画面に戻り、作成を進めましょう。「フィールドの追加」をクリック。
フィールドの表示名や技術名を指定します。
データ型をプルダウンすると以下のように選択肢が表示されます。今回は既定の「テキスト」を使用します。
詳細オプションをクリックして展開。
データ型を指定すると、下に「詳細設定オプション」が表示されます。データ型に応じた属性定義項目が表示されます。説明とか長さを指定します。指定したら「完了」をクリック。
3つ目の項目として「与信限度額」を設定。データ型は「通貨」を指定。
詳細設定オプションの項目が「データ型:テキスト」の時と少し変わりました。今回は説明のみ入力し、他は既定値のまま「完了」。
4つ目の項目として日付項目を追加します。データ型が日付・時刻の場合はタイムゾーンを意識する必要がありますので「動作」で指定しますが、今回は既定のままとします。各種指定した後「完了」をクリック。
ここまでに指定した4つのフィールドが表示されています。「エンティティの保存」をクリック。
保存されます。少し待ちます。
保存されました。ここで「為替レート」と「通貨」が追加されていることが確認できます。
これはCDM/CDSの方で「金額項目があるのだから、一般的に通貨と為替レートが必要だろう」という事を考えて自動で付け加えてくれる項目です。
他にも自動で追加されているものを確認します。タブを順にみていきます。まずはリレーションシップタブ。
リレーションシップの「作成者」をクリックしてみます。
以下のように、ユーザーエンティティと紐づいていることが分かります。つまり、与信限度ランクエンティティの作成者には「ユーザー」エンティティの値のみ格納可能です。システム的にはN:1の関係です。確認後、キャンセルをクリックして戻ります。
通貨についてもリレーションを見てみましょう。「通貨型」というエンティティと紐づいていることが分かります。キャンセルボタンで戻ります。
関連付けられているエンティティを見るには、リレーションシップタブで対象の関連エンティティを選択し「〇〇に移動」をクリックします。(今回は「通貨型に移動」をクリック)
エンティティが「通貨型」になっていることを確認し、「データ」タブをクリック。
JPYレコードのみが存在することが分かります。(ここからレコード追加もできますが、それは後ほど。)戻るときはブラウザの戻るボタンで戻ります。(個人的には「通貨型」ではなく「通貨」が適切な翻訳のように感じます。)
与信限度ランクエンティティに戻ったことを確認して、「ビジネスルール」タブに移動。自動で登録されたものは無いようです。
「ビュー」タブに移動。6つほど自動で作成されています。前回の「取引先」よりは少ないですが、色々と用意されています。
試しに6つの内の一番上のビューの名前の右側のアイコンを右クリックして新規タブで開いてみましょう。
ビュー(≒一覧画面)のデザイン画面が開きます。「与信限度ランクコード」と「作成日」の2項目がデフォルトで定義されています。データはまだありません。
次にフォームタブに移動します。自動で3つ作られていることが分かります。名前は全部同じですが、種類が違います。「簡易表示フォーム(Quick Form)」「カード(Card)」「メイン(Main)」の3種類です。Quick Formの「…」をクリックして「編集フォーム」をクリックします。(正しい翻訳は「フォームの編集」だと思います。)
フォーム(1レコードごと入力画面)のデザイン画面が開きます。キャンバスアプリ同様、真ん中の下に拡大/縮小アイコンがありますので、適宜調整してください。
フォーム一覧に戻り、「Card」の「…」をクリックすると「編集フォーム」が見当たりません。
代替手段として名前のHyperLinkを右クリックして新しいタブで開きます。
先ほどと異なるテイストの画面が開きました。実はこれは古いデザイン画面です。Dynamics 365のCRMで使用されていた流れを汲む画面です。(おそらくですが)いずれ廃止されると思われます。
エンティティに戻りダッシュボードタブを確認します。これは何も自動で追加されていません。
グラフのタブ。これも自動で追加されたものは無し。
キー。これも自動で追加されたものは無し。
データ。ここにはデータレコードが表示されます。標準エンティティだとサンプルデータが入っていますが、カスタムのエンティティなので当然データレコードは無しです。
右上にビューのプルダウンがあるのでプルダウンリストを見てみます。先ほどビューのところで見た「自動で追加された6つのビュー」が表示されます。
今回(その3)はここまでです。
エンティティを1からカスタムで定義して作成した際に、
・フォームやビューがいくつか自動で生成される。
・カスタム定義した項目に応じていくつか項目が自動で生成される。(ex.金額系項目)
・レコード管理用の項目が自動生成される。(ex. 作成日、作成者、変更日…)
という事が分かりました。このあたりがCDS/モデル駆動型アプリを使う大きなメリットです。
その4では今回作成したカスタムエンティティを登録/変更/照会するモデル駆動型アプリを作成します。
5件のコメント