エンジニア募集しています
アアーティサンではローコードエンジニアをはじめ、クラウド開発者やコンサルタントなどを募集しています。
アーティサンの仕事内容や転職にご興味のある方はこちらもご覧ください。
こんにちは。アーティサン株式会社の小刀稱(ことね)です。
SharePointのフォームをPower Appsにてカスタマイズできることをご存知でしょうか。
Power Apps を使用して Microsoft Lists または SharePoint フォームをカスタマイズする
標準のフォームより、より細やかな制御を行うことができるため、便利ですよね。

今回は、SharePointリスト上のPower Appsフォームをエクスポートし、別のSharePointリストへインポートする方法を紹介します。
前提と今回やりたいこと
最初に前提条件と今回やりたいことについて說明します。
2つSharePointサイトを作成しました。
また、各サイトにSharePointリストを作成しました。
<環境>
フォームをエクスポートする環境
SharePointサイト名:SharePointフォーム用サイト_from
SharePointリスト名:sample list
フォームをインポートする環境
SharePointサイト名:SharePointフォーム用サイト_to
SharePointリスト名:sample list
作成したSharePointリストの列名とデータ型は以下のとおりです。
※2つのSharePointリストはどちらも同一の列名とデータ型です。
タイトル:1行テキスト
singleText:1行テキスト
number:数値
person:個人
date:日付と時刻

今回は、「SharePointフォーム用サイト_from 上の sample list で作成されたフォームをエクスポートし、 SharePointフォーム用サイト_to 上の sample list にインポートする」という作業を行います。

Power Appsフォームのエクスポートとインポート
以下手順にてPower Appsフォームのエクスポートとインポートを行います。
Power Appsフォームをエクスポート
まずは、Power Appsフォームをエクスポートします。
Power Appsの編集画面からファイル→すべてのバージョンの表示→エクスポート パッケージをクリックします。

その後、エクスポート パッケージ画面にて必要事項を編集します。
今回は以下を編集しました。
パッケージの詳細 名前:Power Appsフォーム
パッケージコンテンツの確認 インポートの設定:新しく作成する

必要事項を編集したら、「エクスポート」をクリックし、Power Appsフォームをダウンロードします。
(zip形式のデータがダウンロードされます。)
JSONファイルの修正
zipファイルを解凍し、Microsoft PowerApps→apps→xxxxx(数字列)と移動し、「xxxxx.json」を開きます。

修正する箇所としては、JSONファイルの”embeddedApp”内の以下値です。
“siteId”
“listId”
“listUrl”

上記3項目を、フォームをインポートする環境(「SharePointフォーム用サイト_to」サイト)の値に上書きします。
siteIdとlistUrlの値はすぐに分かると思いますので、割愛します。
listIdの値については、SharePointリスト画面の「リストの設定」をクリックし、設定画面上のURLの内、「?List=」以降の%7Bと%7Dを除いた値となります。
※「%7B」と「%7D」は「 { 」と「 } 」がそれぞれエンコードされた値です。

JSONファイルを上書きしたら、zipファイル上のxxxxx.jsonに、先程修正したjsonファイルを上書き保存します。

Power Appsフォームをインポート
Power Appsフォームを新しい環境にインポートします。
Power Appsのホーム画面( https://make.powerapps.com/ )を開き、アプリ→キャンバス アプリのインポートをクリックします。
パッケージのインポート画面にて必要事項を編集します。
今回は以下を編集しました。
パッケージコンテンツの確認 インポートの設定→リソース名:SharePointフォーム用サイト_to フォームの sample list

必要事項を編集したら、インポートをクリックし、Power Appsフォームをインポートします。
インポートが正しく実行されたら、アプリを開くをクリックし、Power Apps編集画面を開きます。

データソースの更新
前述した手順にてPower Appsフォームのインポートは完了しましたが、Power Appsフォームが参照しているデータソースがエクスポート時のSharePointリスト(SharePointフォーム用サイト_from の sample list)のままとなっているため、更新する必要があります。
Power Apps編集画面のデータ→sample list 横の3点リーダーから「削除」をクリックし、SharePointリストを削除します。
その後、新しいSharePointリスト(SharePointフォーム用サイト_to の sample list)を選択します。

これでデータソースの更新は完了です。
Power AppsフォームをSharePoint に公開してください。

補足
今回は、「エクスポート・インポートするSharePointリストに関して、その名称や各列の外部・内部列名が同一の場合」という前提にて、実行手順をお伝えしました。
エクスポート・インポートするSharePointリストに関して、その名称や各列の外部・内部列名が異なる場合は、フォームをインポートした後、Power Appsの修正が別途必要となります。
この場合、修正箇所がかなり多くなる可能性があります。
もし本記事を参考にPower Appsフォームをエクスポート・インポートする場合は、着手する前にSharePointリストの名称や各列の外部・内部列名を確認しましょう。
修正箇所が多いと予想される場合は、1からフォーム作成をおすすめします。
逆に、エクスポート・インポートするSharePointリストの名称や各列の外部・内部列名が同一の場合は、修正箇所が少ないため、本記事の方法で簡単にフォームをコピーできます。
ぜひご活用ください。
さいごに
本記事では、今回はSharePointリスト上のPower Appsフォームをエクスポートし、別のSharePointリストへインポートする方法を紹介しました。
機会がありましたらぜひご活用ください!
【こちらも合わせて読みたい】
弊社ではPower Platform(Power AppsやPower Automateなど)を用いてお客様の業務を自動化するご支援を数多く承っております。
業務の中で、「普段手動でやっている業務を自動化できないか」というような疑問がある場合には、お気軽にアーティサン株式会社までお問い合わせください。

小刀稱知哉
大分県出身(温泉大好き♥♥)、現在は東京都在住
1990年4月9日生まれ
30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!