このサイトはアフィリエイトリンクを含んでいます
スポンサーリンク

Power Apps×SharePointのカスタムフォームを裏技で環境変更する方法:不一致状態を実現するテクニック

AIで調べてみた
スポンサーリンク

Power AppsとSharePointを連携してリストのカスタムフォームを作ろうとすると、通常は同じ環境でしか動かせないことが多いですよね。ところが、あるとき不思議な現象が起きて、既定の環境とは違う環境で動作しているフォームを発見しました。これはいわゆる“裏技”に近い手法で、公式のサポート範囲を超えているかもしれませんが、運用上どうしても別の環境でフォームを動かしたい場面では重宝するテクニックといえます。この記事では、なぜ環境が固定されてしまうのかを理解しつつ、その裏技的な方法を使って環境を変えるまでの手順を詳しく解説します。少し複雑な話題ですが、じっくり読み進めれば「環境の不一致状態」を作る道筋が見えてくるはずです。僕も最初は混乱したけれど、一歩ずつ紐解いていくと驚くほどスッキリ理解できました。これから同じ悩みに直面する人の手助けになればうれしいです。


スポンサーリンク

カスタムフォームと環境の基本

カスタムフォームとは

Power AppsとSharePointを連携させるとき、SharePointリストに「新規作成」や「編集」を行うフォームが自動で用意されます。このフォームをPower Appsでカスタマイズすると、見た目や動作を自由に変えられるのが大きなメリットです。これがいわゆる「カスタムフォーム」です。

  • SharePointIntegration(シェアポイントインテグレーション)
    カスタムフォームには、SharePointとの連携を司る特殊なオブジェクトが含まれています。これによって「新規作成ボタンを押したらフォームが表示される」「編集ボタンを押したら該当アイテムを編集モードで開く」といった機能を実現します。
  • 既定環境(Default Environment)
    Power Appsには環境という概念があり、その組織内で最初に作成されるのが「既定環境」です。通常はこの既定環境内でSharePointリストのカスタムフォームが作られ、動作する仕組みになっています。

環境が違うとどうなるのか

Power Appsでアプリを新規作成する際、環境を切り替えることができます。しかし、SharePointのカスタムフォームを作るときは、ほとんどの場合、既定環境以外を選択するとスタンドアロンのアプリ扱いになってしまい、SharePointIntegrationがなくなります。これがよく言われる「既定環境以外ではフォームをカスタマイズできない」という制限の正体です。

  • 既定環境以外で起こる問題
    1. カスタムフォームとしての機能が働かない
    2. SharePointリストのボタンと連動しない
    3. SharePointIntegrationが存在しないため、編集や新規作成が自動的に連携しなくなる

この制限はMicrosoftの公式ドキュメントでも明示されていて、「組織の既定環境以外の環境でフォームをカスタマイズできますか?」という質問に対して「いいえ」と答えられています。


なぜ環境を変えたいのか

組織の運用ルール

組織の運用ルール

ある組織では「既定環境は他のシステム連携に使っているから、業務系のフォームは別の環境Bで管理したい」という事情がある場合があります。運用ポリシーとして「部署ごとに環境を分けて管理したい」などもよく聞く話です。

しかし、先ほど説明したように、通常の手順では既定環境以外でSharePointリストのカスタムフォームを運用するのは難しいです。そこで何とか裏技的に切り替えられないかと試行錯誤することになります。

不思議な不一致現象

なぜか既定環境以外の環境でカスタムフォームが動いていた

一度だけ、なぜか既定環境以外の環境でカスタムフォームが動いていた、という報告があります。たとえば環境を環境Bにしているのに、実際のフォーム右上に表示される環境名は環境Aだったり、マウスオーバーするとツールチップには環境Bが出てくる、という不一致が起きるのです。

こうした現象は普通の手順では発生しないため、バグのように見えるかもしれません。けれど運用上は「それが実現するならむしろ使いたい!」というケースもあります。


裏技の全体像

仕組みを利用した方法

今回紹介する手順は、一度既定環境で作成したカスタムフォームをエクスポートし、別の環境でインポートするという流れです。公式サポートで推奨されている手順ではない可能性が高いので、自己責任で行う必要があります。

