前回はデータからいきなり画面を作ってしまう機能を使いました。
環境 > Dataverse > 接続を見てみると、「Fin & Ops アプリ」という FO のコネクタが接続されています。
今日は、一から画面を作ってみます。
① ホーム > キャンバスアプリを一から作成
② アプリ名:販売注文、形式:電話
真っ白なキャンバスが出てきます。とりあえず画面上部を作っていきます。
③ 画面左の + ボタン > 四角形
④ 画面左の + ボタン > テキストラベル("販売注文")
そうするとこんな感じで作成できます。次は画面中央部を作っていきます。
そういやテキスト編集しているときに思ったんですが、フォントってもっと種類ないんですかね。
⑤ 画面上部のツールバー > 挿入 > ギャラリー > 縦
⑥ 画面全体を選択 > データソース(Fin & Ops アプリコネクタ) > SalesOrderHeaderV2
⑦ 各フィールドで表示したい項目を追加(以下では、販売注文番号と顧客名を追加。ThisItem."FOのテーブルフィールド名")
これで画面作成は以上っちゃ以上です。が、これだけだと芸がないので、今回はこの画面をFOの補助画面として用いることに応用したいと思います。
そのシナリオとしては、顧客マスタ画面を閲覧した際に、「この顧客に紐づく販売注文ってどれくらいあるだろう?」という営業担当・与信担当のケースがあるかなと思います。では早速作ります。
⑧ ツリービュー > App > 右プロパティの詳細設定 > アクション
If(!IsBlank(Param("EntityId")), Set(FinOpsInput, Param("EntityId")), Set(FinOpsInput, ""));
詳細: https://docs.microsoft.com/ja-jp/dynamics365/fin-ops-core/fin-ops/get-started/embed-power-apps#building-a-canvas-app-that-uses-data-that-is-sent-from-finance-and-operations-apps
⑨ ツリービュー > Gallery1 > 画面中央部選択 > 右プロパティの詳細設定 > データ > Items
If(!IsBlank(FinOpsInput),SortByColumns(Filter(SalesOrderHeadersV2,'顧客 ID'=FinOpsInput),"SalesOrderNumber",Ascending),SortByColumns(SalesOrderHeadersV2,"SalesOrderNumber",Ascending))
これで Power Apps の画面作りは終わりです。あとはこれを FO に埋め込みます。
⑩ Power Apps を保存 > 共有 > アプリIDをコピペ
⑪ FO > 顧客マスタ > Power Apps ボタン で追加
追加されたので、見てみます。