1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

フロー実行ごとにテーブルの値を順に取得する

Posted at

はじめに

以前の記事、ファイルの情報を取得し、自動送信する を少しパワーアップさせます。

フロー実行ごとに、ある値を1ずつ増加させて、その値をキーとしてテーブルから値を取得し実行ごとに異なる値を出すようなフローを作ってみます。

やりたいこと

以前の記事 から、以下の処理を追加する。

  • ファイル(テーブル構造)のレコード数を取得
  • キー と レコード数 が等しいかどうか
    • 等しいとき:テキストファイルを 1 に上書き
    • 等しくないとき:テキストファイルを 1 + キー に上書き

step2_加工.png

フローが実行されるたびに ID = (前回の実行ID + 1) の値を取得する。
キーが最後のレコードを取得した後に、キーを最初のレコードを指定するよう上書きすることで、ループ的な出力結果を実現できる。

フロー全体図

最終的に以下のようなフローを作成した。
フロー全体図.png

  1. トリガー(ここではスケジュール)
  2. ファイルコンテンツの取得
  3. 変数を初期化する
  4. 行の取得
  5. メールの送信(v2)
  6. 変数を初期化する
  7. 表内に存在する行を一覧表示
  8. それぞれに適用 Apply to each
    1. 変数を増やす
  9. 条件
    1. ファイルを更新
    2. ファイルを更新

フロー作成

今回のフローで主要な部分について

[フローの2 ~ 4] ファイルコンテンツの内容を変数に格納

以前の記事 では変数に格納しなかったが、currentValue という変数を用意し、テキストファイルの内容を変数に格納する。
取得したコンテンツは整数型ではないので、intにキャストして格納する。int(outputs('ファイル_コンテンツの取得')?['body'])

その後の 行の取得 で、キー値にcurrentValueを指定する。
ファイルの内容を変数に格納.png

[フローの6 ~ 8] ファイル(テーブル構造)のレコード数を取得

テーブルの行数を変数に格納する。
変数 tableRowCount を用意し、初期値を0に指定。
表内に存在する行を一覧表示 アクションで、行の一覧を取得する。

取得した行数を tableRowCount に格納したい。
それには、それぞれに適用 アクションで取得した行をループ処理で回し、tableRowCountを増加させる。

行数を取得.png

[フローの9] キーと行数が等しいかどうかの条件分岐

例えば、キー:currentValue = 10 、レコード数: tableRowCount = 10 で等しいとき、
フローの最後でテキストファイルのキー値を 1 で更新する。
次のフローの実行では、currentValue = 1 、 tableRowCount = 10 で等しくないので、
フローの最後でテキストファイルのキー値を currentValue + 1 の値 で更新する
…といった処理を実装するには、

条件 アクションを追加し、
currentValuetableRowCount を比較する。
trueのとき、ファイルを更新 アクションで、ファイルコンテンツに string(1) と指定。
falseのとき、同じくファイルを更新アクションで、ファイルコンテンツにstring(add(1,variables('currentValue'))) と指定。

条件分岐.png

実行結果

テキストファイルの値を1にして、4回フローを実行。
以下は、Gmail の受信画面(上から最新)

実行結果.png

ID:3 の次は、ID:1 を取得することができた。

おわりに

これ以上アクションが増えたら管理が大変そうだなぁと思いました。
慣れれば、これくらいはふつうの量なのでしょうか。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?