#前回
前回はPower AutomateのメニューにあるPeak codeの紹介と、トリガー・アクションの入力・出力をどうやって取り出すかを紹介しました。
前回:Power Automateの裏側をみてみよう! (1/2)
今回はもうひとつの「Settings」について、トリガー・アクションでそれぞれ代表的と思われるものを紹介します。
念のため、Settingsには↓ここからアクセスします。
Split-On (トリガーのみ)
トリガーにしかない設定です。
Split-Onはトリガーしたときのアイテムsを分割してFlow実行してくれる機能です。
例えばSharePoint listのクイック編集でアイテム作成した場合、Split-On:OFFだと、トリガーは作成されたアイテムsで発生するので、配列を対象に処理することになります。
Split-Onを有効にすると、トリガーしたときの配列をバラバラにして、個別にFlowを実行してくれます。このため、トリガー以降の処理を簡単にすることができます。
もともとPower Automateの旧ライセンス形態では、Flowの実行回数に上限があったため、この設定をOffにすることで実行回数が節約できたんだろうと予想されます。
Concurrency control
Apply to eachなど並列実行できるアクションに関する、並列化の多重度の設定です。
最低は1、最大は50。1の場合には直列に実行されます。
この並列化の多重度、万能なように思えますが、並列化の多重度を上げると、処理順がバラバラになったり、ループの中で依存関係のあるようなアクション(たとえばUpdate variableやAppend to array variableなど)がある場合には十分に恩恵が得られない場合があるので、利用には注意が必要です。
ただし、単純なループ処理では劇的に実行速度が改善されるため、処理の内容に応じて設定してみてください。
※並列実行の多重度の恩恵を最大限活用するための方法として、Pieterの方法が有効です。
Secure Inputs/Outputs
アクション/トリガーのInput/Outputを実行履歴に表示しないというものです。
有効にすると、入力をセキュアにする (設定をONにする)と、ほかのアクションでその入力を参照場合でも、履歴上で非表示になります。
もちろん、セキュアな入力値を加工したとしても、履歴上では隠蔽されます。
Flowの編集権限は持っていても、履歴に表示されないので、用途としては個人の位置情報を特定できるような入力の隠蔽、あるいはAPI実行時のAPIKeyを含む入力の隠蔽かなと思います。
Tracked Properties
アクションに追加できる追加のプロパティです。
ほかのアクションから参照可能 actions('action name')?['trackedProperties']
の書式でデータを取り出します。
Tracked Propertiesはjson形式のデータとして扱われるので、指定する際にはKey : Valueのペアを設定します。
また、Valueは、""ダブルクォーテーションでくくり、関数を使う場合には@(アットマーク)から始める必要があります。
さらに自分自身の入力も、Tracked Propertiesに含めることができます。この場合には前回のブログで紹介した action()?['inputs']
を利用します。
自分自身をTracked Propertiesに含めることができるので、これで自分自身のコピーを生成し、通常エラーになるような自己参照した処理も可能になります。
その他の利用例は以下をご覧ください。1アクションで、すべてのフォーマットで時間を定義しています。
Tonight's #FlowNinja hack is an idea I had previously: "how to build MomentJS" in @MicrosoftFlow
— John Liu 劉 (@johnnliu) January 31, 2019
The nice part of this is the block itself is copy and paste, and the "input" is on the front of the compose action
So, if I squint a bit - this is a way to write inline functions. pic.twitter.com/zD7Do7Gsg9
Trigger Conditions
Trigger Conditionsは別途まとめているので、こちらをどうぞ
https://qiita.com/h-nagao/items/46d5d95cfacb3c70841b
裏側まとめ
普段あまり除かない、Power Automateの裏側を見てきました。基本的には、ここらへんはディープなのであまり触らなくてもよいと思いますが、パフォーマンス改善の一つの切り口だったり、個人に紐づく情報の隠蔽だったり、あるいは通常の方法だと1つ変数を増やさないといけないようなケースのワークアラウンドとして、これらを知っておくと幅が広がるかなと思います。