モデル駆動型フォームへのキャンバス アプリの埋め込み
Microsoft Power Apps は、キャンバス アプリとモデル駆動型アプリという、2 つの主なツールで構成されています。 モデル駆動型アプリは、データベースとして Microsoft Dataverse のみをサポート案件します。キャンバス アプリは、組み込みコネクタやカスタム コネクタを介して、400 以上のデータ ソースをサポートします。
キャンバス アプリを使用すると、モバイル デバイスやタブレット デバイス向けのタスク ベースのアプリケーションを作成できます。 開発プロセスはわかりやすく、空白のキャンバスから開始します。 空白のキャンバスにコンポーネントをドラッグして、ユーザー インターフェイスを作成できます。 さらに、各コンポーネントのプロパティ ウィンドウで数式を作成して、検証やその他のビジネス ロジックを追加できます。
キャンバス アプリの威力をモデル駆動型アプリに組み込むため、キャンバス アプリを埋め込むこともできます。 キャンバス アプリを埋め込むと、フォーム上で効果的なビジュアルを作成して、さまざまなソースからのデータを Dataverse のデータとあわせて表示できます。
クラシック エクスペリエンスを使用してキャンバス アプリを埋め込む
クラシック エクスペリエンスを使用して、キャンバス アプリをモデル駆動型フォームに埋め込むには、最初にメイン フォームを開き、クラシック ビューに切り替えます。 クラシック開発プラットフォームは、Dynamics CRM アプリケーションの元の開発プラットフォームです。このプラットフォームで、キャンバス アプリを自動的に生成して、モデル駆動型アプリに埋め込むことができます。
クラシック表示で、キャンバス アプリにバインドする列を選択します。 ホーム タブの編集グループで、プロパティの変更を選択します。フィールド プロパティ ダイアログで、コントロール タブを選択します。
キャンバス アプリのコントロールを追加するには、コントロールの追加を選択します。 Web を選択すると、キャンバス アプリを Web インターフェイスで表示できます。
次のプロパティを使用して、埋め込みキャンバス アプリのアプリケーション プロパティを、モデル駆動型アプリに設定します。
テーブル (エンティティ) 名 - 埋め込みキャンバス アプリにデータを提供するテーブルを指定します。 このプロパティは、フォームのデータ ソースに基づいて事前入力されますが、 プロパティの構成アイコンを選択すると、値を変更できます。
アプリ名 - 埋め込むキャンバス アプリの名前を指定します。 モデル駆動型フォームは、現在の環境で指定された名前のキャンバス アプリを探します。 その名前のキャンバス アプリが環境内で見つからない場合、キャンバス アプリ コントロールはアプリ ID を使用してキャンバス アプリを読み込みます。 既存のキャンバス アプリのアプリ名を入力します。
アプリ ID - 埋め込みキャンバス アプリのアプリ ID を指定します。 既存のキャンバス アプリのアプリ ID を入力できます。
既存のキャンバス アプリがない場合には、アプリ名とアプリ ID のプロパティを空白のままにし、フィールドのプロパティ ダイアログのカスタマイズ ボタンを選択して、新しいキャンバス アプリを作成できます。 このアクションによって、Power Apps のキャンバス アプリ スタジオが開きます。
新しいキャンバス アプリは、ホストのモデル駆動型アプリのユーザーインターフェイスで選択したテーブルの主キー フィールドを使用して作成されます。 主キーは、自動的に作成される Form1 フォーム コントロールに配置されます。 フォーム コントロールの Item プロパティは、特別な ModelDrivenFormIntegration コントロールを参照します。
特別な ModelDrivenFormIntegration コントロールは、キャンバス アプリ スタジオの左側のウィンドウに表示されます。 このコントロールは、ホストのモデル駆動型フォームから埋め込みキャンバス アプリにコンテキスト データを取り込みます。
さらにフィールドとコントロールを追加して、キャンバス アプリをデザインできます。 デザインが完了したら、キャンバス アプリを保存して公開します。 ホストのモデル駆動型アプリのアプリ名とアプリ ID プロパティは、新たに作成されたキャンバス アプリの対応する詳細で、自動的に更新されます。
モダン エクスペリエンスを使用してキャンバス アプリを埋め込む
モダン エクスペリエンスを使用して、キャンバス アプリをモデル駆動型フォームに埋め込むには、最初にメイン フォーム (ホストのモデル駆動型フォーム) を開きます。 メイン フォーム エディターで、キャンバス アプリにバインドする列を選択し、モデル駆動型アプリのコンポーネントの一覧から関連データ グループの下のキャンバス アプリ コントロールを選択します。
キャンバスの追加のダイアログが開きます。 このダイアログには、エンティティ名、アプリ名、アプリ ID の 3 つのプロパティがあります。 これらのプロパティは、クラシック エクスペリエンスのプロパティと同様です。 空のキャンバス アプリを作成して、ダイアログにアプリ ID を入力します。
または、キャンバス アプリにバインドする列を選択してから、フォーム エディターの右側にある列プロパティのウィンドウで Component プロパティを選択することもできます。 コンポーネントの追加 ダイアログで、キャンバス アプリを選択します。
入力のダイアログが表示され、ここでエンティティ名、アプリ名、アプリ ID の 3 つのプロパティを入力します。 空のキャンバス アプリを作成して、ダイアログにアプリ ID を入力します。
キャンバス アプリのコンポーネントがモデル駆動型アプリに埋め込まれ、component プロパティは次のスクリーンショットのようになります。
ModelDrivenFormIntegration コントロール プロパティとアクション
キャンバス アプリがモデル駆動型アプリに埋め込まれると、ModelDrivenFormIntegration という名前の特別なコントロールがキャンバス アプリに追加されます。 このコントロールは、ホストのモデル駆動型アプリからキャンバス アプリにコンテキスト データを取り込みます。 このコントロールには、次のような重要なプロパティとアクションがあります。
DataSource - 既定では、DataSource プロパティ値は、ホストのモデル駆動型フォームの親テーブルに接続されているデータ ソースに設定する必要があります。 既存のキャンバス アプリを埋め込む場合には、キャンバス アプリのツリー ビューから ModelDrivenFormIntegration データ ソースを設定できます。
OnDataRefresh - このプロパティの式は、ホストのモデル駆動型フォームがデータを保存するときに評価されます。 このプロパティを使用すると、ホストのモデル駆動型フォームの親テーブルに接続されているデータ ソースを更新したり、変数の設定や更新などの他のアクションを実行したりできます。
アイテム - 埋め込みキャンバス アプリがホストのモデル駆動型アプリの列にアクセスするための読み取り専用プロパティ。 たとえば、名前が departmentnumber で表示名が Department Number である列の値を取得するには、ModelDrivenFormIntegration.Item. departmentnumber または ModelDrivenFormIntegration.Item.'Department Number' を使用できます。
SaveForm - ホストのモデル駆動型フォームにデータを保存する、定義済みのアクション。
RefreshForm - ホストのモデル駆動型フォームのデータを更新する、定義済みのアクション。 このプロパティには 1 つのパラメーターがあります。
showPrompt- 保存されていないデータをホストのモデル駆動型フォームに保存する前に、確認メッセージをユーザーに表示する必要があるかどうかを示す、必須のブール値パラメーター。 値は true または false である必要があります。
NavigateToMainForm - ホストのモデル駆動型フォームからメイン フォームに移動して、指定された行を表示する、定義済みのアクション。 このプロパティには 3 つのパラメーターがあります。
entityName- メイン フォームの親テーブルを指定する、必須の文字列パラメーター。
formName- 移動先のメイン フォームの名前を指定する、必須の文字列パラメーター。
recordId- メイン フォームで表示される行の ID を指定する、必須の文字列パラメーター。
NavigateToView - ホストのモデル駆動型フォームからビューに移動する、定義済みのアクション。 このプロパティには 2 つのパラメーターがあります。
entityName- ビューの親テーブルを指定する、必須の文字列パラメーター。
viewName- 移動先のメイン フォームの名前を指定する、必須の文字列パラメーター。
OpenQuickCreateForm - テーブルの既定の簡易作成フォームを開く、定義済みのアクション。 このプロパティには 1 つのパラメーターがあります。
entityName- 簡易作成フォームの親テーブルを指定する、必須の文字列パラメーター。
次のユニットでは、モデル駆動型フォームにタイムライン コンポーネントを追加する方法を学習します。