フロー共有した人のOneDriveの中でExcelを読み込む

更新日

目次を開く
  1. どうやってドキュメントライブラリのIDを抜き出すか
  2. ついでに場所も指定しておく

フロー共有した人のOneDriveの中でExcelを読み込む

下記のようにExcelファイルをOneDriveの中に置いてデータを読み取るフローを作成し、共有をするとエラーが発生してフローが失敗します。

共有したフローで発生するエラー

これは、規定で表示されている「OneDrive」がフロー所有者のドキュメントライブラリを指定しているためです。

そのため、ここは動的になるようにカスタム値へ変数などを指定する必要があります。

OneDriveをカスタム値で指定する設定

どうやってドキュメントライブラリのIDを抜き出すか

ドキュメントライブラリのIDの取得方法は色々ありますが、今回は「パスによるファイルのメタデータの取得」アクションを使用しています。

このアクション内のID、またはファイルロケーターの .(ドット)以前がドキュメントライブラリのIDなので、それを抜き出します。

"b!iQo7tRtGJUuWnIKRSWuie15eoRkWdfdIm0IN9wQOpW_htF2vnX7LRaKTSAcWX0i_.01JAGVXCMH2PVLDMV3MRDJZ5FUMFYKORDU"

Slice関数を使用して、. 以前のドキュメントライブラリIDを抜き出し、変数に入れます。

データはObjectの状態なので、一度「作成」アクションに吐き出します。作成を使わない場合は、後続の関数に string 関数を足す必要があります。

ファイルのメタデータからIDを確認する

作成アクションに出力する設定

slice(outputs('作成'),0,indexOf(outputs('作成'),'.'))

ついでに場所も指定しておく

場所も指定しておきましょう。こちらは簡単で、変数に me と入力するだけです。

場所にmeを指定する設定

こんな感じです。

おまけですが、動的にデータを取得するには、下記のように「ファイル」にメタデータの取得で取得したIDを入れます。テーブル名はIDでなくとも文字で読み込みます。

Excelのデータを動的に取得する設定

無事データを読み込めました。

データの読み込みに成功した結果