Power AppsでSharePointのフォームをカスタマイズするということ

Power AppsでSharePointのフォームをカスタマイズするということ Microsoft 365 ( Office 365 )
Power AppsでSharePointのフォームをカスタマイズするということ

Japan Power Apps User Group (以降、JPAUG) の「Power Apps オンライン勉強会 ~つまづきポイント対策会~(2022/2/19)」にて、「SharePointリストのフォームのカスタマイズを利用したときにハマること」というテーマで登壇させていただいたときの資料をご覧になった方からご質問をいただきました。

発表時にはご説明した内容も含まれますが、資料だけでは読み取れない点だと思いましたので、回答として記事にまとめておきたいと思います。
登壇時の資料も合わせてご覧になっていただければと思います。
※ 以降、「資料」と記載している部分は、「SharePointリストのフォームのカスタマイズを利用したときにハマること」を指しています。

質問

リストからフォームのカスタマイズを使ったことはありますが、Power Apps からSharePointのリストに接続してキャンバスアプリを作成したことがないため、逆なことはできるのかな?と疑問に思ってます。
Power Appsからキャンバスアプリで作成するとSharePointへの接続が面倒なのと、SharePointIntegrationというデフォルトで設定してくれるコントロールを自分で設定する作業が発生するくらいですよね?

回答

① Power Apps の画面からSharePoint リストに接続して作成した場合は、フォームのカスタマイズで作成した場合と同様のものを作成することはできません。

「フォームのカスタマイズ」で作成した場合、SharePoint リストのコマンドバーで[+新規]をクリックしたり、保存されているアイテムを表示させるフォーム部分をまるごと置き換えます。

資料のP17に「SharePointのフォーム部分をカスタマイズするもの」「いつものキャンバスアプリとは異なる」と記載したのはこの点を指しています。

また、資料のP19でリストの設定で、カスタマイズしたフォームを既定のSharePointフォームに戻すには、[リストの設定]-[フォームの設定]の値を「既定のSharePoint フォームを使用する」に変更する必要がある点について説明しました。

この点からもPower Appsを利用して、[フォームのカスタマイズ]で作成したフォームは、SharePointのフォーム機能として働いていることが分かるかと思います。

資料内にP7に参考URLとして記載したDocsの記事に両者が異なるものである点について明記されています。
以下の記載を見ると、リストのコマンドバーから[統合]-[Power Apps]-[フォームのカスタマイズ]で作成したフォームの場合は、ユーザーは必ずSharePointにアクセスして、リストからフォームを開くことになります。つまりSharePointがすべての起点になるということです。
一方、アプリで作成した場合は、SharePointにアクセスすることなく、アプリを開くことが可能です。

Power Apps を使って Microsoft Lists または SharePoint フォームをカスタマイズする (動画を含む) – Power Apps | Microsoft Docs

つまり、Power Appsでキャンバスアプリとして、SharePointと連携したアプリを作成した場合、SharePointにアクセスすることなく、アプリを開くだけで、SharePoint リストの操作が可能です。
しかし、SharePoint リスト側で[+新規]とクリックしても、フォーム部分がPower Appsで作成したものと置き換わることはありません。

画像に alt 属性が指定されていません。ファイル名: SharePointFormCustomize15.png


② SharePointIntegrationコントロールは、リストのコマンドバーから[統合]-[Power Apps]-[フォームのカスタマイズ]を選択して作成した際にしか利用することができません。

資料内にP7に参考URLとして記載した以下のDocsの記載にもありますとおり、回答① でご説明した機能の役目を果たすものが、「SharePointIntegration」コントロールと理解しています。

SharePoint フォームの統合について – Power Apps | Microsoft Docs

実際に試していただくのが一番わかりやすいと思いますが、フォームのカスタマイズで要となる「SharePointIntegration」コントロールは、リストのコマンドバーから[統合]-[Power Apps]-[フォームのカスタマイズ]をクリックした際に、Power Apps Studioに自動的に配置されるコントロールです。

Power AppsからSharePointリストに接続してキャンバスアプリを作成した場合、「SharePointIntegration」コントロールを設定することはできません。

実際に、Power Apps Studio でコントロールの検索をしてもヒットしません。
このことからもPower Apps StudioからSharePointリストに接続したとしても、「SharePointIntegration」コントロールを設定することができないことが分かります。

③ Power Apps からSharePointリストに接続してキャンバスアプリを作成するのは、作成の仕方によっては、特に難しいものではございません。

