【#PowerApps Tip's】Excel Online コネクターの元ネタファイルをリネーム他してみた

ゴールデンウィーク、楽しんでますか？

ゴールデンウィーク直前に Excel Online コネクターが大幅アップデートされて「これは神アップデート！」って、とある界隈で騒ぎになったのですね。その際に、ちょっと調査したコトも含めて記事にしておく次第。


# コトの発端
毎度おなじみ＆お世話になっております [Hiro](https://twitter.com/mofumofu_dance) さんが発信している情報で、Excel をデータソースにする際のコネクターがアップデートされたのを知ったのです。（Hiro さん、M365VM の登壇前日に気づいた → 登壇前にセッション内容を大幅アップデートという神業をやったとのこと。凄い！）

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">How many times did you encounter/see the error - Excel file containing formula are not supported- in <a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> ??<br>Today, I have found Power Apps can retrieve data from Excel file containing formula - auto calculated value!!<br><br>This is HUGE update! Thanks <a href="https://twitter.com/MSPowerApps?ref_src=twsrc%5Etfw">@MSPowerApps</a> team! <a href="https://t.co/SkVrhzhTx4">pic.twitter.com/SkVrhzhTx4</a></p>&mdash; Hiro (@mofumofu_dance) <a href="https://twitter.com/mofumofu_dance/status/1387081789261320194?ref_src=twsrc%5Etfw">April 27, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Hiroさんご自身の M365VM（Microsoft 365 Virtual Marathon）フォロー記事はこちら ↓。

[Excel ファイルをPower Appsのデータソースにする際の改善まとめ](https://mofumofupower.hatenablog.com/entry/excel-online-powerapps)

Excel Online コネクターのアップデート情報などが、とても分かりやすくまとまっていますので、是非ご確認ください。

# 公式 Update 情報
Excel Online の Update 情報を当方も記載しておきます。こちらもあわせてご確認を！

[Updates to the Azure File Storage and Excel Online (Business) connectors](https://powerapps.microsoft.com/en-us/blog/updates-to-the-azure-file-storage-and-excel-online-business-connectors/)

上記アップデート以前は OneDrive に格納した Excel ファイルしか接続できなかったのです。この更新で SharePoint Online や Azure File Storag に置いた Excel にも接続できるようになったとのこと。個人的に「なるほどなぁ」という箇所がコチラ。

> The Excel Online (Business) Connector allows users to work with Excel files in document libraries that are supported by Microsoft Graph (OneDrive for Business, SharePoint Sites, and Office 365 Groups). 

英語苦手マンの（主に当方向け）ために機械翻訳も置いておきます。

> ■機械翻訳結果
> Excel Online（Business）コネクタを使用すると、ユーザーはMicrosoft Graph（OneDrive for Business、SharePointサイト、およびOffice 365グループ）でサポートされているドキュメントライブラリ内のExcelファイルを操作できます。

コネクターが Graph API を利用したものになったようですね。つまり、Graph API でアクセス可能な格納場所であれば良くなった → SPO等にも対応したよ、ってことでしょう。


確証は全く無いのですが、Power Apps、Power Automate は Excel テーブルが対象なので、ここらへんかなぁ？という参考URLを置いておきます。

[テーブル リソースの種類](https://docs.microsoft.com/ja-jp/graph/api/resources/table?view=graph-rest-1.0&WT.mc_id=BA-MVP-5004053)

「Graph API を利用している」というコトなので、そもそもの API を把握しておくと何か行き詰った時に解決の糸口になるかもしれない、と考えているんですよね。個人的には「ふ～ん、そうなのね」程度で普段利用は十分だとも思ってます。困ったら「こんな情報もあったな」と思い出していただいて、API についても調べてみると何か得られるかもしれませんよ、ってコトで。


# 気になったコトを当方も調べたみた
Excel コネクターが進化した、と聞いた時に気になったコトを調べてみました。

## データソースのExcelファイル名変更と移動
結論からお伝えすると、ファイル名の変更（リネーム）とファイルの移動を実施しても、Power Apps としては何ら問題無く動作します。動作結果を動画にまとめてありますので下記からご覧ください。

https://youtu.be/u9J01--dcK0

(´ω`)。○○（YouTube動画 埋め込めるようになったんだっけ？）

<iframe width="560" height="315" src="https://www.youtube.com/embed/u9J01--dcK0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

詳細な仕様の公開情報が見つからなかったので当方の推測になりますが、おそらく「Power Apps からの接続は内部IDみたいなヤツで管理されている」というコトでしょう。Excel ファイルのパスで管理していたら、リネームや場所移動なんてしたら1発で接続できなくなりますもんね。

## データソースのExcelファイルを削除
データソース自体が削除されたダメですよねっていうのを、あえて検証してみました。
こちらも動画を用意しておりますのでご確認ください。

https://youtu.be/pptDrhh-xBk

埋め込み動画はコチラ。

<iframe width="560" height="315" src="https://www.youtube.com/embed/pptDrhh-xBk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

まぁー、データソースの元ネタを消しちゃったらダメですよねｗ

特に注目してほしいポイントがあります。追加や更新処理（SubmitForm 関数）ではエラーになりますが「更新ボタン」（Refresh 関数）はエラーになってないのです。
つまり、うっかりデータソースとして利用している Excel ファイルを削除してしまっても、追加や更新などを実施しないと気づけない可能性がある、というコトです。
ここらへんは今後の Update で改善というか、エラーになるように変更される可能性もあるので、検証を実施していた2021年4月末ごろの動作ですよ、という認識でお願いします。

## その他補足
アップデート前の Excel コネクターだと、データソースとなっている Excel ファイルを Power Apps 以外のクライアントアプリや Excel Online で開いていると、排他制御が発生して Power Apps から利用することができませんでした。それがコネクターのアップデートにより排他制御が発生しなくなっていることもあわせて確認いただけると思います。
1個目の動画は、Power Apps をテスト実行した状態でファイルを Excel Online で開いています。気づかなかった方は、是非ご自分でお試しいただくか、その点に着目して動画をチェックしてください。

# まとめ
- Excel テーブルをデータソースとして利用するコネクターが素敵アップデートされた！
  - ドキュメントライブラリ、Azure File Storag のサポート
  - Power Apps から Excel データソース利用時の排他が解消された
  - Excel 上の計算式も Power Apps から値の取得が可能に！
  - その他、Hiro さんの記事や公式もご確認ください
- Excel データソースのファイル名変更、ファイル移動はエラーにならない
  - 検証したのは、OneDrive for Business 上での移動だけです
  - そういえば、SPO から Azure とかソリューション跨いだらどうなるんだろう🤔
- Excel データソースのファイルを削除したらエラーになる
  - でも、Refresh 関数はなぜかエラーにならない
  - ゴミ箱から復元すれば復活します


このアップデートは、ほんと凄いです。いままで排他かかるし、式の結果でデータ取得できないから Excel データソースはチョッと・・・って言ってたのですが、それが言えなくなりましたｗ

とはいえ、Excel ファイルですので「うっかり削除」という危険性は常に付きまといます。OneDrive も SharePoint Online もゴミ箱という救済措置がありますが、削除されちゃってる期間はアプリ使えませんよね。

メリット・デメリットを把握したうえで、どのデータソースを利用すべきか？を検討いただくのは従来と変わりないかなー、と考える次第です。

それでは、皆さま。素晴らしい Power Platform Life を！