こんにちは。日本マイクロソフトの向井です。
今回はPower Apps Portals で詳細フォームを作成し、公開する流れをご紹介します。
0.1. 詳細フォームとは
まず、詳細フォームの位置づけについて説明します。
Power Apps Portals には基本フォームと詳細フォームの2種類のフォームがあります。
基本フォームはノーコーディングで作成、Webページへの埋め込みができる点が魅力ですが、単一テーブルにしかデータを入力できないという制限があります。
そのため、複数のテーブルにまたがってデータを入力させたい場合は詳細フォームを使用する必要があります。
また、
・ 複数のページにまたがるフォームを作成したいとき
・ 条件分岐を作成したいとき(作成シナリオを参照)
・ 入力途中でページを一度離れた場合に入力内容(セッション)を保持したいとき
も詳細フォームを使用します。
0.2. 作成シナリオ
今回は、ポータルに設置されたフォームにユーザーが以下のようにデータを入力していくシナリオを想定します。
① すべてのユーザーはフォームAにデータを入力する。
② フォームA内に、はい/いいえで回答する質問が含まれる。
③ ユーザーがはいを選択した場合はフォームBを表示し、ユーザーに入力させる。
④ いいえが選択された場合はフォームBは表示せずに終了。
0.3 作成手順
大まかな作成手順は以下の通りです。
- 詳細フォームの作成
- 詳細フォームステップの作成
- テーブルアクセス許可の作成
- Webロールにテーブルアクセス許可を付与
- ポータルに詳細フォームを埋め込む
こちらの記事では1. ,2. の手順について説明します。
手順3. 以降の手順については後日別記事として公開予定です。(公開次第こちらの記事にリンクを貼ります。)
0.4. 前提条件
・詳細フォームを埋め込みたいPower Apps Portalsで作成したWebサイトがある。
・Dataverseに以下が用意されている。
・ フォームAに入力されたデータを格納するテーブルA
・ フォームAで入力させたいデータを格納する列
・ 条件分岐に使用する、はい/いいえの回答を格納する列
・フォームBに入力されたデータを格納するテーブルB
1. 詳細フォームの作成
1.1. フォームの用意
Dataverse でテーブルAを開き、フォームを作成します。
今回は元からあるフォームを編集していきます。フォームの種類がMainになっているものを選択します。
※画像ではテーブルA=問合せ情報です。
ユーザーに入力させたいフィールド(列)を並べてフォームを作成します。
条件分岐用の質問も忘れずに追加してください。
下の画像の右側のようにプロパティのコンポーネントで切り替えを選択すると、
画像左側のフォームに表示されているオンオフを選べるUIを使用することができます。
フォームを作成後、保存>公開をします。
1.2. 詳細フォームの作成
ポータル管理アプリ(ポータル作成時に自動生成されるモデル駆動型アプリ)を開きます。
詳細フォームを新規作成します。
下の画像のハイライトをした項目を埋めていきます。
名前:任意の名前
Webサイト:詳細フォームを埋め込みたいWebサイト
認証が必要:はいの場合、サインインしたユーザーのみが回答できます
読み込み時に新しいセッションを開始する:はいにすると、ユーザーがフォームの入力途中でページを一度離れた後に入力を再開する場合に、以前に入力されたデータを保持します。(詳細フォームの特徴の最終項目で紹介した機能)
ユーザーごとに複数のレコードを許可する:はいにすると、同一ユーザーが複数回フォームを送信できます。
進行状況のインジケーターに関してはこちらのDocsを参考にしてください。
入力後、上書き保存します。
2. 詳細フォームステップの作成
今回は以下の3ステップを作成します。
① フォームAの入力
② 条件分岐
③ フォームBの入力
実際のステップは①から始まりますが、作成順としては最後のステップである③から作成すると効率が良いです。(ステップ作成時に次のステップを選択するため、選択対象のステップを先に作成したほうが良い)
2.1. ③「フォームBの入力」ステップの作成
詳細フォームステップタブから詳細フォームステップを新規作成します。
以下のように項目を埋めていきます。
名前:任意の名前
詳細フォーム:1.2で作成した詳細フォーム
種類:フォームの読み込み
ターゲットテーブル名:テーブルB
以前の許可の移動:はいの場合、入力中に前のステップに戻ることを許可します。(日本語訳が変でわかりにくいです・・・)
入力後、隣のForm Definitionタブに移動し、項目を埋めていきます。
モード:編集
フォーム名:任意の名前
タブ名:1.1で作成したフォームのタブ名
Source Type:現在のポータルユーザー
入力後、保存して閉じるをクリックします。
2.2. ②「条件分岐」ステップの作成
同様の手順で、次は条件分岐のステップを作成します。
種類:条件
ターゲットテーブル名:テーブルA
次のステップ:先ほど作成した③のステップ
※ここで次のステップを選択するため、後ろのステップから作成しています!
入力後、隣のConditionタブに移ります。
このタブでは分岐条件を入力します。
ここはDataverseのテーブルAのはい/いいえ列を確認し、
名前=true
と入力します。
入力後、保存して閉じるをクリックします。
2.3. ①「フォームAの入力」ステップの作成
同様の手順で①のステップを作成します。
入力後、保存して閉じるをクリックします。
2.4. 最初のステップの設定
全般タブに移動して、ステップの開始をステップ①に設定します。
保存して閉じるをクリックします。
以上で詳細フォームを作成することができました。
手順3. 以降は後日別記事としてupし、こちらにリンクを貼る予定です。