繰り返しになりますが、フォームのカスタマイズは、SharePointリストのフォーム部分を置き換える機能です。
一方、Power Apps から、SharePointリストに接続してキャンバスアプリを作成するということは、データソース(データの保存場所)として、SharePointリストを利用するということだけであり、SharePoint リストのフォームとは切り離して考えることになります。

SharePointから接続すること自体はそれほど難しくありません。
※ SharePointリストをデータソースとして、キャンバスアプリを作成する方法については、多くの参考記事がありますので、詳細は他の記事を検索してみてください。

<パターン1>
① Power Appsで [作成]から「SharePoint」を選択します。

② SharePointの接続を選択後、SharePointサイトのURLを入力して、[移動]をクリックします。
※ 接続がない場合は、「+新しい接続」から作成してください。

③ ②で選択したサイト内のリストの一覧が表示されるので、該当のリストを選択して、[接続]をクリックします。

Power Apps Studioで読み込まれた状態で特に手を加えることなくアプリを保存するだけで、すぐに利用可能なアプリが完成します。
以下は上記手順で作成したアプリの例です。
SharePointのリストに登録されているアイテムの一覧を表示したり、アイテムを登録できます。

詳細は以下のDocsなどを参考にしてください。
Microsoft Lists のデータを使用してキャンバス アプリを作成する (動画を含む) – Power Apps | Microsoft Docs

<パターン2>
[アプリ]から[+新しいアプリ]-[キャンバス]、または、[作成]から「空のアプリ」を選択して「キャンバスアプリを一から作成」する場合もあります。
一から空白のキャンバス アプリを作成する (動画を含む) – Power Apps | Microsoft Docs

SharePointへの接続自体の要領はさきほどと一緒です。
① [データの追加]で「SharePoint」を選択します。

② SharePointの接続を選択後、SharePointサイトのURLを入力して、[接続]をクリックします。

③ ②で選択したサイト内のリストの一覧が表示されるので、該当のリストを選択して、[接続]をクリックします。

これでSharePointとの接続が完了です。

ただし、この場合は、空のアプリを作成しているので、コントロールを配置したり、SharePointの各列と連携やリストへの保存の機能はありません。
SharePointのリストとの連携する部分は、当然ながら、一から作成することになります。

ご質問者の方は、こちらで作成した場合の接続が大変だということをおっしゃっていたのかもしれませんね。

「Power Apps Studio へようこそ」のメッセージ

Power Apps Studioを開いたときに表示されるメッセージにも違いがあります。
パターン1のメッセージを見ても「フォームのカスタマイズ」が「SharePoint リスト フォーム」に特化したものであることが分かります。

<パターン1>
SharePoint リストのメニューから[統合]-[Power Apps]-[フォームのカスタマイズ]で開いた場合

リストのメニューから[統合]-[Power Apps]-[フォームのカスタマイズ]で開いたときのPower Apps Studioのメッセージ

<パターン2>
[アプリ]から[+新しいアプリ]-[キャンバス]、または、[作成]から「空のアプリ」を選択して「キャンバスアプリを一から作成」した場合

キャンバスアプリを一から作成」した場合のPower Apps Studioのメッセージ

<パターン3>
[作成]から「SharePoint」を選択して作成した場合

[作成]から「SharePoint」を選択して作成した場合のPower Apps Studioのメッセージ

参考URL

資料内に記載した参考URLをこちらの記事にも記載しておきます。

<Docs>

<おすすめ記事>

さいごに

Power Appsのフォームのカスタマイズは、InfoPathフォームの後継機能となります。
オンプレのSharePoint Serverで構築したサイトを活用されていた方の中には、標準フォームがお気に召さず、InfoPathでフォームを作成されていた方向けの機能です。

SharePoint Onlineでは、̪列の書式設定を活用することで、デザイン(見た目)を変更することも可能です。また、Power Appsのキャンバスアプリで作成することで利用者にSharePointリストを意識させないようにすることも可能です。

実現したい要件は、SharePointリストのフォーム部分だけを置き換えることが必須なのか、キャンバスアプリでSharePointリストをデータソースとして扱うことで実現できないかを検討してから作成することをお勧めいたします。

おまけ

ちなみに当時の登壇感想文も書いてましたのでよろしかったらどうぞ。
Power Apps オンライン勉強会 ~つまづきポイント対策会(2022/2/19)~登壇感想文

コメント