手順としては以下のステップを踏むことで、不思議な「環境の不一致状態」を再現できます。

  1. 既定環境でカスタムフォームを作成し公開する
  2. リスト設定からフォームのエクスポートパッケージを作成する
  3. SharePointリストからカスタムフォームを削除する
  4. 別の環境に切り替え、先ほどのパッケージをインポートする

これだけを読むと単純そうに見えますが、細かい操作手順や注意点があります。次のセクションで詳しく解説します。


手順詳細:環境を切り替えて不一致状態を作る

手順① カスタムフォームがないリストを用意する

まず、カスタムフォームをまだ作成していないSharePointリストを用意します。既にカスタムフォームを作成しているリストでも構いませんが、作りかけのフォームがある場合は誤操作が起こるかもしれないので注意が必要です。

  1. SharePointリストを開く
  2. 「新しいアイテム」や「編集」をクリックして、まだ既定のフォームが使われていることを確認

手順② 既定環境でカスタムフォームを作成

Power Apps でフォームをカスタマイズ

次に、リストの設定画面から「Power Apps でフォームをカスタマイズ」を選びます。するとPower Appsが起動し、SharePointIntegrationを含むカスタムフォームが自動生成されます。

  • このとき、Power Appsの右上などを確認すると、環境が既定環境(環境A)になっているはずです。
  • フォームを少しでもカスタマイズしたら、右上の「発行(Publish)」ボタンを押して公開します。

公開したら一度SharePointリストに戻り、正常にカスタムフォームが反映されているかを確認します。リストの「フォームの設定」を開くと、「PowerApps で作成したカスタム フォームを使用する」が選ばれた状態になっているはずです。

手順③ バージョンと使用方法を参照してエクスポート

リストの設定画面で「フォームの設定」を見ると、「バージョンと使用方法を参照」というリンクが表示されます。これをクリックすると、Power Appsの管理画面が開きます。そこには「アプリ」メニューがあり、今回作成したカスタムフォームがアプリとして認識されている状態です。

  1. 画面右上あたりにある「エクスポートパッケージ」を押す
  2. インポートの設定を「新しく作成する」に選択
  3. ZIPファイルとして保存

このZIPファイルがカスタムフォームのエクスポートデータになります。

手順④ 既定フォームに戻してカスタムフォームを削除

既定フォームに戻してカスタムフォームを削除

続いてSharePointリストに戻り、「フォームの設定」から「既定の SharePoint フォームを使用する」を選択します。すると「カスタム フォームを削除しますか?」のようなメッセージが表示されるので、これを実行します。

  • ここでカスタムフォームを削除しても、先ほどエクスポートしたZIPがあるので大丈夫です。
  • リストのフォームは再び標準のSharePointフォームに戻ります。

手順⑤ 目指す環境に切り替えてインポート

最後に、Power Appsの画面を開き、右上から環境を環境B(既定環境以外)に変更します。すると通常はスタンドアロンのアプリが作成されるモードになりますが、ここで「アプリ」メニューから「インポート」を選択し、先ほどのZIPを指定します。

  • インポートの完了後、SharePointIntegrationが含まれる状態のアプリが、環境Bに登録されることになります。
  • これにより、本来は既定環境でしか動かないはずのカスタムフォームが、違う環境に存在する形になるわけです。

仕組みと注意点

なぜこれが可能になるのか

Power Appsのエクスポートパッケージ機能は、アプリを丸ごとZIP化して別の環境に移すための仕組みです。通常はスタンドアロンアプリの移行を想定している機能ですが、SharePointIntegrationを含むカスタムフォームも「アプリ」として扱われるため、同じ方法で移行できてしまいます。

  • 不整合の背景
    SharePointリストから見ると、一度は既定環境で作られたカスタムフォームが削除されているので、いまリストにカスタムフォームは存在しない状態です。しかしPower Appsのアプリとしては、別の環境(環境B)に移植されたカスタムフォームが残っています。
  • 今後のサポートや仕様変更
    この方法は公式ドキュメントで推奨されているわけではなく、将来的に使えなくなる可能性もあります。Microsoft側で何かしら対策を行うと、エクスポート時にSharePointIntegrationを外すようになるかもしれません。

