LoginSignup
1
1

More than 1 year has passed since last update.

PowerAutomate: Backlog ファイルに保存した Excel を集約して Wiki を自動更新する

Posted at

背景

ある会合で参加者の情報を Excel 提出して集めてたが、横断で見るなんて面倒 :cry:
で、当然集約する必要が出た。

アンケートサービスで収集してればこんな作業不要なんですけどね・・。
Excel 大好きさんはいまだに多いので、API 利用チャンスと捉えて作ってみることにした記録

以下で準備してたら早速使いどころがあったというお話

概要

  • Backlog API でファイル取得
  • ファイルから Office Scripts でデータ取得
  • 取得した結果から Wiki Contents 生成して、Upload

Backlog ファイル からファイルを取得して、OneDrive へ保存

image.png

Excel からのデータ取得 by Office Scripts

image.png

取得結果を元に、Backlog wiki を更新

image.png

全員分まだそろってないので、上手くいったら定期的に実行しておくだけじゃないかな、と

疑問点

まったく同一の wiki を更新した場合、更新検知はされるのか?

Yes → ファイル取得時に周期内の更新がある場合のみに動作に、かな。

No → メール通知も有りで、放置しておけば、差があるときだけ通知されていい感じ

課題と解決策

wiki の Update API を使うと、差分が無くても更新扱いになる

差分無ければ更新されないかな、とか思ったんだけど・・ダメでした

解決策

  • 事前に差分確認して Update 判断をしておくだけ

ファイル作成には上書きオプションがない

解決策

  • 事前に OneDrive のフォルダを空にしておく

外部ファイルのコンテンツ情報から ファイルを作成する アクションでファイルを作成するわけだが、コピーアクションなどと違って、上書きオプション等がない。故に、先にフォルダ内を全部消しておく方が良い。そうしないと削除直後に作成をしてしまい、Lock に引っかかると思われる。
image.png

Excel ファイルだから・・書式がいい加減

解決策

  • Office Scripts で頑張って処理する・・

方眼紙エクセルまで酷くは無くても似たようなものなので、以下のような点も気を付けて JSON Object として取得する

  • 単一セルに入ってるか確定してない
  • 人によっては、項目と値を同一セルに書き込んでる。例)「名前:〇〇 太郎」が同一セル

クエリパラメータをURL パラメータとして使うと文字数制限がある

解決策

  • Body に渡して使う

image.png

API の記述をちゃんと見てれば、見分けられたとは思うんですが・・Web 開発経験の浅さのせいですね。 :laughing:

image.png
image.png

Wiki でテーブルを作る際に列が多くて狭くなった

解決策

  • リンク表記を使って、インチキポップアップを :laughing:

こんな感じ。ただし、URLを書くべき括弧内に、括弧や空白があると反応しなくなるので、Encode か全角変換が必要。encodeUriComponent が楽かな。

[名前](会社名)
[Date](DateTime)

ファイルの作成者が複数同じになっていた(代理投稿だそうな)

解決策

  • ファイル内にある「社名/個人名」を取得

特定のセルに書いてるわけじゃないので、面倒だけど、まぁ、Office Scripts でよしなに

存在するファイルより何故か少ない情報がWikiにあがる

問題点

解決策

  • とりあえず、Delay で様子見

あとがき

Data Loss Policy の関係上会社では外部APIを使えないけど、やっぱり使えるようにしてくれると色々と捗るよねって思った。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1