アルパカのメモ

色々メモ

Excel

SharePoint, OneDrive に保存した Excel ファイルを操作できるが、テーブルの取得やテーブルへの行の追加など、一覧データの取得、更新くらいしかできない。

テーブル名を指定してデータを取得

「表内に存在する行を一覧表示 (List rows present in a table)」を使う。

テーブル内に日付データがある場合、オプションの「DateTime形式」をどちらにするか検討した方が良い。 既定では「Serial Number」になっていて、日付のシリアル値で取得される。対して「ISO 8601」に変更すると、「2021-04-01T00:00:00.000Z」のような日付形式になる。 Excelの日付にはタイムゾーンがないので、日本時間のつもりで入力していても、末尾にZがついてUTCとして取得される。 Logic App 内で日付を扱いたいときは、replace 関数などで Z を +09:00 に置き換えてから扱うと良い。

オプションの「フィルタークエリ」には ODATA クエリ形式でフィルターを設定できる。 こちらは日付データに対してはシリアル値を指定しないといけない。 Logic App でシリアル値を求めるのが面倒くさい場合は、全データ取得後、「アレイのフィルター処理」でデータを抽出できる。

日付

現在日時の取得

「現在の時刻」を使う。

タイムゾーンがUTCになっているので、日本時間へ変換してから扱った方がいい場合がある。

タイムゾーンと書式の変換

「タイムゾーンの変換」を使うと、ついでに書式の変換もできる。

SharePoint

「ファイルの作成」がエラーになる

エラーの内容:

Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.

現象:
SharePoint の A フォルダにあるファイルを B フォルダにコピーしようとして、「ファイルコンテンツの取得」→「ファイルの作成」をしてエラーになった。

(2022年3月、Power Automateで発生)

原因:
コピー先のフォルダパス + ファイル名 + ファイルコンテンツの容量が一定以上だとエラーになるっぽい? 詳細不明。

回避策:
「ファイルコンテンツの取得」

「ファイルの作成」

「ファイルの更新」

とアクションを並べ、「ファイルの作成」でファイルコンテンツが空のファイルを作る (ファイルコンテンツの指定は必須なので、実際はスペースか何かを1文字入れておく)。 そのあと「ファイルの更新」を実行し、実際のファイルの内容を書き込む。

参考:Solved: When I create a file in a SharePoint library - Bad… - Power Platform Community

トラブルシューティング

メールの添付ファイルを保存できない

現象:
メール受信をトリガーとしたフローで、添付ファイルの保存がエラーとなるか、保存できても0KBになってしまう。

原因:
メール受信トリガーで、「添付ファイルを含める」を「はい」にしていない。

料金

Logic App のリソースは、従来通りの Consumption と後からできた Standard の二種類がある。 Consumption はマルチテナント または 総合サービス環境 (integration service environment) で実行され、Standard はシングルテナントで実行される。

Consumption (マルチテナント):

  • 簡単に始められる
  • 従量課金
  • フルマネージド
  • 1つの Logic App リソースに対して、ワークフローは1つのみ。

Standard:

  • Azure Functions が実行できる場所であれば、ほぼ実行できる。デプロイメントスロットは現在はサポートされていない。
  • 1つの Logic App リソースに対して、複数のワークフローを作成できる。ワークフローには ステートレス と ステートフル がある。
  • 価格は、Logic App が実行(起動?)されている間の時間で課金される。

制限: https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-limits-and-config?tabs=azure-portal

サンプル

Consumption で作った、特定のメールが届いたら転送するワークフローを例にする。

価格表によると、1アクションが ¥0.003136 、Standard コネクタ が ¥0.014560 なので、 このトリガーでは3分に1回メールをチェックする設定になっているので、1ヶ月あたりの料金は

¥0.014560 × 20回 × 24時間 × 31日 = およそ¥217

となる。
3分に1回トリガーが動いているということなので、たとえメールが1通も届かなくても料金が発生する。