Microsoft Flowの実行回数

無料の場合の実行回数は750回/月です。

右上の設定ボタンから残回数を確認できます。flow_jikkou_kaisuu

原則としてトリガーが起動される毎に1回としてカウントされます。

Microsoft Flowは無料版の場合15分毎(有料版の場合は1分毎)にトリガーの状態を確認し、トリガー条件を満たしていれば実行します。

トリガー条件を満たしていなければ、実行せずにスキップします。スキップした場合は実行回数にカウントしません。

ちょっと困ったことにエラーが発生してFailedとなったときにもカウントされます。

特にトリガーでエラーとなった場合が困りもので、15分毎なので1日で96回消費してしまいます。これ、無料版だから96回で済んでいますけど、有料版だと毎分トリガー条件をチェックするので、1日で1440回消費してしまうことになります。スクリプトを登録した場合は、実行結果に注意してみておくようにしましょう。

・・・というか、私自身もトリガーでエラーが発生したせいで、今現在は今月の実行数上限まで消費してしまってもう動かない(T_T)

Microsoft FlowにあるGoogleスプレッドシートのUpdate Row/Get Rowの使い方

Microsoft FlowをGoogle スプレッドシートと連携しようとしたけどRow idの指定などが全く分からなかったので覚え書き。

GoogleスプレッドシートのUpdate row/Get rowの組み合わせはFlowスクリプトを組む上で強力なツールになります。と言うのもFlow自体には正規表現置換や演算機能がありません。Googleスプレッドシートの数式と組み合わせて使うことで、スプレッドシートの関数群による、正規表現置換や文字列編集、演算式を使って結果を取得する事ができるからです。

まず最初にGoogle Drive上でスプレッドシートを新規に作成します。先頭の1行目はデータを識別するためのカラム名として使われます。適当な名前を設定して下さい。flow_spread_sheet_1

新しいステップから「Googleスプレッドシート Update Row」を選択して追加します。flow_update_row_1

Fileの項目は右側のフォルダアイコンをクリックするとGoogle Driveのフォルダ構成が表示されます。フォルダをたどりながら先に作成したスプレッドシートを選択して下さい。Fileを選択後にWorksheetを選ぶとシート名の一覧がドロップダウンするので、対象となるワークシートを選びます。flow_update_row_2

シートを選択すると先ほどスプレッドシートを作成したときに1行目に入力したカラム名が表示されます。
分かりにくいのが「Row id」です。行を特定するための任意の文字列を指定します。ここでは取り急ぎ「_DATA_1_」としましょう。

ここで最初に作成したスプレッドシートに戻ります。するとセルD1に「__PowerAppsId__」と言う項目が追加されています。「Update Row」ステップは「__PowerAppsId__」カラムが「Row id」に指定した文字列と一致する行に対して更新します。ここではセルD2を「_DATA_1_」としておきます。flow_spread_sheet_2

この状態でFlowを動作させると、スプレッドシートの2行目に、「Update Row」ステップの「カラム1~3」に指定した値が入力されます。

ここまで来ると「Get row」で何を指定すれば良いかなんとなく分かりますね。次のように指定するとSampleスプレッドシートの2行目の内容が読み込まれます。カラムに計算式が入力されていた場合、「Get row」は計算結果を取得します。これを利用してFlow単独では出来ない演算機能を実装することができます。flow_get_row

もし3行目の内容が読み込みたければ、スプレッドシートのセルD3に「_DATA_2_」といった文字列を入力しておいて、「Get row」ステップの「Row id」に「_DATA_2_」と指定すれば良いです。

Microsoft Flowの基本文法

Microsoft Flowのプログラム制御に使われるステップです。スクリプト言語として考えると命令の種類が非常に少ないですが、必要十分な機能を厳選して実装しており、大抵のロジックは組むことができます。演算や文字列を扱う命令は提供されていませんが、その辺りは外部のサービスを呼び出す前提で設計されているの感じです。

1.変数

数値型の変数はありません。文字列型の変数として作成ステップが用意されています。

1.1.作成(Compose string variables)

flow_create_step作成ステップはMicrosoft Flowにおける唯一の変数ですが、文字列しか格納できません。例えば同じ内容を複数のSNSに書き込むような処理において、それぞれのSNSのステップにおいて文字列の結合処理を行うのはあまりにも冗長です。これを避けるために整形済みの文字列を一時的に格納するテンポラリとして実装されています。単純な文字列の結合処理を行うだけで、書式指定などの機能も持ち合わせていません。

2.数値演算命令

ありません。数値演算が必要な場合には外部のサービスを利用する事になります。

3.論理演算命令

ありません。
条件ステップの組み合わせによって論理処理を行う事になります。
それ以上の複雑な論理演算が必要であれば、外部のサービスを利用することになります。

4.流れ制御命令

流れ制御命令は以下の5つがあります。必要最低限の命令しか用意されていませんが、基本的なスクリプトを作成するには十分な命令が用意されています。

4.1.条件(Nested conditionals)

flow_nasted_step言わずとしれた条件分岐です。

4.2.それぞれへの適用(Apply to each)

flow_apply_step配列の要素を列挙して、それぞれの要素に対して処理を記述できます。

4.3.Do Until(これだけ日本語に訳されていない)

flow_until_step脱出条件付きのループです。

4.4.配列のフィルター処理(Filter arrays)

flow_filter_step「それぞれへの適用」と「条件」を組み合わせても実装できますが、負荷を考えると処理の最初の方で「配列のフィルター」で件数を絞った方が良いでしょう。

4.5.終了(Abort)

flow_abort_step異常終了として処理を中断できます。