🏃‍♂️

PAD:Power Automate Desktop - ListとDatatableの使い分け

2021/12/25に公開

はじめに

Power Automate Desktop:PADで扱うものにはListとDatatableで操作できるアクションがあります。
CSV化を例に実装をしてみます。

シナリオの実装

Listを使う

Google Sheetからクリップボードにコピーしたデータは
改行(行)とタブ区切り(列)でセルが分割されています。

実装の方針は

  • クリップボードの内容を行で分割する
  • 取得した行をタブで分割してリストにする
  • リストにしたデータをファイルへ行数分書き込む

行で分割する

クリップボードにあるのは改行を含むテキスト値です。

次のアクション:テキストの分割を選びます。

分割されたクリップボードのテキスト値はリストに保存されます。

タブで分割する

テキストの分割を使ってタブで分割します。

リストになった行データになりました。
行の個数分タブで区切られていることがわかります。

CSVに書き込み

指定したファイルが存在しない場合は作成され、すでに存在している場合は追記されます。

Datatableを使う

一行ごとにファイルへのアクセスが発生するListの場合と違って
ファイルに書き込む回数を減らすことを目的にします。
Listの場合に比べて手順は増えて、実装コストは都合高くなります。
初期化について意識する必要がでてきます。

いろんな実装フローが想定できます。
一例では

  • クリップボードのテキストから行に分割し、さらにタブ区切りされたセルデータをリスト化する
  • リスト化したデータの列の数を数え、列ヘッダーを作成する
  • Datatable用に列ヘッダーを追加して変数を作成
  • Datatableの変数にリストデータを行数分加算する
  • 最後にCSVファイルへ書き出す

Datatableの扱い

https://docs.microsoft.com/ja-jp/power-automate/desktop-flows/variable-data-types#advanced-data-types

初期化

変数の初期化はアクションが別々にあります。面倒だと思ったら次のようにします。

List

Datatable

さいごに

全てがグローバル変数で扱われているので、初心者向けではありますが
終始、もっさりした使用感が付きまといます。
別のPCへの移行は同じIDで使うことでできるような仕様なんでしょうか。
バックアップへの不安が常に付きまとい、運用で使わせるのはきびしい。

サブフローの利用で軽くなればいいな。
https://docs.microsoft.com/ja-jp/power-automate/desktop-flows/actions-reference/flowcontrol

本当に無料でできることや、課金して時限で実行させることができるツールとしては安価に
運用が可能な方だと思います。

Discussion