留意すべきリスク

  1. サポート対象外の可能性
    Microsoftサポートに問い合わせても「想定外の使い方」と言われるかもしれません。トラブル発生時の保証は難しいです。
  2. 権限不足による操作不能
    環境をまたぐ操作には、該当環境でアプリを作成・インポートできる権限(環境作成者ロールなど)が必要です。もし権限が足りなければこの手順は実行できません。
  3. SharePointIntegrationの動作確認
    実際に環境Bの環境でアプリを起動しても、SharePointリストのボタンをクリックしたときに正しく連携するかは、テストが必要です。場合によってはリスト側に何らかの再設定が必要になるケースも考えられます。

実践のコツ

テスト環境で試す

本番運用のリストでいきなり試すと、予期せぬ不具合が発生したときに対処が難しくなります。なるべくテスト用のSharePointリストを用意して、一連の操作を試し、うまくいくかどうかを確かめると安心です。

バージョン管理とバックアップ

Power Appsのアプリにはバージョン管理機能があります。操作ミスやエラーが出た場合に戻せるよう、適切にバックアップやバージョンの管理を行うのが重要です。

環境管理者との連携

Power Platform管理センター

本来であれば、Power Platform管理センターで環境の状態を把握したり、管理者と相談して公式な手順で環境を変更してもらうほうが望ましいです。ただ、組織の事情で管理者に依頼できない場合や、既定環境をどうしても使えない理由がある場合には、この裏技が選択肢になるかもしれません。


トラブルシューティングのポイント

フォームが表示されないとき

エクスポート後にリストからカスタムフォームを削除しているため、リストのフォームとして再登録されていない可能性があります。もしリスト側で再び「Power Appsでカスタマイズする」を選択すると、新たなカスタムフォームが作成されるため、衝突するかもしれません。

SharePointIntegrationが機能しないとき

アプリは存在しているけれど、SharePointのボタンをクリックしてもフォームが表示されない場合は、リスト側の設定を再度確認します。フォームの設定画面で「Power Appsで作成したカスタムフォームを使用する」が選択されているか、バージョン管理画面で正しいフォームが選ばれているかチェックするとよいです。

環境の切り替えがうまくいかないとき

ブラウザのキャッシュやアカウント情報の同期の問題で、環境が正しく切り替わらないことがあります。別のブラウザを使うか、一度サインアウトしてから再サインインするなどを試してみてください。


まとめ:運用と創意工夫の大切さ

Power AppsとSharePointのカスタムフォームは、基本的には「既定環境」しか対応していません。しかし、組織の要件や運用上の都合によっては、どうしても別の環境で動かしたい場合があります。そこで今回の裏技的な手法を使うと、通常は発生しない環境の不一致状態を再現し、実用に耐える形に仕上げることが可能です。

ただし、この方法はMicrosoftが正式にサポートしているわけではなく、今後の仕様変更で使えなくなるリスクもゼロではありません。運用する際は自己責任であることを認識し、十分にテストを行うことが大切です。

「どうしても別の環境に切り替えたい」「管理者に頼めない」「組織の既定環境に手を出せない」といった悩みを抱える方は、一度試してみる価値があるかもしれません。僕も最初は不安だったけれど、実際に手順を踏むと意外とスムーズにできました。今後もPower AppsとSharePointの連携はどんどん進化していくと思うので、新しい機能や仕様変更の情報を常にチェックしながら、最適な方法を探していきたいです。

関連するMicrosoft公式Web記事

  1. SharePointリストフォームのカスタマイズ
    Customize a SharePoint list form using Power Apps
  2. Power Appsの基本と始め方
    Get started with Power Apps
  3. 環境管理の概要
    Overview of environments in Power Platform
  4. 環境の管理と設定
    Manage environments in Power Platform
  5. SharePointとPower Appsの連携について
    Connect your SharePoint data to Power Apps
  6. トラブルシューティングの基本
    Troubleshoot model-driven app forms

コメント

タイトルとURLをコピーしました