🎃

Power Apps モデル駆動型アプリで既存レコードを下書きとしてコピーして新規レコードを作成する(マッピング使用)

2022/08/19に公開

モデル駆動型アプリのフォームで、新規レコードを作成するときに既存のレコードの入力値を下書きとしてコピーしたいってことあるんじゃないでしょうか。

  • 例えばこんなアプリで、入力項目が(実際はもっと多く)あるものがあったとして

  • 次回作成するときはだいたい同じ値を入れることがわかっている場合

これを解決するのは Power Automate か、Power Fx でコマンドか、JavaScript かなーと思っていたのですが、設定いけたので記事にします。
これを応用いただくことで、任意の入力値のみをコピーする、異なるテーブル間でも任意した値をコピーするというようなことも可能です。

手順

1.対象のテーブルに 検索(Lookup)列を作成

  • 対象のテーブルで、自身を参照先とする Lookup 列を作成します

※この時、作成したリレーションシップの名前を覚えておいてください

2.使用したいフォームにサブグリッドを追加

  • 関連レコードのみに限定し、自身を参照先として選択します

3.ソリューションの画面からクラシックに切り替え

  • 対象のテーブルを含むソリューションを選択し、クラシックに切り替えるを選択します

※ソリューションってなに?って場合は既定のソリューションを選択してください

4.作成したリレーションを選択しマッピングの設定を追加

  • 対象のテーブルを選択し、ダブルクリックします

  • 1:Nの関連付けを選択します

  • 作成したリレーションシップを選択し、ダブルクリックします

  • マッピングを選択します

  • マッピングの生成を選択します

  • 下書きとしてコピーしたくない項目を選択して、削除します

  • 保存して閉じます

  • すべてのカスタマイズを公開します

手順ではすべてをマッピングしてから削除していますが、下書きとしてコピーしたい値だけマッピングすればよいです
また、別の列にコピーしてもかまいませんし、リレーションシップで関連付けたものが違うテーブルなら、異なるテーブル間でも定義ができます

設定結果の確認

  • サブグリッドから、新規レコードを作成をクリックすると

  • 入力内容が下書きとしてコピーされた状態で画面が起動します

おしまい

Discussion